はじめに#
こんにちは!今回はmkfsコマンドについて解説します。
mkfsはファイルシステムを作成するコマンドです。新しいディスクやパーティションをLinuxで使える状態にするには、このコマンドが必須。サーバーセットアップで絶対に覚えておくべき重要なコマンドですね。
データが完全に消えるので、実行前の確認はめっちゃ大事ですよ!
mkfsコマンドとは#
mkfsは、ディスクやパーティションにファイルシステムを作成するための外部コマンドです。“make filesystem"の略ですね。
ext4、XFS、Btrfs、FAT、NTFS など様々なファイルシステムに対応。パーティションを作成しただけではまだ何もできないので、このコマンドでファイルシステムを初期化して初めて使用可能になります。
基本構文#
1
|
mkfs [オプション] ファイルシステム デバイス名
|
ファイルシステムはext4、xfs、fatなど。デバイス名は/dev/sda1のようなパーティション指定です。
主なオプション#
| オプション |
説明 |
-t |
ファイルシステムタイプを指定 |
-F |
確認なしで強制実行 |
-L |
ボリュームラベルを設定 |
-m |
ルート専用ブロック率(ext4のみ) |
使用例#
例1: ext4ファイルシステムを作成#
1
|
sudo mkfs.ext4 /dev/sda1
|
実行結果:
1
2
3
4
5
6
7
8
9
10
|
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
|
ext4ファイルシステムを作成。最も一般的なLinuxファイルシステムです。
例2: ラベル付きでファイルシステムを作成#
1
|
sudo mkfs.ext4 -L mydata /dev/sda1
|
実行結果:
ボリュームラベルを設定しながら作成。マウント時に使用できます。
例3: XFSファイルシステムを作成#
1
|
sudo mkfs.xfs /dev/sda1
|
実行結果:
1
2
3
4
5
6
7
8
9
10
|
meta-data=/dev/sda1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
|
XFSは大容量データに向いています。
例4: FAT32ファイルシステムを作成#
1
|
sudo mkfs.fat -F 32 /dev/sda1
|
実行結果:
1
|
mkfs.fat 4.1 (2017-01-24)
|
USB など Windows との互換性が必要な場合に使用。
例5: ファイルシステムの種類を確認してから作成#
1
|
sudo mkfs -t ext4 /dev/sda1
|
実行結果:
-tオプションでファイルシステムタイプを明示。
例6: 確認なしで強制作成#
1
|
sudo mkfs.ext4 -F /dev/sda1
|
実行結果:
-Fで確認をスキップ。スクリプト実行時に便利。
例7: ルート専用ブロック率を変更#
1
|
sudo mkfs.ext4 -m 1 /dev/sda1
|
実行結果:
デフォルトは5%がroot専用。通常のディスクなら1%程度が目安。
例8: Btrfsファイルシステムを作成#
1
|
sudo mkfs.btrfs /dev/sda1
|
実行結果:
1
2
3
4
5
6
|
btrfs-progs v5.15.1 Linux version
Label: (null)
UUID: c3d4e5f6-a7b8-9012-cdef-123456789012
Node size: 16384
Leaf size: 16384
...
|
スナップショット機能が便利。SSD に向いています。
例9: inode数を指定#
1
|
sudo mkfs.ext4 -N 1000000 /dev/sda1
|
実行結果:
小さいファイルが非常に多い場合に指定。
例10: ブロックサイズを指定#
1
|
sudo mkfs.ext4 -b 4096 /dev/sda1
|
実行結果:
ブロックサイズを明示指定。通常は自動で最適化。
Tips・注意点#
超危険!データが消える#
1
2
3
|
# ⚠️ デバイス名を確認してから実行!
lsblk # まず確認
sudo mkfs.ext4 /dev/sda1 # 正しいデバイスを指定
|
間違ったパーティションを指定するとシステムが起動不可能になります。
ext4が無難#
1
2
|
# ほぼすべてのLinuxシステムで安定
sudo mkfs.ext4 /dev/sda1
|
汎用性が高く、バージョン違いのLinuxでも認識します。
ファイルシステム作成後、すぐにマウント#
1
2
|
sudo mkfs.ext4 /dev/sda1
sudo mount /dev/sda1 /mnt/data
|
作成直後はマウントされていません。
実践的な使い方#
新しいディスクの初期化#
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 1. デバイス確認
lsblk
# 2. パーティション作成(必要に応じて)
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%
# 3. ファイルシステム作成
sudo mkfs.ext4 /dev/sdb1
# 4. マウント
sudo mkdir /mnt/storage
sudo mount /dev/sdb1 /mnt/storage
|
新しいディスクを使えるようにするまでの流れ。
USB を Linux で使えるようにする#
1
2
3
4
5
6
7
8
|
# 1. デバイス確認
lsblk
# 2. ファイルシステム作成
sudo mkfs.ext4 /dev/sdc1
# 3. マウント
sudo mount /dev/sdc1 /mnt/usb
|
USB ドライブをLinuxで使える形式に初期化。
ラベル付きで作成して fstab に登録#
1
2
3
4
5
|
# ラベル付きで作成
sudo mkfs.ext4 -L backup /dev/sda1
# fstab に登録
LABEL=backup /mnt/backup ext4 defaults 0 2
|
ラベルで管理すると、デバイス順序の変更に強い。
まとめ#
mkfsコマンドのポイント:
- ファイルシステムを初期化する
- ext4: 最も安定(推奨)
- xfs: 大容量ファイル向け
- btrfs: スナップショット機能付き
- -L: ラベルを設定
- -m: root専用ブロック率変更
- -F: 確認なしで強制実行
- よく使う組み合わせ:
sudo mkfs.ext4 /dev/sda1
ファイルシステム作成は必須スキル。実行前の デバイス確認は絶対!バックアップはもちろん、本当に正しいパーティションか3回は確認してください。