我們知道硬碟的第一個扇區也就是第0扇區是用來存放主引導記錄(MBR)的,因此也稱MBR扇區。一個扇區是512位元組,因此MBR的大小也是512位元組,其具體資料結構是:446個位元組的引導代碼、64個位元組的分區表及2個位元組的簽名值"55AA"。由於MBR的分區表只有64個位元組,這決定了它只能儲存4個分區記錄。這就是為什麼一塊硬碟最多隻能有4個“主要磁碟分割"的原因。記住,“主要磁碟分割”就是指記錄在主引導記錄MBR分區表中的分區,除此之外主要磁碟分割並無特別之處,但是過去的一些老作業系統往往不能安裝在主要磁碟分割之外的分區上,所以,主要磁碟分割也貼上“專門用來安裝作業系統”的標籤。
我們已經知道了MBR中的分表區只能存放4個分區(即4個主要磁碟分割),那系統是如何劃分出4個以上的分區的呢?一種直白而簡單的思路就是把其中一個主要磁碟分割再進行細分,衍生出一個二級分區表。對的,這個被用來二次分區的主要磁碟分割就是“擴充分區”,它下面的二級分區就是“邏輯分區”。
關於如何在Linux下如何使用parted工具時行分區,這裡轉載一篇文章, 講解的非常清晰. 原文出處:http://dngood.blog.51cto.com/446195/647702/
一 關鍵詞
MBR和2TB的限制
在使用fdisk建立分區時,我們最大隻能建立2TB大小的分區,如果你的磁碟(陣列)大於2TB,只能通過劃分多個分區的方法才能充分利用磁碟容量,這對於使用小於2TB分區的朋友沒啥影響,但對於使用大於2TB分區(比如5TB的分區)的朋友就會遇到問題了,要突破這個限制;我們先來瞭解下MBR(Master Boot Record)和GPT(GUID Partition Table).
MBR
主引導記錄(Master Boot Record,縮寫:MBR),又叫做主開機磁區,是電腦開機後訪問硬碟時所必須要讀取的首個扇區,它在硬碟上的三維地址為(柱面,磁頭,扇區)=(0,0,1)。
MBR是由分區程式(如Fdisk,Parted)所產生的,它不依賴任何作業系統,而且硬碟引導程式也是可以改變的,從而能夠實現多系統引導。
從主引導記錄的結構可以知道,它僅僅包含一個64個位元組的硬碟分區表。由於每個分區資訊需要16個位元組,所以對於採用MBR型分區結構的硬碟(其磁碟卷標類型為MS-DOS),最多隻能識別4個主要分區。所以對於一個採用此種分區結構的硬碟來說,想要得到4個以上的主要分區是不可能的。這裡就需要引出擴充分區了。擴充分區也是主要磁碟分割(Primary partition)的一種,但它與主要磁碟分割的不同在於理論上可以劃分為無數個邏輯分區,每一個邏輯分區都有一個和MBR結構類似的擴充引導記錄(EBR)。
在MBR分區表中最多4個主要磁碟分割或者3個主要磁碟分割+1個擴充分區,也就是說擴充分區只能有一個,然後可以再細分為多個邏輯分區。
在Linux系統中,硬碟分區命名為sda1-sda4或者hda1-hda4(其中a表示硬碟編號可能是a、b、c等等)。在MBR硬碟中,分區號1-4是主要磁碟分割(或者擴充分區),邏輯分區號只能從5開始。
在MBR分區表中,一個分區最大的容量為2T,且每個分區的起始柱面必須在這個disk的前2T內。你有一個3T的硬碟,根據要求你至少要把它劃分為2個分區,且最後一個分區的起始扇區要位於硬碟的前2T空間內。如果硬碟太大則必須改用GPT。
GPT
全域唯一標識分區表(GUID Partition Table,縮寫:GPT)是一個實體硬碟的分區結構。它是EFI(可延伸韌體介面標準)的一部分,用來替代BIOS中的主引導記錄分區表。但因為MBR分區表不支援容量大於2.2TB(2.2 × 1012位元組)的分區,所以也有一些BIOS系統為了支援大容量硬碟而用GPT分區表取代MBR分區表。
在MBR硬碟中,分區資訊直接儲存於主引導記錄(MBR)中(主引導記錄中還儲存著系統的引導程式)。但在GPT硬碟中,分區表的位置資訊儲存在GPT頭中。但出於相容性考慮,硬碟的第一個扇區仍然用作MBR,之後才是GPT頭。
與支援最大卷為2 TB(Terabytes)並且每個磁碟最多有4個主要磁碟分割(或3個主要磁碟分割,1個擴充分區和無限制的邏輯磁碟機)的MBR磁碟分割的樣式相比,GPT磁碟分割樣式支援最大卷為18 EB(Exabytes)並且每磁碟的分區數沒有上限,只受到作業系統限制(由於分區表本身需要佔用一定空間,最初規劃硬碟分區時,留給分區表的空間決定了最多可以有多少個分區,IA-64版Windows限制最多有128個分區,這也是EFI標準規定的分區表的最小尺寸)。與MBR分區的磁碟不同,至關重要的平台操作資料位於分區,而不是位於非分區或隱藏扇區。另外,GPT分區磁碟有備份分區表來提高分區資料結構的完整性。
EFI
可延伸韌體介面(英文名Extensible Firmware Interface 或EFI)是一種個人電腦系統規格,用來定義作業系統與系統韌體之間的軟體介面,為替代BIOS的升級方案。可延伸韌體介面負責加電自檢(POST)、連繫作業系統以及提供串連作業系統與硬體的介面。
EFI最初由英特爾開發,現時由UEFI論壇來推廣與發展。
UEFI
是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬於open source,目前版本為2.1。
二 建立一個大於2TB的分區
MBR 與 GPT,都是分區格式,其中MBR最大分區小於等於2TB,而GPT分區沒有2TB的限制,理論最大分區18 EB!
現在我們知道了要建立一個大於2TB的分區,就不能使用MBR 格式的分區表了,而要使用GPT格式的分區表,我們最常用的fdisk 分區工具就愛莫能助了,需要使用linux 下的Parted分區工具!
測試環境為:
Dell R710 2u 伺服器
cpu 2* XEON 5606
mem 16G
disk 6*1TB sas 7200rpm
raid raid level 5 perc 6i卡
rhel 6 64bit ,建立一個4TB大小分區
下面正式開始分區:
1 在使用parted 分區之前,我們先用fdisk -l 來查看下硬碟資訊!
2 上邊的資訊我們知道 /dev/sdb 4.6TB,現在使用parted 命令,如。
3 進入parted 後,執行2,3,4,5,6,7,8,9,10,10,11步驟,指令下邊有解釋!
4 分區完成後使用print 可以看到剛才分區的資訊!大小 4684GB
5 quit 用於退出parted環境,資訊提示更新/etx/fstab!
6 再用fdisk -l 來查看下 sdb硬碟,現在已經有sdb1 分區了,注意system gpt!
7 parted 到這裡就完成了!
下面格式化/dev/sdb1 檔案系統為EXT4:
1 執行 mkfs.ext4 /dev/sdb1 一路斷行符號即可!
更新/etc/fstab :
1.使用blkid 查看分區的uuid 如,複製新分區/dev/sdb1的 UUID
2 將 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 掛載在 /data 目錄下!
3 至此全部完成, 下面檢查一下!
mount -a 重新掛載 /etc/fstab 檔案中的記錄!
mount 可以發現 /dev/sdb1 已經掛載到 /data 目錄下了!
df -h 發現 /data 4.2TB
三 詳細介紹下Parted命令
[root@abintel ~]# parted --help
用法:parted [選項]... [裝置 [命令 [參數]...]...]
將帶有“參數”的命令應用於“裝置”。如果沒有給出“命令”,則以互動模式運行。
選項:
-h, --help 顯示此求助資訊
-i, --interactive 在必要時,提示使用者
-s, --script 從不提示使用者
-v, --version 顯示版本
命令:
檢查 MINOR 對檔案系統進行一個簡單的檢查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR 將檔案系統複製到另一個分區
help [COMMAND] 列印通用求助資訊,或關於 COMMAND 的資訊
mklabel 標籤類型 建立新的磁碟標籤 (分區表)
mkfs MINOR 檔案系統類型 在 MINOR 建立類型為“檔案系統類型”的檔案系統
mkpart 分區類型 [檔案系統類型] 起始點 終止點 建立一個分區
mkpartfs 分區類型 檔案系統類型 起始點 終止點 建立一個帶有檔案系統的分區
move MINOR 起始點 終止點 移動編號為 MINOR 的分區
name MINOR 名稱 將編號為 MINOR 的分區命名為“名稱”
print [MINOR] 列印分區表,或者分區
quit 退出程式
rescue 起始點 終止點 挽救臨近“起始點”、“終止點”的遺失的分區
resize MINOR 起始點 終止點 改變位於編號為 MINOR 的分區中檔案系統的大小
rm MINOR 刪除編號為 MINOR 的分區
select 裝置 選擇要編輯的裝置
set MINOR 標誌 狀態 改變編號為 MINOR 的分區的標誌
注意
mklabel label-type 必須是一下這些類型:
* bsd
* loop (raw disk access)
* gpt
* mac
* msdos
* pc98
* sun
例:(parted) mklabel gtp 或者 (parted) mklabel msdos
mkpart(建立新分區)
格式:mkpart part-type fs-type start end
建立一個新的分區
part-type是以下類型之一 primary(主要磁碟分割), extended(擴充分區), logical(邏輯分區)。
fs-type來指定檔案系統,比如ext4 。
start和end是新分區開始和結束的具體位置。0表示起止,-1表示結尾;或者以mb表示或者GB表示!