HDD が認識される順番

この前, dist-upgrade したときから, それまで /dev/sda と認識されていた HDD が /dev/sdb として認識されるようになった.

この件については, grub の menu.lst を /dev/sda -> /dev/sdb することで様子見していたが, mount コマンドを実行すると, /dev/sda1 が / にマウントされている. しかし実際これは /dev/sdb1 であった. こういう不可解な現象を放っておくと後で痛い目を見る確率が高い. よって詳しくみてみることにした.

私の PC には, SATA と PATA のそれぞれ一台ずつ HDD が搭載されている.
SATA がいつも使っているもので Linux はここにインストールされいる. PATA はデータ用である.

まず, BIOS はどういう順番で返しているのかというと, grub shell で find /boot/vml で補完すると (hd0,0) とかえってくるので,

hd0 SATA
hd1 PATA

であることが分かる.

次に Linux ではどうかというと, dmesg を見てみると, sda は PATA, sdb は SATA になっている.

menu.lst の修正の仕方は間違っていなかったということになる.
mount コマンドでの表示がまずかったのは, grub の device.map が,

(hd0) /dev/hda
(hd1) /dev/hdb

となっていたためであった.

(hd0) /dev/hdb
(hd1) /dev/hda

とすれば正常な表示になる.

最後に, resume デバイスがない云々のエラーは, /etc/initramfs-tools/conf.d/resume の中身を修正して, linux-image のパッケージを dpkg-reconfigure すれば直った. しかし, menu.lst はあいかわらず, /dev/sda で出力するしてくれるので, grub が menu.lst を更新する度に修正をしなければならない. この件についてはまた後日.