LinuxでUSB-HDDを使っている場合、いつも決まったディレクトリに中身をマウントしてやりたい事がある。そういう場合は、/etc/fstabをUUID指定で設定し、それにudevの設定を組み合わせれば、USB-HDDの接続時に自動的に所定のディレクトリにマウントすることができる。
UUIDの調査
まずはUUIDを調べる。
UUIDの調べ方にはいくつか方法があるが、以下のエントリによるとlsコマンドを使うのが最も簡単なようだ。
[Linux]HDDのuuidを調べる。vol_idよりblkid、blkidより「 ls -l /dev/disk/by-uuid/」が良さげ
ls -l /dev/disk/by-uuid/
結果は以下のようになる。この場合はUUIDが569785b6-7c3b-4bf0-b6ae-ce8a746c0a38のパーティションが/dev/sda1となっている。
lrwxrwxrwx 1 root root 10 Jun 16 20:50 569785b6-7c3b-4bf0-b6ae-ce8a746c0a38 -> ../../sda1
fstabの設定
続いて、USB-HDDをマウントする設定をする。
/etc/fstabに先ほど調べたUUIDのパーティションが、適当なディレクトリにマウントされるようにする。
UUID=569785b6-7c3b-4bf0-b6ae-ce8a746c0a38 /mnt ext3 rw,noauto 0 0
udevからmountコマンドを実行させてマウントするので、noautoを指定している。
udevの設定
最後に、udevでUSB-HDDの接続時に自動的にmountコマンドを実行する設定をする。
udevは/etc/udev/rules.d以下の設定を読み込むので、ここに適当な名前でルールを設定しておく。(例えば/etc/udev/rules.d/80-usbhdd.rulesとする)
設定内容は以下。UUID部分は自分のUSB-HDDのものに読み替える。
ACTION=="add", ENV{DEVTYPE}=="partition", ENV{ID_FS_UUID}=="569785b6-7c3b-4bf0-b6ae-ce8a746c0a38" RUN+="/bin/mount -U $env{ID_FS_UUID}"
上記のルールはID_FS_UUIDで指定したUUIDのパーティションが認識された際に、mount -Uコマンドを自動的に実行してHDDをマウントするものだ。
以上で設定は完了。再起動するなりして、自動的にUSB-HDDがマウントされるか確認しよう。