HDDを繋ぎかえたとき

うちの学校はPCが少ないので、生徒たちはPCを共有しています。
HDDはグループごとにあたえられ、それを授業のたびに抜いたりさしたりしています。


ということは、毎回毎回ルートファイルシステムの位置が変わるってことです。(/dev/hda1だったのが/dev/hdc1になったり。
で、毎回毎回「起動しないよ〜」ということになります。


解決策は、GRUBで直接ルートファイルシステムの位置を指定して起動、でしょうか。
イワタニエレクトロニクスさんの「GRUBをインタラクティブに使う」を見ると、rootコマンドの補完機能を使えば、どこにルートファイルシステムカーネルイメージがあるパーティション)があるのか予測できるようです。


シェルからGRUBを使ってみると、

grub> root (hd0,
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x82
Partition num: 1, Filesystem type is ext2fs, partition type 0x83
Partition num: 2, Filesystem type is ext2fs, partition type 0x83

1行目はswap。1か2ですね。
で、カーネルイメージを探します。

grub> root (hd0,1)
Filesystem type is ext2fs, partition type 0x83

grub> kernel /
Possible files are: lost+found sayo el3c

1にはないようです。(/home用のパーティションです
2を試してみます。

grub> root (hd0,2)
Filesystem type is ext2fs, partition type 0x83

grub> kernel /
Possible files are: lost+found var home etc media cdrom bin boot dev initrd lib mnt opt proc root sbin srv sys tmp usr initrd.img vmlinuz initrd.img.old vmlinuz.old qemu-0.8.2-i386.tar.gz

今度はありました。「vmlinuz」です。
ということで、カーネルイメージはhd0の2にあります。


hd0ってどこよ?というのは、/boot/grub/device.mapにあります。

$ cat /boot/grub/device.map
(hd0) /dev/hda

ブートできなきゃこれも読めないわけですが、普通はhd0=hda、hd1=hdb...となるようです。
以上から、hd0=hda、2=3番目のパーティション(0から数えるので)ということで、/dev/hda3がルートファイルシステムです。


起動するには

grub> kernel /vmlinuz root=/dev/hda3
grub> boot

を実行します。



このエントリがお役に立ちましたらクリックお願いします!→[人気blogランキング]