🔗

AutofsでNASを自動マウントする

に公開

AutofsでNASを自動マウントする

VPN接続時のみ利用するNASをマウントする必要があったため、autofsで設定をしてみました。

対象環境・構成

対象OS

  • Manjaro Linux(Arch Linux系)
  • WSL2 + ArchLinux

前提条件

  • SMB/CIFSプロトコルを使用するNAS
  • ユーザー権限でパッケージインストール可能
  • systemdが動作する環境

利用場面とメリット

NASへの接続を手動で行うのは面倒で、常時マウントしたままではリソースやセキュリティの問題があります。
autofsを使うことで、以下のような場面で効率的なファイルアクセスが可能になります。

  • VPN経由での業務用NAS: 在宅勤務時に必要なときだけ接続
  • 家庭用NAS: 写真・動画などの大容量データ管理
  • バックアップストレージ: 定期的にのみアクセスするデータ保管

メリット

  • アクセス時に自動マウント、未使用時に自動アンマウント
  • システムリソースの効率的な使用
  • 接続管理の手間を削減

設定手順

1. パッケージインストール

# CIFS(SMB)接続用ツール
sudo pacman -S cifs-utils

# 自動マウント用サービス(AURから)
yay -S autofs

2. 認証情報設定

mkdir -p ~/.smb
touch ~/.smb/credentials
chmod 600 ~/.smb/credentials
vi ~/.smb/credentials
# ~/.smb/credentials
username=ユーザー名
password=パスワード
domain=ドメイン名(Active Directory環境の場合)

3. autofs設定

マスター設定

sudo tee /etc/autofs/auto.master << 'EOF'
/home/ユーザー名/nas file:/etc/autofs/auto.nas --timeout=300 --browse
EOF

マウント設定

sudo tee /etc/autofs/auto.nas << 'EOF'
photos -fstype=cifs,credentials=/home/ユーザー名/.smb/credentials,iocharset=utf8,vers=3.0,uid=1000,gid=1000 ://192.168.1.100/photos
shared -fstype=cifs,credentials=/home/ユーザー名/.smb/credentials,iocharset=utf8,vers=3.0,uid=1000,gid=1000 ://192.168.1.200/shared
EOF

日本語ディレクトリを作成したい場合は"日本語"のようにダブルクオートで囲ってください。
ただし、日本語表記はトラブルになりがちなので、できる限り英数字を使用してください。

4. (任意)警告抑制

未使用の環境変数に関する警告がジャーナルに出力されるため、以下設定を行えば警告は出なくなります。
動作に影響はないため、必要に応じて設定してください。

sudo mkdir -p /etc/systemd/system/autofs.service.d
sudo tee /etc/systemd/system/autofs.service.d/override.conf << 'EOF'
[Service]
Environment="OPTIONS="
EOF

5. サービス起動

sudo systemctl daemon-reload
sudo systemctl enable --now autofs

設定パラメータ

パラメータ 説明 変更例
--timeout=300 5分間未使用でアンマウント --timeout=600(10分)
--browse マウント前でもディレクトリ表示 削除すると非表示
iocharset=utf8 日本語ファイル名対応 iocharset=cp932(古い環境)
vers=3.0 SMBプロトコルバージョン vers=2.1(古いNAS)
uid=1000,gid=1000 ファイル所有者設定 idコマンドで確認

動作確認

# ディレクトリ確認
ls /home/ユーザー名/nas

# アクセステスト
cd /home/ユーザー名/nas/photos

# マウント状況確認
mount | grep cifs

# サービス状態確認
sudo systemctl status autofs

トラブルシューティング

設定変更時

sudo systemctl restart autofs

ログ確認

# autofsログ
sudo journalctl -u autofs -f

# CIFSマウントエラー
sudo journalctl | grep -i cifs

手動マウントテスト

sudo mkdir -p /mnt/test
sudo mount -t cifs //192.168.1.100/photos /mnt/test -o credentials=/home/ユーザー名/.smb/credentials,iocharset=utf8,vers=3.0
sudo umount /mnt/test

まとめ

これで必要なときだけNASをマウントすることができました。

今回はVPN接続時のみという前提があったため、VPN未接続時もマウントしようとする挙動が制御できてよかったです。

Discussion