GNU/Linux >> Linux の 問題 >  >> Linux

Linux mkfs、mke2fs コマンドの例 (ext2、ext3、ext4 ファイルシステムの作成)

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

Linux
  1. Linux での rm コマンドの例

  2. Linux での ps コマンドの例

  3. Linux での mke2fs コマンドの例

  1. Linuxlnコマンド

  2. ファイルシステムをチェックして修復する10のLinux Fsckコマンドの例

  3. w Linux でのコマンド例

  1. Ext2、Ext3、Ext4Linuxファイルシステムの機能と違い

  2. Linux ファイル システム:Ext2 vs Ext3 vs Ext4

  3. ext2/ext3/ext4 ファイルシステムの inode サイズを調べる方法は?