Linuxの/etc/fstabとは?設定ファイルの書き方と自動マウントを完全解説!
生徒
「Linux(リナックス)で外付けHDDやUSBメモリを接続したとき、再起動するたびに手動で接続し直すのが面倒なんです。何かいい方法はありませんか?」
先生
「それは『自動マウント』の設定が必要ですね。Linuxには『/etc/fstab(エトセ・エフスタブ)』という、起動時にどのストレージをどこに接続するかを決める重要な設定ファイルがあるんですよ。」
生徒
「エフスタブ……。難しそうな名前ですね。初心者でもそのファイルを編集して、自動で認識されるようにできますか?」
先生
「設定の書き方さえ覚えれば大丈夫です!ただ、間違えるとLinuxが起動しなくなることもあるので、慎重に作業する必要があります。基本から丁寧に解説しますね。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. /etc/fstabとは?読み方と基本的な役割
/etc/fstabは、読み方は/etc/fstab(エトセ・エフスタブ)といいます。このファイルは、Linux(リナックス)システムにおいて、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、ネットワークストレージなどを、どのディレクトリに接続するかを記述した設定ファイルです。
Linuxでは、ストレージデバイス(装置)を特定のフォルダに結びつける作業を「マウント(マウント)」と呼びます。通常、手動でマウントを行うにはmount(マウント)コマンドを使いますが、パソコンを再起動するたびにコマンドを打つのは大変です。そこで、この/etc/fstabにあらかじめ設定を書き込んでおくことで、OSの起動時にシステムが自動的にマウントを行ってくれるようになります。
歴史的には、Unix(ユニックス)の時代から存在する非常に伝統的なファイルです。ファイル名の「fs」はFile System(ファイルシステム)、「tab」はTable(テーブル/一覧表)を意味しており、文字通り「ファイルシステムの一覧表」という役割を担っています。ファイルシステムとは、読み方はファイルシステムといい、データを管理する仕組みのことです。
2. マウントの仕組みとファイルシステムの基本
初心者の方が一番戸惑うのが「マウント」という概念かもしれません。Windowsでは、USBメモリを差し込むと「Dドライブ」や「Eドライブ」として自動的に表示されますが、Linuxでは「/(ルートディレクトリ)」を頂点とした大きな木構造のどこかに、デバイスを「枝」として継ぎ足す作業が必要です。
例えば、追加したHDDを「/mnt/data」というフォルダで使いたい場合、そのHDDを「/mnt/data」にマウントします。この「つなぎ目」をマウントポイント(マウントポイント)と呼びます。/etc/fstabは、このつなぎ目の設計図のようなものです。
管理対象となるファイルシステムには、Linux標準の「ext4(イーエックスティーフォー)」や、Windowsと互換性のある「ntfs(エヌティーエフエス)」、ネットワーク越しに利用する「nfs(エヌエフエス)」など、さまざまな種類があります。これらを正しく指定することが、安定したストレージ管理の第一歩となります。
3. /etc/fstabの内容を確認してみよう
まずは、自分のパソコンの/etc/fstabがどのようになっているか、中身を確認してみましょう。このファイルは重要な設定ファイルなので、一般ユーザーでも中身を見ることはできますが、編集には管理者権限(root権限)が必要です。読み取りにはcat(キャット)コマンドを使用します。
cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6 / ext4 errors=remount-ro 0 1
UUID=b2c3d4e5-f6g7-h8i9-j0k1-l2m3n4o5p6q7 /boot ext4 defaults 0 2
実行結果を見ると、いくつかの項目が横に並んでいるのがわかりますね。これらはスペースまたはタブで区切られており、全部で6つの項目(フィールド)で構成されています。それぞれの項目の意味を理解することが、自動マウント設定の鍵となります。
4. 設定ファイルの6つの項目を詳しく解説
/etc/fstabの各行には、左から順番に以下の情報が書かれています。読み方は左から、第1フィールド、第2フィールド……と呼びます。
| 項目名 | 説明 |
|---|---|
| デバイス名(UUID) | どのストレージ装置をマウントするか。最近はUUID(一意の識別番号)を使います。 |
| マウントポイント | どこ(フォルダ)に接続するか。例:/mnt/mydataなど。 |
| ファイルシステム形式 | データの管理形式。ext4, vfat, ntfs, xfsなど。 |
| マウントオプション | 読み書き許可や動作設定。通常は「defaults」でOK。 |
| dumpフラグ | バックアップが必要か。現在はほとんど「0(不要)」を使います。 |
| fsckチェック順序 | 起動時のエラーチェック順。起動ドライブは「1」、他は「2」、チェックしないなら「0」。 |
特に重要なのは、最初の「デバイス名」です。以前は「/dev/sda1」のように記述していましたが、ドライブを差し替えると名前が変わってしまうことがあるため、現在は「UUID(ユーユーアイディー)」という、装置固有の背番号のような数字を使うのが一般的です。UUIDは、Universally Unique Identifier(ユニバーサリー・ユニーク・アイデンティファイア)の略称です。
5. UUIDを確認する方法(blkidコマンド)
自動マウントを設定するためには、まずマウントしたいストレージのUUIDを調べる必要があります。これにはblkid(ブロックアイディー)コマンドを使用します。このコマンドはシステム情報を扱うため、管理者権限(sudo)で実行するのが一般的です。
blkid
/dev/sda1: UUID="a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="...
/dev/sdb1: UUID="z9y8x7w6-v5u4-t3s2-r1q0-p9o8n7m6l5k4" BLOCK_SIZE="4096" TYPE="vfat" PARTUUID="...
このように、接続されているデバイスの一覧と、それぞれのUUIDが表示されます。新しく追加したHDDが「/dev/sdb1」であれば、その横に表示されている長い英数字のUUIDをコピーして、/etc/fstabに貼り付けることになります。
6. 実際に/etc/fstabを編集する手順
それでは、新しいHDDを「/mnt/backup」という場所に自動マウントする設定を追加してみましょう。編集にはnano(ナノ)やvi(ブイアイ)といったテキストエディタを使用します。失敗したときに元に戻せるよう、必ずバックアップを取ってから作業しましょう。
まず、バックアップを作成するコマンド例です。
cp /etc/fstab /etc/fstab.bak
ls /etc/fstab.bak
/etc/fstab.bak
次に、エディタでファイルを開き、一番下の行に新しい設定を書き加えます。ここでは、先ほど調べたUUIDを使って、次のように記述します。
UUID=z9y8x7w6-v5u4-t3s2-r1q0-p9o8n7m6l5k4 /mnt/backup ext4 defaults 0 2
注意点として、各項目の間には必ず「半角スペース」か「タブ」を入れてください。全角スペースが入ってしまうと、システムが読み込めずエラーになってしまいます。
7. 設定を反映させるためのマウントテスト
/etc/fstabを書き換えた後、いきなりパソコンを再起動するのは危険です。もし記述に間違いがあると、Linuxが起動途中で止まってしまう「起動不可」の状態になる可能性があるからです。そこで、再起動する前にmount(マウント)コマンドの「-a」オプションを使って、設定にミスがないか確認します。
mount -a
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5.0G 14G 27% /
/dev/sdb1 100G 60M 95G 1% /mnt/backup
「mount -a」コマンドは、/etc/fstabに書かれている内容に従って、まだマウントされていないデバイスをすべてマウントする命令です。このコマンドを実行してエラーが表示されなければ、設定は成功です!df(ディーエフ)コマンドで、正しくマウントポイント(/mnt/backupなど)が表示されているか確認してください。
8. マウントオプション「defaults」の意味
設定の第4フィールドに書いた「defaults(ディフォルト)」という言葉。これは、Linuxが推奨する標準的な設定を一括で適用するための便利なキーワードです。具体的には、以下の設定が含まれています。
- rw:読み書き両方を許可する(Read-Write)
- suid:SetUIDビットを有効にする
- dev:デバイスファイルを解釈する
- exec:バイナリファイルの実行を許可する
- auto:mount -a コマンドなどで自動マウントする
- nouser:一般ユーザーによるマウントを禁止する
- async:データの書き込みを非同期で行う(高速化のため)
読み取り専用にしたい場合は「ro(Read-Only)」を指定したり、USBメモリなど接続されていない可能性があるデバイスには「nofail(ノーフェイル)」というオプションを追加したりすることもあります。nofail(ノーフェイル)を付けておくと、もしデバイスが見つからなくても、エラーで起動が止まるのを防いでくれます。
9. 初心者がハマりやすい注意点とトラブル対策
/etc/fstabの編集で最も多いトラブルは「タイポ(打ち間違い)」です。UUIDの1文字が違っていたり、マウントポイントとして指定したフォルダ(ディレクトリ)が実は存在しなかったりすると、OSは起動時にパニックを起こしてしまいます。
万が一、再起動したときに「Emergency Mode(エマージェンシーモード)」という黒い画面になってしまったら、落ち着いてrootパスワードを入力してログインしましょう。そして、先ほど作成したバックアップファイルを使って、元の状態に戻す作業を行います。
cp /etc/fstab.bak /etc/fstab
reboot
このように、バックアップさえあれば元の状態に復旧できます。Linuxのシステム管理において「設定ファイルをいじる前には必ずコピーを取る」というのは、初心者からプロまで共通の鉄則です。これを守るだけで、故障のリスクを大幅に減らすことができますよ。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxシステムを効率的に運用する上で、ストレージの自動管理は避けて通れない重要なテーマです。今回の記事では、ストレージ管理の中核を担う/etc/fstab(エトセ・エフスタブ)の役割から、具体的な設定方法、そして安全な運用のための注意点までを詳しく解説しました。Linux(リナックス)におけるマウントの概念は、Windowsのドライブレター方式とは異なり、ディレクトリ構造の中にデバイスを組み込むという独特の仕組みを持っています。この仕組みを理解し、/etc/fstabを正しく記述することで、再起動のたびに手動でmount(マウント)コマンドを打ち込む手間から解放されます。
自動マウント設定の重要ポイント
設定において最も重要なのは、デバイスの指定にUUID(Universally Unique Identifier)を使用することです。従来の「/dev/sda1」といったデバイスファイル名による指定では、HDDの増設やUSBデバイスの接続順序によって名前が変動してしまうリスクがありますが、UUID(ユーユーアイディー)を使えば、各ストレージ装置を確実に識別できます。また、ファイルシステム形式(ext4、xfs、ntfsなど)の正しい選択や、マウントオプション(defaults、nofail、roなど)の適切な設定が、システムの安定稼働に直結します。
安全な運用のためのワークフロー
サーバー管理やインフラ構築の現場でも徹底されているのが、「編集前のバックアップ」と「再起動前のテスト」です。以下のコマンドフローは、Linuxエンジニアにとっての基本動作と言えます。
# 1. 現在の設定をバックアップ
sudo cp /etc/fstab /etc/fstab.old
# 2. ブロックデバイスのUUIDを確認
sudo blkid
# 3. 編集後の設定チェック(エラーが出なければOK)
sudo mount -a
特に、mount -aコマンドによるチェックを怠ると、記述ミスがあった場合にシステムが起動しなくなる「ブート失敗」を招く恐れがあります。万が一、起動エラーが発生した際も、バックアップファイルから復元する手順を知っていれば冷静に対処可能です。マウントオプションに「nofail(ノーフェイル)」を組み込むことで、外付けデバイスが未接続の状態でもOS自体の起動を妨げないようにするテクニックも非常に有効です。
さらに理解を深めるための応用知識
/etc/fstabは、単にローカルのHDDをマウントするだけではありません。ネットワーク越しにファイルを共有するNFS(Network File System)や、クラウド環境でのオブジェクトストレージのマウントにも応用されます。また、ファイルシステムの整合性をチェックするfsck(エフエスシーケー)の実行順序を制御するフィールド(第6フィールド)の役割を理解することで、大規模なストレージ構成時の起動時間を最適化することも可能になります。
生徒
「先生、ありがとうございました!/etc/fstabの仕組みがよく分かりました。最初は何だか暗号みたいに見えて怖かったですけど、6つの項目の意味を一つずつ紐解けば、意外とシンプルなんですね。」
先生
「そう言ってもらえると嬉しいです。特に第1フィールドのUUIDと、第2フィールドのマウントポイントの対応関係さえしっかり押さえておけば、Linuxのストレージ管理はぐっと楽になりますよ。」
生徒
「はい!さっそく自分の環境でも試してみました。blkidコマンドでUUIDを調べて、新しいHDDをマウントポイントに登録したんです。でも、最初はマウントポイントのディレクトリを作るのを忘れていてエラーになっちゃいました。」
先生
「それは良い経験をしましたね。マウント先のディレクトリ、つまり『器』が先に存在していないとLinuxはどこに接続していいか分からなくなりますからね。mkdirコマンドでのディレクトリ作成は必須作業です。」
生徒
「あと、先生が教えてくれた『mount -a』のテスト、本当に助かりました。実は一度、半角スペースを入れるべき場所に全角スペースを入れてしまっていたんです。テストのおかげで、再起動する前に気づいて修正できました!」
先生
「素晴らしい!まさにそれがプロの仕事の進め方です。全角スペースはLinuxの設定ファイルにとって最大の敵ですからね。もしそのまま再起動していたら、エマージェンシーモードの黒い画面と格闘することになっていたかもしれません。」
生徒
「そう思うとゾッとします……。バックアップを必ず取るという習慣も、忘れずに続けていこうと思います。これで、Linuxをもっと便利に使いこなせそうな気がしてきました!」
先生
「その調子です。自動マウントができるようになると、バックアップサーバーの構築や大容量データの管理など、できることの幅がどんどん広がりますよ。次は、マウントオプションをさらに細かく調整して、セキュリティやパフォーマンスを高める方法にも挑戦してみましょう。」