转linux之mkfs/mke2fs格式化

Posted Andy-tester

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转linux之mkfs/mke2fs格式化相关的知识,希望对你有一定的参考价值。

转自:http://blog.csdn.net/andyhooo/article/details/5321584

 

  • mkfs
[[email protected] ~]# mkfs [-t 檔案系統格式] 裝置檔名
選項與參數:
-t  :可以接檔案系統格式,例如 ext3, ext2, vfat 等(系統有支援才會生效)

範例一:請將上個小節當中所製作出來的 /dev/hdc6 格式化為 ext3 檔案系統
[[email protected] ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=                <==這裡指的是分割槽的名稱(label)
OS type: Linux
Block size=4096 (log=2)          <==block 的大小設定為 4K 
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks     <==由此設定決定的inode/block數量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done <==有日誌記錄
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# 這樣就建立起來我們所需要的 Ext3 檔案系統了!簡單明瞭!

[[email protected] ~]# mkfs[tab][tab]
mkfs         mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.msdos   mkfs.vfat
# 按下兩個[tab],會發現 mkfs 支援的檔案格式如上所示!可以格式化 vfat 喔!

mkfs 其實是個綜合指令而已,事實上如同上表所示,當我們使用『 mkfs -t ext3 ...』時, 系統會去呼叫 mkfs.ext3 這個指令來進行格式化的動作啦!若如同上表所展現的結果, 那麼鳥哥這個系統支援的檔案系統格式化工具有『cramfs, ext2, ext3, msdoc, vfat』等, 而最常用的應該是 ext3, vfat 兩種啦! vfat 可以用在 Windows/Linux 共用的 USB 隨身碟囉。

例題:
將剛剛的 /dev/hdc6 格式化為 Windows 可讀的 vfat 格式吧!
答:
mkfs -t vfat /dev/hdc6

在格式化為 Ext3 的範例中,我們可以發現結果裡面含有非常多的資訊,由於我們沒有詳細指定檔案系統的細部項目, 因此系統會使用預設值來進行格式化。其中比較重要的部分為:檔案系統的標頭(Label)、Block的大小以及 inode 的數量。 如果你要指定這些東西,就得要瞭解一下 Ext2/Ext3 的公用程式,亦即 mke2fs 這個指令囉!


  • mke2fs
[[email protected] ~]# mke2fs [-b block大小] [-i block大小] [-L 標頭] [-cj] 裝置
選項與參數:
-b  :可以設定每個 block 的大小,目前支援 1024, 2048, 4096 bytes 三種;
-i  :多少容量給予一個 inode 呢?
-c  :檢查磁碟錯誤,僅下達一次 -c 時,會進行快速讀取測試;
      如果下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~
-L  :後面可以接標頭名稱 (Label),這個 label 是有用的喔!e2label指令介紹會談到~
-j  :本來 mke2fs 是 EXT2 ,加上 -j 後,會主動加入 journal 而成為 EXT3。

mke2fs 是一個很詳細但是很麻煩的指令!因為裡面的細部設定太多了!現在我們進行如下的假設:

  • 這個檔案系統的標頭設定為:vbird_logical
  • 我的 block 指定為 2048 大小;
  • 每 8192 bytes 分配一個 inode ;
  • 建置為 journal 的 Ext3 檔案系統。

開始格式化 /dev/hdc6 結果會變成如下所示:

[[email protected] ~]# mke2fs -j -L "vbird_logical" -b 2048 -i 8192 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=vbird_logical
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
251968 inodes, 1004046 blocks
50202 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=537919488
62 block groups
16384 blocks per group, 16384 fragments per group
4064 inodes per group
Superblock backups stored on blocks:
        16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816

Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
# 比較看看,跟上面的範例用預設值的結果,有什麼不一樣的啊?

其實 mke2fs 所使用的各項選項/參數也可以用在『 mkfs -t ext3 ... 』後面,因為最終使用的公用程式是相同的啦! 特別要注意的是 -b, -i 及 -j 這幾個選項,尤其是 -j 這個選項,當沒有指定 -j 的時候, mke2fs 使用 ext2 為格式化檔案格式,若加入 -j 時,則格式化為 ext3 這個 Journaling 的 filesystem 呦!

老實說,如果沒有特殊需求的話,使用『 mkfs -t ext3....』不但容易記憶,而且就非常好用囉!

以上是关于转linux之mkfs/mke2fs格式化的主要内容,如果未能解决你的问题,请参考以下文章

转Linux之printf命令

转linux之e2label命令

逻辑卷管理

逻辑卷管理

bash脚本编程基础

Asp.net常用开发方法之DataTable/DataReader转Json格式代码