サーバマシンに複数台の外付けUSB-HDDをつないでマウントしているのですが、以前ここでラベル付けしてマウントするようにしていたのに、面倒臭がっていつの間にか/etc/fstabにLABELとUUIDと/dev/***が入り混じってしまい、稀に再起動するたびにマウントポイントがめちゃくちゃになって都度マウントし直す・・・というまったく非効率極まりない状況になってました。
それでも再起動は滅多にしないし(仮にもサーバですから・・・)、まぁいいかと思っていたのですが、たまたまカーネルアップデートで再起動しなければならず、ここで一念発起です(笑)
さて、外付けUSB-HDDを管理するにあたって、方法は二つあります。
一つはe2labelコマンドを使って、ディスク(というか、正確にはパーティションかな?)にボリュームラベルをつけてそれでマウントポイントとの関連付けを行う方法。
もう一つは、UUIDを使って行う方法。
どちらがいいのか悩んだのですが、こちらによればUUIDとは「ファイルシステムを新規作成した際に作られる」もので、「初期化するとUUIDは変化」するそう。
なるほど、だからインストール時に作成されるパーティションはUUIDでマウントされるのか!納得!(笑)
せっかくなので現在接続されている全てのハードディスク(のパーティション)のUUIDを調べてみました。やり方は複数あるようですが、一番簡単そうな(?)blkidコマンドを使って確認してみることに。その結果・・・。
# blkid /dev/sda1
/dev/sda1: UUID=”7e28216d-6c81-4ea8-a260-2e4f6eb50a66″ TYPE=”ext4″
こんな風に表示されます。これを接続しているハードディスク(のパーティション)全てに繰り返します。
で、結果はこうなりました。
/dev/sda1: UUID=”7e28216d-6c81-4ea8-a260-2e4f6eb50a66″ TYPE=”ext4″
/dev/sda2: UUID=”c04a3130-62f7-4a2d-a2ab-007e8b3a5e18″ TYPE=”swap”
/dev/sda3: UUID=”b5f76ed8-db3f-4333-9ec2-8a66dc40a50a” TYPE=”ext4″
/dev/sdb1: UUID=”836d0365-d1c3-4780-a432-5b2e72afb885″ TYPE=”ext4″
/dev/sdc1: UUID=”a887deee-6f63-4985-8811-759e8bfe12a5″ TYPE=”ext4″
/dev/sdd1: UUID=”33818122-4a00-4f57-80c9-d6bc5384c291″ TYPE=”ext4″ LABEL=”test-label”
/dev/sdd1だけボリュームラベルが付いてますね(笑)
こうやってみると、やっぱりUUIDよりもラベルをつけたほうがわかりやすそうです。
せいぜい3つ程度の外付けディスクですから、よもやボリュームラベルが被ってしまう心配はありますまい。それよりなにより、UUIDはユニークにIDをふってくれますが、意味のない文字列なのでこれだけ見てもどこに何が入っているのかわからないですし。
ちなみにパーティションが一つしかないものが外付けUSB-HDD。パーティションが区切られているのはインストール時にパーティション分けしたシステムディスクだからですね。
というわけで、それぞれのハードディスクにe2labelコマンドを使ってボリュームラベルをつけ、それに従って/etc/fstabを記述することにしましょう。
# e2label /dev/sdb1 hoge
# e2label /dev/sdb1
hoge
引数なしでボリュームラベルの確認ができます。これを必要なディスク(パーティション)に対して全て行い、これをもとに/etc/fstabに記述します。
# vi /etc/fstab
LABEL=hoge /hogehoge ext4 user,rw 0 0
とりあえず、それぞれのマウントポイントで一般ユーザによる読み書きをしなければなりませんので、rwオプションをつけています。
これまた同様に全てのパーティションに対して同様の手順を行い、最後にサーバを再起動させて適切にマウントされるかどうかを確認します。
はい、これでオーケー。
同じようなことを過去に何度か繰り返してるんですが、頻繁にやることじゃないからつい手順とか忘れちゃうんですよね〜。
そしてこれでまたサーバのディスク管理をする必要がなくなって(少なくとも新しい外付けディスクを買ったり、付け替えたりしない限り)、きっとまた忘れちゃうんだろうな・・・(^_^;;