linux分區知識與大磁盤的分區注意事項

 

        目前我們可以接觸到的大部分pc依然採用上世紀遺傳下來的 BIOS + MBR 組合。 BIOS,基本輸入輸出系統 (Basic Input-Output System),是軟件與硬件之間的一個接口,可以把它看作一個翻譯在中文與英語之間,雖然兩者完全不同,不過可以讓大家瞭解 BIOS 所處的位置,BIOS 通常被寫入一塊 ROM 芯片連接在主板上,當然也有直接寫入北橋的,不過相當少見。 BIOS 幾乎是完全用彙編語言編寫,很大程度上決定了主板的性能及穩定性。
MBR
,主引導記錄 (Master Boot Record),也就是我們常見的分區方法,不過管理員外的最終用戶很少知道它的存在,MBR 分區的標準決定了 MBR 只支持在2TB以下 (超過 2TB 的只能管理 2TB) 的硬盤中創建4個分區表項,要獲得更多分區,需要次級結構擴展分區。擴展分區可以再次被分成一個或多個邏輯磁盤,也就是普通情況下的C盤以外的盤,或說第一個分區以外的部分,有些情況下 Windows 裏的C盤可能會是一個邏輯分區。
EFI
,可擴展固件接口 (Extensible Firmware Interface),由英特爾 (Intel) 公司提出的一種替代 BIOS 的升級方案。 EFI 的位置很特殊,它不像是 BIOS 那樣自己即是固件又是接口,EFI 只是一個接口,位於操作系統與平臺固件之間,感覺像是公司、CEOCEO祕書之間的關係一樣,由CEO (操作系統) 下任務,CEO祕書 (EFI) 負責把任務分配下發到公司各部門經理 (平臺固件),經理們又把任務下發到具體的小組 (各類硬件) 去完成。
GPT
,全局唯一標識磁盤分區表 (GUID Partition Table)GUID,全局唯一標識符 (Globally Unique Identifier) GUID 分區表 (GPT) 是作爲 Extensible Firmware Interface (EFI) 計劃的一部分引入的。當然,你也可以在 BIOS PC中使用 GPT 分區,雖然 GPT 來自以 EFI 計劃,但並不依賴於 EFIGPT 相對於以往 PC 普遍使用的主引導記錄 (MBR) 分區方案更加靈活。比如可以超過 MBR 分區表項4個的限制,在 GPT 規範裏對分區的數量幾乎是沒有限制的,大家在網上可以查到的128個實際上是 Windows 系統 (支持 GPT Windows) 做出的限制。 GPT 對可管理磁盤大小也超過了 MBR 2TB (1TB = 1024GB) 而達到了 18EB (1EB = 1024TB) 。在 MBR 分區方案中操作系統的引導是通過放在磁盤最開始 (第一扇區) 裏的 MBR (這裏的 MBR 是指主引導記錄,而不是主引導記錄分區方案,兩者是同名的。我的猜測是爲了與 GPT 分區方案區分,使用了主引導記錄引導方式的名字 MBR 來命名此種分區方案,我查不到確切的資料正明我的猜測是否正確,只能大家努力區分一下了。) 。把重要的信息 (如分區信息、目錄等) 放在某個扇區裏是 MBR 分區方案的方法,而 GPT 把這個信息放到了分區裏,Intel的解釋是這樣可以更加明確更加安全。 GPT 分區爲了保護自己不受 MBR 方案下磁盤管理軟件的危害,在磁盤的最開始位置 (第一個扇區) 建立了一個保護分區 (Protective MBR),這種分區的類型標識爲 0xEE。蘋果系統 (Mac OS X) 下這個保護分區大小爲 200MB,這個分區在 Window NT 磁盤管理器里名字叫做 GPT 保護分區。這個分區可以讓不能識別 GPT 的磁盤管理軟件把 GPT 磁盤看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。

文件系統限制:
以下信息出自:維基百科
ext3
塊尺寸最大文件尺寸最大文件系統尺寸
1KiB 16GiB 2TiB
2KiB 256GiB 8TiB
4KiB 2TiB 16TiB
8KiB 16TiB 32TiB
ext4
Extents
    ext4
引進了Extent檔案儲存方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續實體block,這種方式可以增加大型檔案的效率並減少分裂檔案。ext4支援的單一Extent,在單一block4KB的系統中最高可達128MB[1]。單一inode中可儲存4Extent;超過四筆的Extent會以Htree方式被索引。
最大文件尺寸 16 TiB (for 4k block filesystem)
最大卷容量 1 EiB
xfs
最大可支持的文件大小爲263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸爲18 exabytes
ReiserFS
最大文件尺寸 8 TiB
最大卷容量 16 TiB

大於2T的磁盤分區方法
由於MBR分區表只支持2T磁盤,所以大於2T的磁盤必須使用GPT分區表,具體方法如下:
GPT
格式的磁盤相當於原來MBR磁盤中原來保留4partition table4*16個字節,只留第一個16個字節,類似於擴展分區,真正的partition table512字節之後,GPT磁盤沒有四個主分區的限制。
fdisk不支持GPT,我們可以使用parted來對GPT磁盤操作。
parted
功能很強大,既可用命令行也可以用於交互式
在提示符下輸入parted就會進入交互式模式,如果有多個磁盤的話,我們需要運行select sdx x爲磁盤,來進行磁盤的選擇

Java代碼

  1. parted>   
  2. parted>select sdb                假設磁盤爲sdb   
  3. parted>mklabel gpt               MBR磁盤格式化爲GPT   
  4. #parted>mklabel msdos             GPT磁盤轉化爲MBR磁盤   
  5. parted>mkpart primary 0 100      劃分一個起始位置爲0,大小爲100M的主分區   
  6. parted>mkpart primary 100 200    劃分一個起始位置爲100M,大小爲100M的主分區   
  7. #parted>mkpart primary 0 -1       將整塊磁盤分成一個分區   
  8. parted>print                     打印當前分區   
  9. parted>quit                      退出  
parted>
parted>select sdb                假設磁盤爲sdb
parted>mklabel gpt               將MBR磁盤格式化爲GPT
#parted>mklabel msdos             將GPT磁盤轉化爲MBR磁盤
parted>mkpart primary 0 100      劃分一個起始位置爲0,大小爲100M的主分區
parted>mkpart primary 100 200    劃分一個起始位置爲100M,大小爲100M的主分區
#parted>mkpart primary 0 -1       將整塊磁盤分成一個分區
parted>print                     打印當前分區
parted>quit                      退出


parted的更多命令:

Java代碼

  1. check NUMBER                             do a simple check on the file system   
  2.   cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition   
  3.   help [COMMAND]                           prints general help, or help on   
  4.         COMMAND   
  5.   mklabel LABEL-TYPE                       create a new disklabel (partition   
  6.         table)   
  7.   mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on   
  8.         partititon NUMBER   
  9.   mkpart PART-TYPE [FS-TYPE] START END     make a partition   
  10.   mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system   
  11.   move NUMBER START END                    move partition NUMBER   
  12.   name NUMBER NAME                         name partition NUMBER as NAME   
  13.   print [free|NUMBER|all]                  display the partition table, a   
  14.         partition, or all devices   
  15.   quit                                     exit program   
  16.   rescue START END                         rescue a lost partition near START   
  17.         and END   
  18.   resize NUMBER START END                  resize partition NUMBER and its file   
  19.         system   
  20.   rm NUMBER                                delete partition NUMBER   
  21.   select DEVICE                            choose the device to edit   
  22.   set NUMBER FLAG STATE                    change the FLAG on partition NUMBER   
  23.   toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition   
  24.         NUMBER   
  25.   unit UNIT                                set the default unit to UNIT   
  26.   version                                  displays the current version of GNU  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的文件系統,所以如果要使用的話,要退出parted進行格式話

Java代碼

  1. mkfs.ext3 /dev/sdx1  mkfs.ext3 /dev/sdx1
    因爲fdisk是不支持GPT磁盤,所以不要使用fdisk -l來查看X磁盤剛纔分好的區,看不到的。
    命令行的模式:將硬盤轉化爲GPT磁盤後,執行下列命令

Java代碼

  1. parted /dev/sdx mkpart primary 0 100   劃分一個起始位置爲0大小爲100M的主分區  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章