Linux サーバで,ブロードバンドルータに接続されているディスクを autofs でマウントしたい。ネットワーク経由でアクセスできたが,そこからがどうもおかしい。なんぞコレ。
Linux サーバのデータを定期的にバックアップしたい。自宅にはブロードバンドルータに接続されているハードディスクが NAS として動作しているので,これを使いたい。必要なときだけアクセスできればいいので,autofs を使う。NAS は Windows でのアクセスが前提となっている仕様なので,Linux からは Samba クライアントを使ってアクセスする。
サーバの OS は VineLinux 4.2 で文字コードは EUC-JP だが日本語名ファイルの文字コードは Shift_JIS,Samba 3.0.23d,NAS 用のブロードバンドルータは corega CG-WLR300NNH (nlog(n): CG-WLR300NNH を購入したがレビュー)。NAS のディスクのファイルシステムは FAT32 である (nlog(n): 1.5 TB ハードディスクの FAT32 フォーマット) である。
Linux サーバに autofs と smbclient がインストールされているか確認する (autofsを使ってsambaを自動マウント | ブーログ)。Vine Linux 4.2 では,smbclient は samba-common パッケージに入っている。
/etc/auto.master に次の行を追加する。/mnt/nas には /etc/auto.smb を使ってアクセスするという意味である。
/etc/auto.master を編集したら autofs を再起動する。
/etc/auto.smb はスクリプトになっている。オプションを設定する箇所があるので次のように書いておく (smbfs autofs: OS tips)。ファイルシステムが FAT32 なので "-fstype=vfat",その文字コードは Shift_JIS なので "codepage=932"となる (smbmount)。Linux サーバの文字コードは EUC-JP だが,Linux で作るファイル名は全て半角英数字で,日本語ファイル名のものは Windows で作ったファイルだけなので "iocharset=Shift_JIS" を指定している (nlog(n): Samba 3 が文字化けする)。
ブロードバンドルータの自宅内 IP アドレスは 192.168.0.99 を割り当ててある。したがって,autofs でのアクセスでは /mnt/nas/192.168.0.99 となる (もちろん 192.168.0.99 を名前解決してもよい)。
よーし,やった。
しかし,これはぬか喜びだった。
public ディレクトリは1階層しかないはず。なんぞコレwwwwww。
2012年2月22日追記:
次のように設定することで解決しました。auto.smb の代わりに auto.misc を使いました。
/etc/auto.master の記述:
/etc/auto.misc の記述:
Master Archive Index
Total Entry Count: 1957