【轉載】格式化存儲裝置成爲 Ext2/Ext3/Ext4 檔案系統

格式化

用系統管理員賬戶 (即 root) 身份打「mkfs -t ext2|ext3|ext4 儲存裝置」:php

mkfs -t ext3 /dev/sdb5

要格式化檔案系統爲 Ext2,亦能夠直接使用命令 mkfs.ext2mke2fs,例如:node

mkfs.ext2 /dev/sdb5

或者:服務器

mke2fs /dev/sdb5

要格式化檔案系統爲 Ext3,亦可使用命令 mkfs.ext3mke2fs -j,例如:ide

mkfs.ext3 /dev/sdb5

或者:測試

mke2fs -j /dev/sdb5

Linux 在 2.6.28 開始正式鼓勵使用 Ext4。要格式化檔案系統爲 Ext4,亦可使用命令 mkfs.ext4mke2fs -T ext4,例如:flex

mkfs.ext4 /dev/sdb5

或者:spa

mke2fs -T ext4 /dev/sdb5

mkfs.ext二、mkfs.ext三、mkfs.ext4 和 mke2fs 通常收錄在套件 e2fsprogs 中。.net

[ 編輯]

格式化選項

[ 編輯]

區塊大小 (Block size)

區塊 (block) 是檔案系統儲存盤案內容最小的單位,其大小對檔案系統的空間運用和效用有很大的影響。較的大區塊能夠的令檔案系統大小上限和檔案大小上限增長,亦能夠加快了大檔案的讀寫。然而亦會浪費較多的空間,對平均檔案大小較小的檔案系統比較不利。區塊大小隻能夠在格式化檔案系統時設定,日後除從新格式化外不能改變。日誌

Ext2/Ext3/Ext4 的區塊大小能夠是 102四、2048 或 4096 字節。 (Compaq Alpha 可使用 8192 字節區塊) mke2fs 通常缺省會把小於 512 MiB 的檔案系統使用 1024 字節區塊格式化,等於或大於 512 MiB 的檔案系統使用 4096 字節區塊。(實際是視乎 mke2fs.conf 中檔案系統類型 small 和 default 的設定 blocksize)code

您可使用 mke2fs/mkfs 的選項 -b block-size 指定格式化後檔案系統的區塊大小,例如:

mkfs -t ext3 -b 4096 /dev/sdb5

-T 能夠根據檔案系統類型 (fs-type) 決定區塊大小和其餘選項,例如使用檔案系統類型 news 的設定格式化檔案系統,可使用:

mkfs.ext3 -T floppy /dev/fd0
[ 編輯]

Inode 數目

Ext2/Ext3 檔案系統的 inode 數目限制了整個檔案系統可能最多擁有的檔案數目,而這數目在格式化檔案系統時已決定,日後除從新格式化外不能改變。 。一些儲存了大量小檔案的檔案系統 (例如 USENET 新聞組服務器) 有機會出現用盡 inode 但仍餘下大量硬盤空間的狀況。因此安裝這類服務器時,檔案系統有機會須要特別設定。

mke2fs 缺省會根據檔案系統的大小來決定 inode 的數目,小於或等於 512 MiB 的檔系統會每 4kiB 有一個 inode,512 MiB 以上的檔案系統則每 8kiB 有一個 inode。[1](實際是視乎 mke2fs.conf 中檔案系統類型 small 和 default 的設定 inode_ratio)

要直接設定 inode 數目可使用 mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的選項 -N no-of-node,例如:

mke2fs -N 1000000 /dev/sdb5

mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的選項 -i byte-per-inode 根據檔案系統的大小來決定 inode 的數目,例如要檔案系統每 512 KiB 就有一個 inode,可使用:

mke2fs -i 524288 /dev/sdb5

mke2fs/mkfs 的選項 -T 能夠根據檔案系統類型 (fs-type) 決定 inode 數目和其餘選項,例如使用檔案系統類型 news 的設定格式化檔案系統,可使用:

mkfs.ext3 -T news /dev/sdb5
[ 編輯]

Inode 大小 (inode size)

現時 inode 的大小缺省爲 256 字節,早期的 inode 只有 128 字節。較大的 inode 令檔案系統較易擴充支援 POSIX ACL 和擴充屬性 (Extended Attrible) 等功能。inode 大小一樣在格式化後不能改變。

您能夠加上 -I inode-size 指定 inode 大小:

mkfs.ext3 -I 128 /dev/sdb5
[ 編輯]

保留空間

Ext2/Ext3 缺省保留 5% 硬盤空間供系統管理員工做之用。設定保留空間大小可使用 mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的選項 -m percentage,例如要檔案系統保留 12% 的空間,可使用:

mkfs.ext2 -m 12 /dev/sdb5

格式化後仍能夠使用命令 tune2fs -mtune2fs -r 改變

[ 編輯]

偵察壞區塊 (Bad block)

格式化時加上選項 -c,mke2fs 會掃描整個儲存裝置是否有壞區塊 (bad block),例如:

mkfs -t ext3 -c /dev/sdb6

若是使用選項 -cc,mke2fs 會寫一些資料入儲存裝置每一個區塊並再讀取來測試壞區塊 - 比本來只讀更準確和但更慢的方法偵察壞區塊,例如:

mkfs.ext2 -cc /dev/sdc1
[ 編輯]

日誌大小 (Journal size)

格式化 ext3 或 ext4 時,mke2fs 會自動根據檔案系統的大小劃分日誌 (journal) 的大小[2]

  • 少於 32,768 個區塊則劃分 1024 個區塊做日誌
  • 少於 262,144 個區塊但大於或等於 32,768 個區塊則劃分 4096 個區塊做日誌
  • 大於或等於 262,144 個區塊則劃分 8192 個區塊做日誌

您能夠加上 -J size=日誌大小 指定創建的日誌大小,單位爲 MiB,例如:

mke2fs -J size=128 /dev/sdb1

格式化了 sdb1 爲 ext3 並劃分 128 MiB 的日誌。(使用選項 -J 已穩示啓用日誌功能,因此能夠略去選項 -j) 留意日誌的大小隻能夠爲 1024 至 102,400 個區塊。

William von Hagen[2]認爲 mke2fs 自動劃分的日誌大小通常應該很適合,而無須要自訂。日誌太小會令其容易被寫滿,有機會減低檔案系統效率。較大的日誌對啓用 journaling 模式可能有幫助。但若是日誌大於計算機實體內存大小,開機修復檔案系統時有機會不夠內存加載整個日誌紀錄,不能自動修復。

若是有多於一顆硬盤,能夠考慮使用外部日誌 (external journal) 把檔案系統和日誌儲存在不一樣的硬盤,能夠增長效能。

[ 編輯]

檔案系統類型 (fs-type)

e2fsprog 1.39 以前中的 mkfs.ext2/mkfs.ext3/mke2fs 只支援 news 、 largefile 和 largefile4 三個檔案系統類型。e2fsprog 1.39 開始, mkfs.ext2/mkfs.ext3/mke2fs 使用設定檔案 mke2fs.conf 自訂檔案系統類型。[3] 現時通常 GNU/Linux 缺省的檔案系統類型包括:

  • small - 區塊大小 1 KiB,每 4 KiB 一個 inode,inode 大小 128 字節
  • floppy - 區塊大小 1 KiB,每 8 KiB 一個 inode,inode 大小 128 字節
  • news - 每 4 KiB 一個 inode
  • largefile - 每 1 MiB 一個 inode

e2fsprogs 缺省的 mke2fs.conf 額外定義了 [4]

  • largefile4 - 每 4 MiB 一個 inode
  • hurd - 區塊大小 4 KiB,inode 大小 128 字節
  • ext3 - 開啓了 has_journal 功能
  • ext4 - inode 大小 256 字節,開啓了 has_journal、extents、huge_file、flex_bg、uninit_bg、dir_nlink 和 extra_isize 功能
[ 編輯]

檔案系統標籤 (Filesystem label)

檔案系統標籤 (Filesystem label) 在個別檔案系統又叫做 Volume Name,是檔案系統中一個小欄目用做簡述該檔案系統的用途或其儲存數據。現時 GNU/Linux 都會用 USB 手指/IEEE1394 硬盤等可移除儲存裝置的檔案系統標籤做爲其掛載目錄的名稱,方便使用者識別。而個別 GNU/Linux distributionFedoraRHELCentOS 等亦在 /etc/fstab 取代傳統裝置檔案名稱 (即 /dev/sda1 和 /dev/hdc5 等) 的指定開機時要掛載的檔案系統,避免偶然由於 BIOS 設定或插入次序的改變而引發的混亂。您可使用選項 -L 標籤 在格式化時設定檔案系統標籤:

mkfs.ext2 -L Photos /dev/sdc1

Ext2/Ext3/Ext4 的檔案系統標籤不能夠超過 16 個字符。日後能夠使用命令 e2label 或 tune2fs -L 隨時改變

[ 編輯]

格式化畫面資訊

如下是使用命令 mke2fs/mkfs.ext2 格式化一個約 8 GiB 的分割區成爲 Ext2 檔案系統的畫面:

# mke2fs /dev/sdb5
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
524288 inodes, 2096466 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

當中包括顯示了有關新建 Ext2 檔案系統的如下資訊:

  • 區塊大小 (Block size) - 上例爲 4096 字節 (4 KiB)
  • Fragment 大小 (Fragment size) - 實際上 Ext2/Ext3/Ext4 都不支援 fragment 功能,因此這值必定和區塊大小同樣[5]
  • inodes 數目 - 上例在整個檔案系統創建了 524,288 個 inodes,亦是檔案系統所可能擁有檔案數目的上限
  • 區塊數目 (blocks) - 上例在整個檔案系統創建了 2,096,466 個區塊
  • 保留區塊 (reserved blocks) - 上例在整個檔案系統保留了約 5% 的空間共 104,823 個區塊 (約 409 MiB = 104,823 x 4 KiB) 給供系統管理員工做之用
  • 檔案系統區塊數目上限 (Maximum Filesystem blocks) - 現時 Ext2/Ext3 所能支援一個檔案系統所可能擁有區塊數目的上限,上例爲 2,147,483,648。即表示檔案系統大小上限爲 8 TiB =2,147,483,648 x 4 KiB
  • 區塊組數目 (block groups) - 上例在整個檔案系統創建了 64 個區塊組
  • 區塊/組 (blocks per group) - 每一個區塊組的區塊數目,爲 32,768。個區塊組約有 128 MiB = 32,768 * 4 KiB
  • inodes/組 (inodes per group) - 每一個區塊組的 inodes 數目,爲 8192
  • Superblock 備份 (Superblock backups) - Superblock 被備份在編號 3276八、9830四、163840、22937六、2949十二、819200、884736 和 1605632 區塊,即編號 一、三、五、七、九、2五、27 和 49 區塊組

此外,最尾兩行亦顯示檔案系統的最大掛載次數 (Maxmimum Mount count) 爲 21 和最大檢查間距爲 180 日,表示檔案系統每掛載超過 21 次或超過 180 日未有進行完整檔案系統檢查都會啓動時進行完整檢查

如下是使用命令 mke2fs -j/mkfs.ext3/mkfs.ext4 格式化一個約 8 GiB 的分割區成爲 Ext3 或 Ext4 檔案系統的畫面:

mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
524288 inodes, 2096466 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

和格式化 Ext2 的畫面幾乎相同,惟一分別只是多了個 「Creating journal」 創建日誌的步驟罷了。此行同時顯示日誌的大小,上例爲 32,768 個區塊 (128 MiB = 32,768 * 4 KiB)。 

 

http://wiki.debian.org.hk/w/Format_disk_as_Ext2,_Ext3_or_Ext4

相關文章
相關標籤/搜索