Linux / コマンド / mkfs - 新しいファイルシステムを作成する前の確認事項と使い方

mkfsはデバイスやパーティションに新しいファイルシステムを作成します。対象に既存のファイルシステムやデータがある場合、上書きされる可能性があるため、実行前にデバイスの識別とバックアップが必須です。

mkfsは、形式ごとの作成プログラムを呼び出すフロントエンドです。現在のutil-linuxの説明書では、汎用フロントエンドよりmkfs.ext4やmkfs.xfsなど専用ツールの利用を勧めています。ext4の例ではe2fsprogsのmkfs.ext4が必要です。パーティションを区切る作業と、その中にファイルシステムを作る作業は別です。

基本的な文法

sudo mkfs -t ファイルシステム形式 デバイス

インストールされている実装とオプションは、配布版によって異なる場合があります。man mkfsで現在のシステムの説明を確認してください。

使用例

対象デバイスとデータの確認

lsblk -fで形式、UUID(汎用一意識別子)、マウント先を確認します。容量と種類も照合する場合はlsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTSを使います。既存データが必要なデバイスには実行せず、バックアップから戻せる未マウントの専用実習パーティションを用意してください。

lsblk -f

ファイルシステム作成の文法

次は実際のデバイスパスに置き換える必要がある破壊的コマンドの形式です。実行前にバックアップと対象の検証を完了させてください。

sudo mkfs.ext4 /dev/デバイス名

結果の識別情報の確認

作業後は、blkidでファイルシステム形式と新しいUUIDを確認します。

sudo blkid /dev/デバイス名

フォーマット後に確認すべき値

以下は実際にファイルシステムを作成する手順です。/dev/sdb1を、内容を失ってもよい未マウントの対象パーティションに置き換えます。lsblk -fとfindmntで、対象デバイスとマウント状態を事前に確認してください。単に既存データを開くために行う手順ではありません。

lsblk -f
sudo mkfs.ext4 /dev/sdb1
sudo blkid /dev/sdb1

フォーマットが正常に完了した後、最後の確認で期待される出力形式の例:

/dev/sdb1: UUID="..." TYPE="ext4"

UUIDは実際の実行時に新しく生成される値なので、例のドットをコピーして設定に使用してはいけません。フォーマットツールが成功メッセージを出力しても、データが回復可能であるという意味ではありません。既存のファイルシステムを利用する目的なら、mountで接続します。新たなmkfsは不要です。

パーティション作成とファイルシステム作成は別の作業です。fdiskやpartedでパーティションを作成しても、その中にext4・XFSが自動的に作成されるわけではありません。逆に既存のファイルシステムを単に接続したい場合は、新たにフォーマットするとむしろデータが失われます。

主なオプションと形式

オプション・形式 説明
-t 形式 mkfsフロントエンドで作成するファイルシステムの形式を指定します。
mkfs.ext4 ext4ファイルシステム専用の作成ツールです。
mkfs.xfs XFS ファイルシステム専用作成ツールです。
-L ラベル ファイルシステムごとのツールでサポートされている場合はラベルを指定します。

使用する際の注意点

フォーマットは既存のデータや UUID を変更する可能性があり、簡単な元に戻すコマンドはありません。対象がマウントされているか、またはオペレーティングシステム・バックアップディスクでないかを確認し、バックアップは別媒体で検証してください。ファイルシステムごとのオプションとサイズ制限は異なるため、man mkfs.ext4 のように実際の作成ツールのマニュアルを確認してください。

よくある質問

mkfs を実行するとパーティションも作成されますか?

いいえ。mkfs は選択したデバイスにファイルシステムを作成します。パーティションテーブルの作成やパーティション作成は fdisk や parted などの別作業です。

公式ドキュメント

オプションの正確な動作や実装ごとの差は、mkfs 関連公式ドキュメントで確認できます。