手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 autofs の基本 – 必要な時だけファイルシステムを自動マウントする

関連する記事

autofs は、ファイルシステムを起動時に常時マウントするのではなく、対象パスへアクセスされた時に自動マウントする仕組みです。Ubuntu 26.04 で利用頻度の低いローカルディスクや、必要な時だけ参照したい領域を扱う場合に使えます。

この記事では、ローカルファイルシステムを例に、autofs の導入、/etc/auto.master.d/local.autofs/etc/auto.local、サービス管理、アクセス時のマウント確認、fstab との使い分けを扱います。

autofs を使う場面

  • 普段は使わない領域を、必要な時だけマウントしたい場合。
  • 起動時にすべてのマウントを完了させる必要がない場合。
  • 複数のマウントポイントを map ファイルでまとめて管理したい場合。
  • fstab の固定マウントではなく、アクセス時マウントで十分な場合。

前提条件

  • 対象デバイスにファイルシステムが作成済みであること。
  • UUID、ファイルシステム種別、マウントポイントを決めていること。
  • 起動直後に必ず必要な領域ではないこと。
  • 既存の autofs 設定とマウントポイントが重複していないこと。
lsblk -f
sudo blkid
findmnt

autofs をインストールする

Ubuntu 26.04 では autofs パッケージを導入し、autofs.service で自動マウントを管理します。

sudo apt update
sudo apt install -y autofs

master 設定用ディレクトリを作成する

/etc/auto.master.d に個別の master 設定を置くと、ローカル用、リモート用など用途ごとに autofs 設定を分けられます。

sudo mkdir -p /etc/auto.master.d
sudo chmod 0755 /etc/auto.master.d

master 設定を作成する

直接マップ形式を使い、/etc/auto.local をローカルファイルシステム用の map ファイルとして読み込ませます。

sudo tee /etc/auto.master.d/local.autofs >/dev/null <<'EOF'
/- /etc/auto.local
EOF
sudo chmod 0644 /etc/auto.master.d/local.autofs

map ファイルを作成する

map ファイルには、マウントポイント、オプション、マウント元を 1 行で書きます。以下は UUID を使って ext4 のローカルファイルシステムを /srv/data/app に必要時マウントする例です。

UUID=$(sudo blkid -s UUID -o value /dev/sdb)
sudo tee /etc/auto.local >/dev/null <<EOF
/srv/data/app -fstype=ext4,rw UUID=$UUID
EOF
sudo chmod 0644 /etc/auto.local

autofs サービスを起動する

設定を作成したら autofs.service を起動し、再起動後も有効になるようにします。

sudo systemctl restart autofs.service
sudo systemctl enable autofs.service
systemctl status autofs.service --no-pager

アクセス時にマウントされることを確認する

autofs は、設定直後に必ずマウント済みになるとは限りません。対象パスへアクセスした時にマウントされることを確認します。

findmnt /srv/data/app || true
ls /srv/data/app
findmnt /srv/data/app
findmnt -no SOURCE,FSTYPE,OPTIONS /srv/data/app

自動アンマウントを確認する

一定時間使われていないマウントは autofs により解除されます。解除タイミングは設定や利用状況に依存します。

findmnt /srv/data/app
sleep 60
findmnt /srv/data/app || true

複数のマウントを登録する

複数のローカルファイルシステムを管理する場合は、map ファイルに行を追加します。マウントポイント、オプション、マウント元の組み合わせを明確にします。

APP_UUID=$(sudo blkid -s UUID -o value /dev/sdb)
ARCHIVE_UUID=$(sudo blkid -s UUID -o value /dev/sdc)
sudo tee /etc/auto.local >/dev/null <<EOF
/srv/data/app -fstype=ext4,rw UUID=$APP_UUID
/srv/data/archive -fstype=xfs,rw UUID=$ARCHIVE_UUID
EOF
sudo systemctl restart autofs.service

fstab と autofs の使い分け

  • fstab は、起動後に常に必要なローカルファイルシステムに向いています。
  • autofs は、アクセス時だけ必要なファイルシステムに向いています。
  • アプリケーションが起動直後から必ず必要とする領域は、autofs だけでなくサービス依存関係も確認します。
  • マウント失敗時に空ディレクトリへ書かれないよう、アプリケーション側の挙動も確認します。

トラブル時に見る項目

  • systemctl status autofs.service でサービス状態を確認すること。
  • journalctl -u autofs.service で map 読み込みやマウント失敗を確認すること。
  • automount -m で autofs が認識している map を確認すること。
  • UUID とファイルシステム種別が実デバイスと一致していること。
  • マウントポイントが他の fstab や autofs 設定と重複していないこと。
systemctl status autofs.service --no-pager
journalctl -u autofs.service -b --no-pager
sudo automount -m
sudo blkid
findmnt

まとめ

Ubuntu 26.04 の autofs は、ファイルシステムを必要な時だけ自動マウントするための仕組みです。ローカルディスクでは UUID とファイルシステム種別を確認し、/etc/auto.master.d と map ファイルを分けて管理すると、固定マウントと使い分けやすくなります。起動直後から必要な領域は fstab、アクセス時だけ必要な領域は autofs を検討します。

関連する記事
Ubuntu 26.04 autofs の基本 – 必要な時だけファイルシステムを自動マウントする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る