TShopping

 找回密碼
 註冊
搜索
查看: 2604|回復: 3
打印 上一主題 下一主題

[CentOS] 格式化存儲裝置成為 Ext2/Ext3/Ext4 檔案系統

[複製鏈接]
跳轉到指定樓層
1#
發表於 2011-11-2 18:35:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
Linux 在 2.6.28 開始正式鼓勵使用 Ext4。要格式化檔案系統為 Ext4,亦可以使用命令 mkfs.ext4mke2fs -T ext4,例如:
  1. mkfs.ext4 /dev/sdb5
複製代碼


或者:
  1. mke2fs -T ext4 /dev/sdb5
複製代碼

當 mkfs (意思為 make filesystem) 收到選項 -t 檔案系統,自然會尋找程式 mkfs.檔案系統 並執行。而一般 GNU/Linux 都會預設有 mkfs.ext2、mkfs.ext3、mkfs.ext4 和 mke2fs 四個程式,您會發覺四個程式的程式碼都是一樣或指向同一個程式。mkfs.ext2、mkfs.ext3 和 mkfs.ext4 會以叫用時的程式名稱來決定格式檔案系統為 Ext2 還是 Ext3 或 Ext4。 格式化選項 區塊大小 (Block size) 區塊 (block) 是檔案系統儲存檔案內容最小的單位,其大小對檔案系統的空間運用和效用有很大的影響。較的大區塊可以的令檔案系統大小上限和檔案大小上限增加,亦可以加快了大檔案的讀寫。然而亦會浪費較多的空間,對平均檔案大小較小的檔案系統比較不利。區塊大小隻可以在格式化檔案系統時設定,往後除重新格式化外不能改變。
Ext2/Ext3/Ext4 的區塊大小可以是 1024、2048 或 4096 位元組。 (Compaq Alpha 可以使用 8192 位元組區塊) mke2fs 一般預設會把小於 512 MiB 的檔案系統使用 1024 位元組區塊格式化,等於或大於 512 MiB 的檔案系統使用 4096 位元組區塊。(實際是視乎 mke2fs.conf 中檔案系統類型 small 和 default 的設定 blocksize)
您可以使用 mke2fs/mkfs 的選項 -b block-size 指定格式化後檔案系統的區塊大小,例如:
mkfs -t ext3 -b 4096 /dev/sdb5-T 可以根據檔案系統類型 (fs-type) 決定區塊大小和其他選項,例如使用檔案系統類型 news 的設定格式化檔案系統,可以使用:
mkfs.ext3 -T floppy /dev/fd0Inode 數目 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/sdb5mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的選項 -i byte-per-inode 根據檔案系統的大小來決定 inode 的數目,例如要檔案系統每 512 KiB 就有一個 inode,可以使用:
mke2fs -i 524288 /dev/sdb5mke2fs/mkfs 的選項 -T 可以根據檔案系統類型 (fs-type) 決定 inode 數目和其他選項,例如使用檔案系統類型 news 的設定格式化檔案系統,可以使用:
mkfs.ext3 -T news /dev/sdb5Inode 大小 (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/sdc1Ext2/Ext3/Ext4 的檔案系統標簽不可以超過 16 個字元。往後可以使用命令 e2label 或 tune2fs -L 隨時改變
格式化畫面資訊 以下是使用命令 mke2fs/mkfs.ext2 格式化一個約 8 GiB 的分割區成為 Ext2 檔案系統的畫面:
# mke2fs /dev/sdb5mke2fs 1.41.3 (12-Oct-2008)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)524288 inodes, 2096466 blocks104823 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=214748364864 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Writing inode tables: done                            Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 21 mounts or180 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 被備份在編號 32768、98304、163840、229376、294912、819200、884736 和 1605632 區塊,即編號 1、3、5、7、9、25、27 和 49 區塊組
此外,最尾兩行亦顯示檔案系統的最大掛載次數 (Maxmimum Mount count) 為 21 和最大檢查間距為 180 日,表示檔案系統每掛載超過 21 次或超過 180 日未有進行完整檔案系統檢查都會啟動時進行完整檢查
為避免多個檔案系統需要在同一次啟動時進行完整檔案系統檢查,mke2fs 會在格式化檔案系統時用一個亂數來設定最大掛載次數 (Maxmimum Mount count) 的值,所以此值每次格式化時都不同。[2]

以下是使用命令 mke2fs -j/mkfs.ext3/mkfs.ext4 格式化一個約 8 GiB 的分割區成為 Ext3 或 Ext4 檔案系統的畫面:
mke2fs 1.41.3 (12-Oct-2008)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)524288 inodes, 2096466 blocks104823 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=214748364864 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Writing inode tables: done                            Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 27 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.和格式化 Ext2 的畫面幾乎相同,唯一分別只是多了個 “Creating journal” 建立日誌的步驟罷了。此行同時顯示日誌的大小,上例為 32,768 個區塊 (128 MiB = 32,768 * 4 KiB)。


 

臉書網友討論
2#
發表於 2013-11-9 00:59:43 | 只看該作者
說的真有道理啊!

版主招募中

3#
發表於 2013-11-9 00:59:43 | 只看該作者
(*^__^*) 嘻嘻……   


*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-5-12 14:19 , Processed in 0.084656 second(s), 18 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表