WindowsとCentOSのデュアルブートのPCで、Windowsで使っていた拡張パーティション内のあるパーティションを削除したら、Linuxが起動しなくなった。
GRUBが起動すると、bootパーティションも読めないのか、GRUBのプロンプトになってしまう。
KnoppixでCDから起動すると、ちゃんとパーティションがマウントできて、内容も読めるので、ハードディスクが壊れているわけではない。
とりあえず、CentOSのインストールCDから起動し、GRUBのみ再インストールしてみた。すると、grub.confは読み込めるようになったようで、OS選択は可能になった。
しかし、Linuxを選択して起動しようとすると、「ファイルが見つからない」のようなメッセージで、起動できない。ためしに、Windowsを選択すると起動できる。
パーティション削除しただけで、こんなことになるのぉ?
いったいどういうことだぁ!
って心の中で叫んだところで、思い当たった。パーティション削除したことで、パーティションの番号が変わった?
試しに、grub.confに書いてある、
root (hd0,2)
を
root (hd0,1)
に修正して、起動してみた。
するとどうだろう。何もなかったように起動するではないか。
パーティション0 ... Windows
パーティション1 ... /boot
パーティション2 ... /
パーティション3 ... Windowsの拡張パーティション
と思っていたのだが、違っていたってことか。
拡張パーティション内をどう削除しようが、0~2には影響ない気がするのだが。。。
そもそも、このパーティション構成なら、
root (hd0,1)
で正解だから、grub.confに書いてあることが間違えだ。
ただ、このgrub.confが元々こうだったのか、GRUBを再インストールして書き換えられたのか、定かではない。
でも、GRUBを再インストールしたことで、grub.confが読み込めるようになったのだから、MBRに書き込まれたGRUBは、ただしくパーティション1を認識したってことで、やっぱり、grub.confは何も書き換えられることなく、NTFSパーティション削除によって、パーティション番号が変わったってのが、たぶん正解なんだろうなぁ。