ディスク構成を変更したら起動しなくなる

我家のNASに外付けハードディスクを追加したら起動時のルートファイルシステムを読み込む所で止まるようになってしまった。
起動時に止まったところでufs:/dev/ada1p2と入れると普通に起動する。
ちなみに/etc/fstabのデバイス指定は/dev/ada0p2
だからといって、/etc/fstabの方を/dev/ada1p2に書き換えると今度は外付けディスクの外した時にまた起動しない。

つまり、/etc/fstabにルートファイルシステムはディスク0のパーティション2だと書いてるのに外付けハードディスクをつないだ時だけ外付けハードディスクがディスク0になってFreeBSDの起動ドライブがディスク1になってしまうのでFreeBSDが起動しないわけだ。
ディスク構成が変わらないようにマザーボードのBIOSで制御するという手もあるのだが、出来無いマザーボードもある。
根本的に/etc/fstabにデバイスを構成をそのまま書いているので何かあるとすぐにお手上げになるのが問題だ。

そこで、ディスクパーティションにラベルを付けてラベル名指定でディスクをマウントする。

先ず、シングルユーザーモードで起動する。

コマンド: glabel label 付けたい名前 デバイス

今回はディスクのルートファイルシステムと/usr/homeのパーティションにラベルを付けたいので以下の様にコマンドを入力する。

# glabel label rootfs /dev/ada1p2
# glabel label userhomes /dev/ada1p3

/etc/fstabは以下のようにする。

1
2
3
4
/dev/label/rootfs       /           ufs     rw    1       1
/dev/label/userhomes    /usr/home   ufs     rw    2       2
  ・
  ・

これでディスク構成が変わっても問題なし。