InfraAcademy

InfraAcademy Blog

fstabの書き方は?Linuxでファイルをマウントする方法を解説【fstabとmountコマンド】

| #Linux #Linux入門
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアの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/sda1ext3を例にしていました。

現在はデバイス名を直接指定するよりUUIDを使い、実際のディスクに合わせてext4xfsなどを設定する方が安全です。

マウントオプションの意味

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

fstabで設定したマウント状況

画像のように、デバイス、マウント先、ファイルシステム、マウントオプションが表示されます。

表示が多い場合は、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 --verifymount -aでテストすることです。

私もfstabを変更するときは、必ずバックアップを作り、設定を確認してから再起動します。

1行の設定でも、Linuxの起動に影響する可能性があるからです。

Linuxのファイルシステムを実際に学びたい方へ

fstabは、Linuxのディスク、ファイルシステム、マウントの関係を理解すると分かりやすくなります。

InfraAcademyでは、コマンドを実行しながらファイルシステムやサーバー構築を学習できます。

Linuxのシステム管理を学びたい方は、Linux中級講座を確認してみてください。

サーバーを構築しながら学びたい方は、サーバー構築講座がおすすめです。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る