mkfs ユーティリティは、Linux システムでファイルシステム (ext2、ext3、ext4 など) を作成するために使用されます。ファイルシステムを作成するデバイス名を mkfs に指定する必要があります。
警告:これらのコマンドを実行すると、ファイルシステム上のすべてのデータが破壊されます。したがって、これらのコマンドは、データの損失を気にしないテスト システムでのみ試してください。
1.利用可能なファイルシステム ビルダー コマンドを表示
ファイルシステム ビルダー (mkfs* コマンド) は通常、/sbin/、/sbin/fs、/sbin/fs.d、/etc/fs、/etc などのディレクトリで検索されます。見つからない場合、最後に PATH 変数で見つかったディレクトリを検索します。
次のリストは、システムで使用可能な mkfs* コマンドを示しています。
# cd /sbin # ls mkfs* mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat
ファイルシステムに慣れていない場合は、Ext2 と Ext3 と Ext4 について読んでください。
2.特定のデバイスでファイル システムを構築する
mkfs コマンドを使用してファイルシステムを構築するために必要な引数は、以下に示すように device-filename と filesystem-type です。次の例では、/dev/sda6 パーティションに ext3 ファイルシステムを作成します。
# mkfs -t ext3 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
mkfs コマンドのデフォルトのファイルシステム タイプは ext2 であることに注意してください。 「-t」オプションを指定しない場合、ext2 ファイルシステムが作成されます。
また、前に説明した方法を使用して、ext2 または ext3 または ext4 ファイル システムを使用しているかどうかを識別できます。
3. -j オプションを使用して Journal でファイルシステムを作成する
以下の例では、ジャーナリングを使用してファイル システムを作成します。
# mke2fs /dev/sda6 -j mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
ファイルシステムでジャーナリングが不要な場合は、以下に示すように mke2fs コマンドを実行してください。
# mke2fs /dev/sda6
4.デバイスの不良ブロックをチェック
ファイルシステムを作成する前に、以下に示すように -c オプションを使用して、システムに不良ブロックがないことを確認できます。これにより、ファイルシステムで読み取り専用テストが実行され、不良ブロックがないことが確認されます。 「-c -c」オプションを使用して、読み取り/書き込みテストを実行し、不良ブロックがないことを確認することもできます。これは「-c」オプションよりも遅くなることに注意してください。
# mke2fs -c /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
5.マウントされたパーティションにファイルシステムを強制的に作成する
マウントされたパーティションでファイルシステム操作を行わないことをお勧めします。ただし、以下に示すように、オプション -F を使用して、使用中のパーティションまたはマウントされたパーティションにファイルシステムを強制的に作成することもできます。
# mke2fs -F /dev/sda6
6.パーティション上の i ノード グループあたりのバイト数
以下に示すように、df コマンドを使用して、パーティション内の使用済みおよび使用可能な i ノードを一覧表示することができます。
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 11 1120101 1% /mydata
上記のように、/dev/sda6 の IUsed は 1120112 のうち 11 です。新しいファイルが作成された後、IUsed の値は以下に示すようにそれに応じて変化します。
# cd /mydata # touch sample.txt # ls sample.txt # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 12 1120100 1% /mydata
tune2fs コマンドを使用して、i ノードの詳細を表示することもできます。
# tune2fs -l /dev/sda6 | grep Inode Inode count: 1120112 Inodes per group: 8176 Inode blocks per group: 511 Inode size: 256
上記のパーティション (つまり、/dev/sda6) の inode-per-group を変更するには、次のように -i オプションを使用します:
# mke2fs -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
上記のように、inode あたりのバイト数がデフォルト値の 16384 から 8192 に変更されました。以下に示すように、パーティションの inode 制限が増加しました。
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 2240224 11 2240213 1% /mydata # tune2fs -l /dev/sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 1022 Inode size: 256
inodes-per-group の値を変更しても、パーティションに保持されるファイルの数に影響するだけです。この値を減らすと、パーティション上のファイル数が増えます。
7.パーティションの i ノード サイズを変更する
以下に示すように、オプション I および i を使用して、パーティション上の I ノードのサイズを変更することができます。
# mke2fs -I 128 -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
上記のように、サイズが 256 から 128 に変更され、パーティションの総 Inode 数が増加します:
# tune2fs -l /dev//sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 511 Inode size: 128
8.パーティションのボリューム ラベルを設定
オプション -L を使用して、パーティションの名前/ラベルを作成できます。次の例では、/dev/sda6 パーティションのラベルとして DATA を割り当てています。
# mke2fs -L DATA /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label=DATA OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
以下に示すように、e2label コマンドを使用して、上記のパーティションのラベル名を表示できます。
# e2label /dev/sda6 DATA
パーティションのラベルを表示する別の方法は、以下に示すように blkid コマンドを使用することです:
# blkid /dev/sda6 /dev/sda6: LABEL="DATA" UUID="0de74d35-6050-4838-99b0-46cb1d518da8" TYPE="ext2"
9.ファイルシステムの作成をシミュレートする
mkfs コマンドを実行すると、stdout と同じように内容が表示されます。以下に示すように、-n オプションを使用して実際にファイルシステムを作成せずに、これらのメッセージを stdout に表示することもできます:
# mkfs -t ext3 -n /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
10.特定の数の i ノードを持つファイルシステムを作成する
mkfs は、必要な数の inode を持つファイルシステムを作成する機能を提供します。以下に示すように、inode あたりのバイト数の比率に基づいて、ファイルシステムあたりの inode のデフォルト数をオーバーライドできます。
# mkfs -t ext3 -v -N 700000 /dev/sda6 mke2fs 1.42 (29-Nov-2011) fs_types for mke2fs.conf resolution: 'ext3' Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 701440 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 5120 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
上記は、以下に示すように、tune2fs と df コマンドの両方を使用して確認できます。
# tune2fs -l /dev/sda6 | grep -i inode Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file Inode count: 701440 Free inodes: 701429 Inodes per group: 5120 Inode blocks per group: 320 First inode: 11 Inode size: 256 Journal inode: 8 Journal backup: inode blocks # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 701440 11 701429 1% /mnt