🔗
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