linux分區(qū)知識(shí)與大磁盤(pán)的分區(qū)
目前我們可以接觸到的大部分pc依然采用上世紀(jì)遺傳下來(lái)的 BIOS + MBR 組合。 BIOS,基本輸入輸出系統(tǒng) (Basic Input-Output System),是軟件與硬件之間的一個(gè)接口,可以把它看作一個(gè)翻譯在中文與英語(yǔ)之間,雖然兩者完全不同,不過(guò)可以讓大家了解 BIOS 所處的位置,BIOS 通常被寫(xiě)入一塊 ROM 芯片連接在主板上,當(dāng)然也有直接寫(xiě)入北橋的,不過(guò)相當(dāng)少見(jiàn)。 BIOS 幾乎是完全用匯編語(yǔ)言編寫(xiě),很大程度上決定了主板的性能及穩(wěn)定性。
MBR,主引導(dǎo)記錄 (Master Boot Record),也就是我們常見(jiàn)的分區(qū)方法,不過(guò)管理員外的最終用戶(hù)很少知道它的存在,MBR 分區(qū)的標(biāo)準(zhǔn)決定了 MBR 只支持在2TB以下 (超過(guò) 2TB 的只能管理 2TB) 的硬盤(pán)中創(chuàng)建4個(gè)分區(qū)表項(xiàng),要獲得更多分區(qū),需要次級(jí)結(jié)構(gòu)–擴(kuò)展分區(qū)。擴(kuò)展分區(qū)可以再次被分成一個(gè)或多個(gè)邏輯磁盤(pán),也就是普通情況下的C盤(pán)以外的盤(pán),或說(shuō)***個(gè)分區(qū)以外的部分,有些情況下 Windows 里的C盤(pán)可能會(huì)是一個(gè)邏輯分區(qū)。
EFI,可擴(kuò)展固件接口 (Extensible Firmware Interface),由英特爾 (Intel) 公司提出的一種替代 BIOS 的升級(jí)方案。 EFI 的位置很特殊,它不像是 BIOS 那樣自己即是固件又是接口,EFI 只是一個(gè)接口,位于操作系統(tǒng)與平臺(tái)固件之間,感覺(jué)像是公司、CEO、CEO秘書(shū)之間的關(guān)系一樣,由CEO (操作系統(tǒng)) 下任務(wù),CEO秘書(shū) (EFI) 負(fù)責(zé)把任務(wù)分配下發(fā)到公司各部門(mén)經(jīng)理 (平臺(tái)固件),經(jīng)理們又把任務(wù)下發(fā)到具體的小組 (各類(lèi)硬件) 去完成。
GPT ,全局唯一標(biāo)識(shí)磁盤(pán)分區(qū)表 (GUID Partition Table),GUID,全局唯一標(biāo)識(shí)符 (Globally Unique Identifier) 。GUID 分區(qū)表 (GPT) 是作為 Extensible Firmware Interface (EFI) 計(jì)劃的一部分引入的。當(dāng)然,你也可以在 BIOS 的PC中使用 GPT 分區(qū),雖然 GPT 來(lái)自以 EFI 計(jì)劃,但并不依賴(lài)于 EFI。GPT 相對(duì)于以往 PC 普遍使用的主引導(dǎo)記錄 (MBR) 分區(qū)方案更加靈活。比如可以超過(guò) MBR 分區(qū)表項(xiàng)4個(gè)的限制,在 GPT 規(guī)范里對(duì)分區(qū)的數(shù)量幾乎是沒(méi)有限制的,大家在網(wǎng)上可以查到的128個(gè)實(shí)際上是 Windows 系統(tǒng) (支持 GPT 的 Windows) 做出的限制。 GPT 對(duì)可管理磁盤(pán)大小也超過(guò)了 MBR 的2TB (1TB = 1024GB) 而達(dá)到了 18EB (1EB = 1024TB) 。在 MBR 分區(qū)方案中操作系統(tǒng)的引導(dǎo)是通過(guò)放在磁盤(pán)最開(kāi)始 (***扇區(qū)) 里的 MBR (這里的 MBR 是指主引導(dǎo)記錄,而不是主引導(dǎo)記錄分區(qū)方案,兩者是同名的。我的猜測(cè)是為了與 GPT 分區(qū)方案區(qū)分,使用了主引導(dǎo)記錄引導(dǎo)方式的名字 MBR 來(lái)命名此種分區(qū)方案,我查不到確切的資料正明我的猜測(cè)是否正確,只能大家努力區(qū)分一下了。) 。把重要的信息 (如分區(qū)信息、目錄等) 放在某個(gè)扇區(qū)里是 MBR 分區(qū)方案的方法,而 GPT 把這個(gè)信息放到了分區(qū)里,Intel的解釋是這樣可以更加明確更加安全。 GPT 分區(qū)為了保護(hù)自己不受 MBR 方案下磁盤(pán)管理軟件的危害,在磁盤(pán)的最開(kāi)始位置 (***個(gè)扇區(qū)) 建立了一個(gè)保護(hù)分區(qū) (Protective MBR),這種分區(qū)的類(lèi)型標(biāo)識(shí)為 0xEE。蘋(píng)果系統(tǒng) (Mac OS X) 下這個(gè)保護(hù)分區(qū)大小為 200MB,這個(gè)分區(qū)在 Window NT 磁盤(pán)管理器里名字叫做 GPT 保護(hù)分區(qū)。這個(gè)分區(qū)可以讓不能識(shí)別 GPT 的磁盤(pán)管理軟件把 GPT 磁盤(pán)看成一個(gè)未知格式的分區(qū),而不是錯(cuò)誤地當(dāng)成一個(gè)未分區(qū)的磁盤(pán)。
文件系統(tǒng)限制:
以下信息出自:維基百科
ext3
塊尺寸 ***文件尺寸 ***文件系統(tǒng)尺寸
1KiB 16GiB 2TiB
2KiB 256GiB 8TiB
4KiB 2TiB 16TiB
8KiB 16TiB 32TiB
ext4
Extents
ext4引進(jìn)了Extent檔案儲(chǔ)存方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續(xù)實(shí)體block,這種方式可以增加大型檔案的效率并減少分裂檔案。ext4支援的單一Extent,在單一block為4KB的系統(tǒng)中***可達(dá)128MB[1]。單一inode中可儲(chǔ)存4筆Extent;超過(guò)四筆的Extent會(huì)以Htree方式被索引。
***文件尺寸 16 TiB (for 4k block filesystem)
***卷容量 1 EiB
xfs
***可支持的文件大小為263 = 9 x 1018 = 9 exabytes,***文件系統(tǒng)尺寸為18 exabytes。
ReiserFS
***文件尺寸 8 TiB
***卷容量 16 TiB
大于2T的磁盤(pán)分區(qū)方法
由于MBR分區(qū)表只支持2T磁盤(pán),所以大于2T的磁盤(pán)必須使用GPT分區(qū)表,具體方法如下:
GPT格式的磁盤(pán)相當(dāng)于原來(lái)MBR磁盤(pán)中原來(lái)保留4個(gè)partition table的4*16個(gè)字節(jié),只留***個(gè)16個(gè)字節(jié),類(lèi)似于擴(kuò)展分區(qū),真正的partition table在512字節(jié)之后,GPT磁盤(pán)沒(méi)有四個(gè)主分區(qū)的限制。
#p#但fdisk不支持GPT,我們可以使用parted來(lái)對(duì)GPT磁盤(pán)操作。
parted功能很強(qiáng)大,既可用命令行也可以用于交互式
在提示符下輸入parted就會(huì)進(jìn)入交互式模式,如果有多個(gè)磁盤(pán)的話(huà),我們需要運(yùn)行select sdx x為磁盤(pán),來(lái)進(jìn)行磁盤(pán)的選擇
Java代碼
parted>
parted>select sdb 假設(shè)磁盤(pán)為sdb
parted>mklabel gpt 將MBR磁盤(pán)格式化為GPT
#parted>mklabel msdos 將GPT磁盤(pán)轉(zhuǎn)化為MBR磁盤(pán)
parted>mkpart primary 0 100 劃分一個(gè)起始位置為0,大小為100M的主分區(qū)
parted>mkpart primary 100 200 劃分一個(gè)起始位置為100M,大小為100M的主分區(qū)
#parted>mkpart primary 0 -1 將整塊磁盤(pán)分成一個(gè)分區(qū)
parted>print 打印當(dāng)前分區(qū)
parted>quit 退出
parted的更多命令:
Java代碼
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] prints general help, or help on
COMMAND
mklabel LABEL-TYPE create a new disklabel (partition
table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on
partititon NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [free|NUMBER|all] display the partition table, a
partition, or all devices
quit exit program
rescue START END rescue a lost partition near START
and END
resize NUMBER START END resize partition NUMBER and its file
system
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition
NUMBER
unit UNIT set the default unit to UNIT
version displays the current version of GNU
在parted里邊不支持ext3的文件系統(tǒng),所以如果要使用的話(huà),要退出parted進(jìn)行格式話(huà)
Java代碼
mkfs.ext3 /dev/sdx1
因?yàn)閒disk是不支持GPT磁盤(pán),所以不要使用fdisk -l來(lái)查看X磁盤(pán)剛才分好的區(qū),看不到的。
命令行的模式:
將硬盤(pán)轉(zhuǎn)化為GPT磁盤(pán)后,執(zhí)行下列命令
Java代碼
parted /dev/sdx mkpart primary 0 100 劃分一個(gè)起始位置為0大小為100M的主分區(qū)
【編輯推薦】