Linuxで新しく作成したパーティションをファイル保存に使えるようにするには、mkfsコマンドでファイルシステムを作成します。
前回解説したfdiskコマンドでは、ディスクにパーティションを作成する方法を扱いました。
しかし、パーティションを作成しただけでは、まだ通常のファイル保存には使えません。
作成したパーティションにext4やxfsなどのファイルシステムを作成して、さらにmountでマウントすることで、Linux上でファイルを保存できるようになります。
この記事では、Linux初心者でも安全に理解できるように、mkfsコマンドの基本構文、mkfs.ext4やmkfs.xfsの使い方、作業前の確認、ファイルシステム作成後のマウント方法、データ消去の注意点、よくあるエラーまで実例付きで解説します。
- mkfsコマンドとは
- ファイルシステムとは
- mkfsを使う場面
- mkfsを実行する前の重要な注意点
- 対象ディスクを確認する方法
- マウント中か確認する方法
- mkfsコマンドの基本構文
- ext4ファイルシステムを作成する方法
- xfsファイルシステムを作成する方法
- vfatファイルシステムを作成する方法
- swap領域を作成する場合
- ラベルを付けてファイルシステムを作成する方法
- UUIDを確認する方法
- ファイルシステム作成後にマウントする方法
- /etc/fstabに登録する方法
- fdiskからmkfs、mountまでの全体の流れ
- mkfsとfdiskの違い
- mkfsとmountの違い
- mkfsとlsblk・blkidの違い
- mkfsコマンドの主な種類
- mkfsコマンドでよくある注意点
- mkfsコマンドでよくあるエラー
- よくある質問
- まとめ
mkfsコマンドとは
mkfsは、Linuxでパーティションやブロックデバイスにファイルシステムを作成するためのコマンドです。
mkfsは「make filesystem」の略です。
たとえば、/dev/sdb1というパーティションにext4ファイルシステムを作成する場合は、次のように実行します。
sudo mkfs.ext4 /dev/sdb1
ファイルシステムを作成すると、そのパーティションをLinuxでファイル保存先として使えるようになります。
ただし、mkfsを実行すると対象パーティション内の既存データは基本的に失われます。
そのため、作業前には対象デバイスが本当に正しいかを必ず確認してください。
ファイルシステムとは
ファイルシステムとは、ディスク上にファイルやディレクトリを保存・管理するための仕組みです。
ディスクやパーティションは、そのままでは単なる保存領域です。
そこにファイル名、ディレクトリ構造、権限、更新日時などを管理する仕組みを作ることで、Linuxからファイルとして扱えるようになります。
代表的なファイルシステムには、次のようなものがあります。
| ファイルシステム | 特徴 |
|---|---|
ext4 |
Linuxで広く使われる標準的なファイルシステム |
xfs |
大容量ディスクやサーバー用途でよく使われる |
vfat |
USBメモリなどで使われるFAT系ファイルシステム |
ntfs |
Windowsでよく使われるファイルシステム |
swap |
スワップ領域用の形式 |
Linuxサーバーで追加ディスクを使う場合は、ext4またはxfsを選ぶことが多いです。
mkfsを使う場面
mkfsは、主に次のような場面で使います。
- 新しく追加したディスクを使えるようにしたいとき
fdiskで作成したパーティションをフォーマットしたいとき- USBメモリにファイルシステムを作成したいとき
- 検証用ディスクを初期化したいとき
- サーバーのデータ用ディスクを作成したいとき
たとえば、追加ディスクを/dataとして使う場合は、次のような流れになります。
lsblk
sudo fdisk /dev/sdb
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
df -h /data
mkfsは、この流れの中で「パーティションにファイルシステムを作る」段階を担当します。
mkfsを実行する前の重要な注意点
mkfsは非常に強力なコマンドです。
対象を間違えると、必要なデータを消してしまう可能性があります。
実行前には、少なくとも次の3つを確認してください。
- 対象デバイスが本当に作業対象か
- マウント中ではないか
- 必要なデータのバックアップがあるか
特に、/dev/sdaや/dev/nvme0n1はシステムディスクであることがあります。
誤ってOSの入っているパーティションにmkfsを実行すると、システムが起動しなくなる可能性があります。
対象ディスクを確認する方法
まず、lsblkでディスクとパーティション構成を確認します。
lsblk
実行結果の例です。
NAME SIZE TYPE MOUNTPOINTS
sda 50G disk
├─sda1 1G part /boot
└─sda2 49G part /
sdb 100G disk
└─sdb1 100G part
この例では、sdaがシステムディスク、sdbが追加ディスクです。
/dev/sdb1にはマウントポイントが表示されていないため、まだマウントされていないパーティションだと分かります。
ファイルシステムの有無も確認したい場合は、lsblk -fを使います。
lsblk -f
実行結果の例です。
NAME FSTYPE LABEL UUID MOUNTPOINTS
sda
├─sda1 xfs 1111-2222 /boot
└─sda2 xfs 3333-4444 /
sdb
└─sdb1
/dev/sdb1のFSTYPEが空であれば、ファイルシステムがまだ作成されていない可能性があります。
マウント中か確認する方法
対象パーティションがマウント中か確認するには、lsblkやfindmntを使います。
lsblk
findmnt /data
対象がマウントされている場合は、mkfsを実行する前にアンマウントします。
sudo umount /data
マウント中のパーティションに対してmkfsを実行するのは危険です。
必ずマウント状態を確認しましょう。
mkfsコマンドの基本構文
mkfsコマンドの基本構文は次のとおりです。
mkfs -t ファイルシステム種類 デバイス名
たとえば、/dev/sdb1にext4を作成する場合は、次のように実行します。
sudo mkfs -t ext4 /dev/sdb1
また、ファイルシステム種類ごとの専用コマンドを使うことも多いです。
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.xfs /dev/sdb1
sudo mkfs.vfat /dev/sdb1
実務では、mkfs.ext4やmkfs.xfsのような専用コマンドをよく使います。
ext4ファイルシステムを作成する方法
Linuxでよく使われるext4ファイルシステムを作成するには、mkfs.ext4を使用します。
sudo mkfs.ext4 /dev/sdb1
実行すると、ファイルシステム作成処理が行われます。
作成後、lsblk -fで確認します。
lsblk -f
実行結果の例です。
NAME FSTYPE LABEL UUID MOUNTPOINTS
sdb
└─sdb1 ext4 5555-6666-7777-8888
FSTYPEにext4が表示されていれば、ファイルシステムが作成されています。
xfsファイルシステムを作成する方法
CentOS Stream、Rocky Linux、AlmaLinuxなどのサーバー環境では、xfsが使われることも多いです。
xfsファイルシステムを作成するには、mkfs.xfsを使用します。
sudo mkfs.xfs /dev/sdb1
作成後、確認します。
lsblk -f
実行結果の例です。
NAME FSTYPE LABEL UUID MOUNTPOINTS
sdb
└─sdb1 xfs 9999-aaaa-bbbb-cccc
FSTYPEにxfsが表示されていれば、XFSファイルシステムが作成されています。
環境によってはxfsprogsパッケージが必要です。
sudo dnf install xfsprogs
vfatファイルシステムを作成する方法
USBメモリなどでWindowsとの互換性を意識する場合、vfatを使うことがあります。
sudo mkfs.vfat /dev/sdb1
FAT32として作成したい場合、環境によっては次のように指定します。
sudo mkfs.vfat -F 32 /dev/sdb1
mkfs.vfatを使うには、dosfstoolsパッケージが必要な場合があります。
sudo apt install dosfstools
Linux専用のサーバーディスクとして使う場合は、通常ext4やxfsを検討します。
swap領域を作成する場合
スワップ領域を作成する場合は、通常のmkfsではなくmkswapを使用します。
sudo mkswap /dev/sdb1
スワップを有効化するには、swaponを使います。
sudo swapon /dev/sdb1
現在のスワップ状態は、次のコマンドで確認できます。
swapon --show
free -h
スワップ設定は通常のデータ用ファイルシステムとは用途が違うため、別記事で詳しく扱うのがおすすめです。
ラベルを付けてファイルシステムを作成する方法
ファイルシステムにはラベルを付けられる場合があります。
ext4でラベルを付ける例です。
sudo mkfs.ext4 -L data /dev/sdb1
作成後に確認します。
lsblk -f
実行結果の例です。
NAME FSTYPE LABEL UUID MOUNTPOINTS
sdb
└─sdb1 ext4 data 5555-6666-7777-8888
ラベルを使うと、どの用途のディスクか分かりやすくなります。
UUIDを確認する方法
mkfsでファイルシステムを作成すると、通常は新しいUUIDが作成されます。
UUIDはlsblk -fやblkidで確認できます。
lsblk -f
sudo blkid /dev/sdb1
実行結果の例です。
/dev/sdb1: UUID="5555-6666-7777-8888" TYPE="ext4"
/etc/fstabへ自動マウント設定を書く場合、このUUIDを使用します。
ファイルシステム作成後にマウントする方法
mkfsでファイルシステムを作成したら、マウントポイントを作成してマウントします。
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
マウントできたか確認します。
df -h /data
findmnt /data
lsblk
実行結果の例です。
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 100G 24K 100G 1% /data
これで/dataディレクトリを通して、/dev/sdb1のファイルシステムを利用できます。
/etc/fstabに登録する方法
再起動後も自動でマウントしたい場合は、/etc/fstabに設定します。
まずUUIDを確認します。
sudo blkid /dev/sdb1
実行結果の例です。
/dev/sdb1: UUID="5555-6666-7777-8888" TYPE="ext4"
/etc/fstabを編集する前にバックアップします。
sudo cp /etc/fstab /etc/fstab.bak
設定例です。
UUID=5555-6666-7777-8888 /data ext4 defaults 0 2
編集後は、いきなり再起動せず、必ずmount -aで確認します。
sudo mount -a
findmnt /data
/etc/fstabの設定を間違えると起動時のトラブルにつながる場合があります。慎重に確認しましょう。
fdiskからmkfs、mountまでの全体の流れ
追加ディスクをLinuxで使えるようにする全体の流れを整理します。
1. ディスクを確認する
lsblk
2. パーティションを作成する
sudo fdisk /dev/sdb
3. パーティション情報を再読み込みする
sudo partprobe /dev/sdb
4. ファイルシステムを作成する
sudo mkfs.ext4 /dev/sdb1
5. マウントポイントを作成する
sudo mkdir -p /data
6. マウントする
sudo mount /dev/sdb1 /data
7. マウント状態を確認する
df -h /data
findmnt /data
lsblk
8. 必要ならfstabへ登録する
sudo blkid /dev/sdb1
sudo cp /etc/fstab /etc/fstab.bak
sudo vi /etc/fstab
sudo mount -a
このように、mkfsはディスク管理作業の中間にある重要なコマンドです。
mkfsとfdiskの違い
fdiskとmkfsは、どちらもディスク管理で使いますが、役割が違います。
| コマンド | 役割 |
|---|---|
fdisk |
ディスクにパーティションを作成・削除する |
mkfs |
パーティションにファイルシステムを作成する |
簡単にいうと、fdiskは「領域を分ける」、mkfsは「ファイルを保存できる形式にする」コマンドです。
mkfsとmountの違い
mkfsとmountも混同しやすいコマンドです。
| コマンド | 役割 |
|---|---|
mkfs |
ファイルシステムを作成する |
mount |
ファイルシステムをディレクトリへ接続する |
mkfsを実行しただけでは、まだそのパーティションへ通常のパスでアクセスできません。
mountで/dataなどへ接続して、初めてファイル保存先として使いやすくなります。
mkfsとlsblk・blkidの違い
lsblkやblkidは確認用のコマンドです。
mkfsは実際にファイルシステムを作成する操作系コマンドです。
| コマンド | 主な用途 |
|---|---|
lsblk |
ディスクやパーティション構成を確認する |
blkid |
UUIDやファイルシステム種類を確認する |
mkfs |
ファイルシステムを作成する |
安全のため、mkfsを実行する前後でlsblk -fやblkidを使って確認しましょう。
mkfsコマンドの主な種類
| コマンド | 作成するファイルシステム |
|---|---|
mkfs.ext4 |
ext4 |
mkfs.xfs |
xfs |
mkfs.vfat |
vfat / FAT |
mkfs.btrfs |
btrfs |
mkswap |
swap領域 |
環境によっては、対応するパッケージがインストールされていないと使えない場合があります。
mkfsコマンドでよくある注意点
対象デバイスを間違えない
mkfsで最も危険なのは、対象デバイスを間違えることです。
作業前には必ず確認します。
lsblk -f
sudo fdisk -l
システムディスクや必要なデータが入ったパーティションを指定しないよう注意してください。
パーティションではなくディスク全体を指定しない
通常は、/dev/sdbではなく/dev/sdb1のようなパーティションを指定します。
sudo mkfs.ext4 /dev/sdb1
作業内容によってはディスク全体にファイルシステムを作成するケースもありますが、初心者は基本的にパーティションを作成してから、そのパーティションにmkfsを実行する流れで覚えると安全です。
mkfs後はUUIDが変わる
mkfsでファイルシステムを作り直すと、UUIDが変わることがあります。
/etc/fstabで古いUUIDを指定している場合、マウントできなくなる可能性があります。
作成後は必ずUUIDを確認しましょう。
sudo blkid /dev/sdb1
マウント中のパーティションには実行しない
マウント中のパーティションにmkfsを実行しないでください。
まず状態を確認します。
findmnt /data
lsblk
必要に応じてアンマウントします。
sudo umount /data
mkfsコマンドでよくあるエラー
Permission denied
mkfs.ext4: Permission denied while trying to determine filesystem size
権限が不足している可能性があります。
通常はsudoを付けて実行します。
sudo mkfs.ext4 /dev/sdb1
No such file or directory
mkfs.ext4: No such file or directory while trying to determine filesystem size
指定したデバイスが存在しない可能性があります。
デバイス名を確認してください。
lsblk
is mounted; will not make a filesystem
/dev/sdb1 is mounted; will not make a filesystem here!
対象パーティションがマウント中です。
マウント状態を確認し、必要ならアンマウントします。
findmnt
sudo umount /data
command not found
mkfs.xfs: command not found
必要なパッケージが入っていない可能性があります。
CentOS Stream、Rocky Linux、AlmaLinuxなどでxfsを使う場合は、xfsprogsを確認します。
sudo dnf install xfsprogs
UbuntuやDebianでFAT系を扱う場合は、dosfstoolsが必要なことがあります。
sudo apt install dosfstools
既存のファイルシステムがあると警告される
すでにファイルシステムがあるパーティションにmkfsを実行すると、警告が出ることがあります。
これは、既存データを上書きする可能性があるためです。
本当に初期化してよい対象か、もう一度確認してください。
lsblk -f
sudo blkid /dev/sdb1
よくある質問
mkfsコマンドは何に使いますか?
パーティションやブロックデバイスに、ext4やxfsなどのファイルシステムを作成するために使います。
mkfsを実行するとデータは消えますか?
基本的に対象パーティション内の既存データは失われます。実行前に必ず対象デバイスを確認し、必要なデータはバックアップしてください。
ext4でフォーマットするにはどうすればよいですか?
mkfs.ext4を使用します。
sudo mkfs.ext4 /dev/sdb1
xfsでフォーマットするにはどうすればよいですか?
mkfs.xfsを使用します。
sudo mkfs.xfs /dev/sdb1
fdiskとmkfsの違いは何ですか?
fdiskはパーティションを作成・削除するコマンドです。mkfsは作成したパーティションにファイルシステムを作成するコマンドです。
mkfsを実行しただけでファイル保存できますか?
いいえ。通常はmkfsでファイルシステムを作成したあと、mountでディレクトリへマウントする必要があります。
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
mkfs後にUUIDは変わりますか?
ファイルシステムを作り直すとUUIDが変わることがあります。作成後はblkidやlsblk -fで確認しましょう。
マウント中のパーティションにmkfsできますか?
基本的に行うべきではありません。対象がマウント中か確認し、必要ならアンマウントしてから作業します。
findmnt /data
sudo umount /data
UbuntuやCentOS Streamでも使えますか?
はい。Ubuntu、Debian、CentOS Stream、Rocky Linux、AlmaLinuxなど、多くのLinuxディストリビューションで利用できます。ただし、ファイルシステム種類によっては追加パッケージが必要な場合があります。
まとめ
mkfsコマンドは、Linuxでパーティションにファイルシステムを作成するためのコマンドです。
ext4を作成する場合は、次のように実行します。
sudo mkfs.ext4 /dev/sdb1
xfsを作成する場合は、次のように実行します。
sudo mkfs.xfs /dev/sdb1
ファイルシステム作成後は、マウントポイントを作成してマウントします。
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
マウント状態は、次のコマンドで確認できます。
df -h /data
findmnt /data
lsblk
fdiskはパーティションを作るコマンド、mkfsはファイルシステムを作るコマンド、mountはファイルシステムをディレクトリへ接続するコマンドです。
追加ディスクを使えるようにする流れでは、この3つの役割を分けて理解することが大切です。
sudo fdisk /dev/sdb
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /data
mkfsは便利ですが、対象を間違えるとデータを失う危険があります。実行前には必ずlsblk -fやblkidで対象を確認し、必要なデータはバックアップしてから作業しましょう。




コメント