Roads to Linux - autofsのインストール
今回Linuxサーバに4連装CD-ROMドライブを接続しましたが、これをどう扱ったらいいものでしょうか。Slackware付属のrc.cdromは1ドライブしか対象にしていませんから、これはいずれにせよもう使えません。rc.cdromを修正して4ドライブ分サーチするものを作るのでしょうか。それとも最初からfstabに4ドライブ分書き込んでしまいましょうか。はたまた毎回手で/cdromにmountしましょうか。...せっかくの連装ドライブなのに、それでは悲しすぎます。
幸いな事に、Linuxにはカーネルオートマウンタという機能があります(まだexperimentalですが)。ドライブにアクセスがあった時点でカーネルが自動的にそのドライブをマウントしてくれて、しばらく使用されなかったドライブは自動的にアンマウントしてくれるという優れものです。これなら連装ドライブもかなり気軽に使えると思われますので、インストールしてみる事にします。
■カーネルの再構築
カーネルオートマウンタを使用するためには、まずカーネルがその状態になっている事が必要です。make configを行い、以下をYに設定します。
Kernel automounter support (experimental) (CONFIG_AUTOFS_FS)
あとはいつものようにカーネルの再コンパイルと再起動を行います。
■autofsのインストール
カーネルオートマウンタはまだexperimentalな機能であるためか、昔のIPマスカレードと同じく、肝心のパッケージは別配布になっています。autofs-3.1.1.tar.gzを入手し、展開、コンパイルとインストールを行います。
tar zxvf autofs-3.1.1.tar.gz
cd autofs-3.1.1
configure
make
make install
■autofsの設定
まず、/etc/rc.d/rc.Mのうち、rc.cdromを起動している部分をコメントアウトします。
で、あとはUNIX USER 1998.1号の真鍋さんの記事にしたがって、/etc/autofs.shと/etc/rc.d/init.d/autofsを作成します。...ってこれでは何がなんだかわからない方も多いかと思いますが、そのスクリプトが再配布可能かどうかがわからないので。
2つのスクリプトには若干の修正を行いました。まずうちの環境はRedHatではないので、/etc/rc.d/init.d/autofsの
. /etc/rc.d/init.d/functions
はコメントアウトしました。またbaseも/tmp/automntにしました(これは双方のスクリプトともに)。/tmp/automntはこの後自前で作成しておきます。
/etc/rc.d/init.d/autofsは当然実行可能にしておき(私は700にしました)、rc.localで以下のようにして起動するようにしました。
#
# start automount daemon
#
if [ -f /etc/rc.d/init.d/autofs ]; then
echo "Running autofs...";
/etc/rc.d/init.d/autofs start;
fi
また、/etc/autofs.shも実行可能にしておく必要があります(私はとりあえず755としました)。私は、.shがついているのでいらないだろう(sh /etc/autofs.shとされるだろう)と思い込んだため、これでしばらく悩みました。
で、再起動するなり/etc/rc.d/init.d/autofsを直接実行するなりしてオートマウントデーモンを起動します。
/tmp/automntをlsしても何も見えませんが、試しに
cd /tmp/automnt/cd0
とすると、一つ目のCDがマウントされ、きちんと見えるようになりました。ディレクトリを離れ、5分ほどほうっておくと、自動的にアンマウントされる(ls /tmp/automntしても何も見えなくなる)のが確認できます。
さて、これでとりあえず使えるようになりましたが、これではWindows 95マシンからLinuxサーバのCDを参照する事ができません。そのため、/tmp/automnt/cd0〜cd3までを一度片っ端からマウントし、/miscを作成してここにシンボリックリンクをはる事で、Windows 95マシンからもオートマウントの恩恵に預かる事ができるようになりました。