こんにちは、フルスタックエンジニアのryuです。
Linuxでディスクを再起動後も自動でマウントしたいときは、/etc/fstabを設定します。
ただ、fstabの記述を間違えると、マウントに失敗するだけでなく、Linuxが正常に起動しなくなることもあります。
少し怖いですよね?
この記事では、fstabの6つの項目と、安全に設定を反映する手順を初心者向けに解説します。
fstabとは?¶
fstabは、Linuxでファイルシステムをどこへ、どのような設定でマウントするのか記述するファイルです。
ファイルは以下の場所にあります。
/etc/fstab
例えば、新しく追加したディスクを/dataへ自動でマウントしたい場合に使用します。
一度だけマウントするならmountコマンドで十分ですが、再起動後も同じ場所へマウントしたい場合はfstabへ設定します。
fstabを編集する前に確認すること¶
fstabはLinuxの起動にも関係する重要なファイルです。
いきなり編集するのではなく、最初にバックアップを作成しておきましょう。
sudo cp -a /etc/fstab /etc/fstab.bak
設定を元へ戻したい場合は、バックアップしたファイルを使用できます。
sudo cp -a /etc/fstab.bak /etc/fstab
次に、マウントしたいディスクとファイルシステムを確認します。
lsblk -f
次のような情報が表示されます。
NAME FSTYPE UUID MOUNTPOINTS
sdb
└─sdb1 ext4 12345678-aaaa-bbbb-cccc-123456789abc
ここでは、/dev/sdb1のファイルシステムがext4で、UUIDが表示されています。
fstabではUUIDを使う¶
fstabの1つ目の項目には、/dev/sdb1のようなデバイス名も指定できます。
ただし、ディスクの追加や認識順序によってデバイス名が変わる可能性があります。
そのため、通常はディスクごとに割り当てられたUUIDを使用します。
UUIDは、lsblk -fまたはblkidで確認できます。
sudo blkid /dev/sdb1
実行結果は以下のようになります。
/dev/sdb1: UUID="12345678-aaaa-bbbb-cccc-123456789abc" TYPE="ext4"
このUUIDをfstabへ記述します。
マウントポイントを作成する¶
マウント先となるディレクトリがない場合は、先に作成します。
今回は/dataを使用します。
sudo mkdir -p /data
すでにディレクトリがある場合は、マウント前に中身を確認してください。
ディスクをマウントすると、マウント中は元のディレクトリにあったファイルが見えなくなります。
fstabの基本的な書き方¶
/etc/fstabを編集します。
sudo vi /etc/fstab
今回の例では、次の1行を追加します。
UUID=12345678-aaaa-bbbb-cccc-123456789abc /data ext4 defaults 0 2
fstabは、空白またはタブで区切られた6つの項目で構成されています。
UUID=12345678-aaaa-bbbb-cccc-123456789abc /data ext4 defaults 0 2
[1] [2] [3] [4] [5][6]
それぞれの意味は以下の通りです。
| 項目 | 内容 | 設定例 |
|---|---|---|
| 1 | マウントするデバイス | UUID=... |
| 2 | マウントポイント | /data |
| 3 | ファイルシステム | ext4 |
| 4 | マウントオプション | defaults |
| 5 | dumpによるバックアップ対象 | 通常は0 |
| 6 | 起動時にfsckを行う順番 | ルートは1、その他は2、確認しない場合は0 |
元記事では/dev/sda1とext3を例にしていました。
現在はデバイス名を直接指定するよりUUIDを使い、実際のディスクに合わせてext4やxfsなどを設定する方が安全です。
マウントオプションの意味¶
4つ目の項目には、マウント時の動作を指定します。
よく使うオプションは以下の通りです。
| オプション | 意味 |
|---|---|
defaults |
標準的な設定でマウントする |
ro |
読み取り専用でマウントする |
rw |
読み書き可能でマウントする |
noauto |
起動時やmount -aで自動マウントしない |
nofail |
デバイスがなくても起動処理を失敗させない |
_netdev |
ネットワークが必要なファイルシステムとして扱う |
USBディスクなど、接続されていない可能性があるディスクではnofailを使うことがあります。
ただし、必ず必要なデータディスクにnofailを指定すると、マウント失敗に気づかないままサービスが動く可能性があります。
目的に合わせて設定しましょう。
fstabの記述を確認する¶
設定後に、いきなり再起動してはいけません。
まずはfindmntを使って、fstabの記述に問題がないか確認します。
sudo findmnt --verify --verbose
問題がなければ、fstabの設定を使ってマウントします。
sudo mount -a
mount -aは、fstabに記述されたファイルシステムのうち、noautoが指定されていないものをマウントします。
systemdを使用している環境では、fstabを変更したあとに設定を再読み込みしておくとよいでしょう。
sudo systemctl daemon-reload
安全に進めるなら、次の順番で実行します。
sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo mount -a
エラーが表示された場合は、再起動せずにfstabを修正してください。
マウントできたか確認する¶
マウント後は、findmntで対象のマウントポイントを確認します。
findmnt /data
dfでも確認できます。
df -hT /data
すべてのマウント状況を確認する場合は、引数なしでmountを実行します。
mount

画像のように、デバイス、マウント先、ファイルシステム、マウントオプションが表示されます。
表示が多い場合は、findmnt /dataのように対象を絞る方が確認しやすいです。
fstabでマウントできないときの確認方法¶
エラーが発生したときは、以下を順番に確認します。
UUIDを間違えていないか¶
fstabに書いたUUIDと、lsblk -fの結果を比較します。
1文字でも違うと、対象のディスクを見つけられません。
マウントポイントが存在するか¶
/dataなど、指定したディレクトリが存在するか確認します。
ls -ld /data
存在しない場合は作成してください。
sudo mkdir -p /data
ファイルシステムが合っているか¶
ext4のディスクにxfsと書いても、正しくマウントできません。
以下のコマンドで確認します。
lsblk -f
起動できなくなった場合¶
fstabの設定ミスでLinuxが起動できない場合は、リカバリーモードや緊急モードから/etc/fstabを修正します。
作成しておいた/etc/fstab.bakへ戻せるように、編集前のバックアップを忘れないでください。
fstabの書き方まとめ¶
fstabへ設定すると、Linuxの再起動後もファイルシステムを自動でマウントできます。
今回の設定例は以下の通りです。
UUID=12345678-aaaa-bbbb-cccc-123456789abc /data ext4 defaults 0 2
大切なのは、書き方を暗記することではありません。
UUID、マウントポイント、ファイルシステムを確認し、再起動する前にfindmnt --verifyとmount -aでテストすることです。
私もfstabを変更するときは、必ずバックアップを作り、設定を確認してから再起動します。
1行の設定でも、Linuxの起動に影響する可能性があるからです。
Linuxのファイルシステムを実際に学びたい方へ¶
fstabは、Linuxのディスク、ファイルシステム、マウントの関係を理解すると分かりやすくなります。
InfraAcademyでは、コマンドを実行しながらファイルシステムやサーバー構築を学習できます。
Linuxのシステム管理を学びたい方は、Linux中級講座を確認してみてください。
サーバーを構築しながら学びたい方は、サーバー構築講座がおすすめです。
