電源を入れるとgrub shellが立ち上がってカーネルの選択画面が出ない時の対処法

パソコンを起動させるとこのような画面になって勝手に立ち上がってくれなくなりました

    GNU GRUB  version 0.97  (639K lower / 1047488K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible

grub> _

なので今回はここに書いてある
http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=1&chap=10

コード表示 2.8: GRUBをMBRにインストールする
grub> root (hd0,0)          (/bootパーティションの場所を指定します)
grub> setup (hd0)           (MBRにGRUBをインストールします)
grub> quit                  (GRUBシェルを終了します)

これを各自の環境にあわせて実行するだけです
/bootパーティションの場所がわからない場合は
/boot/grub/grub.confもしくは/boot/grub/menu.lstのようなディレクトリ構造をしているはずなので

grub> find /grub/grub.conf
grub> find /boot/grub/grub.conf
grub> find /gurb/menu.lst
grub> find /boot/gurb/menu.lst

こんな感じに手当たり次第探していきます
すると私の環境ですと

grub> find /grub/grub.conf
 (hd0,0)

このように(hd0,0)に/bootのパーティションがあることがわかります
なので私の場合は

grub> root (hd0,0)
grub> setup (hd0)
grub> reboot

とあまり変わりませんがこれを実行してgrubの再インストールをして修復しました
しかし…なんでgrubが壊れたんだろう
考えられる原因としてはフリーズしたから電源を落としたぐらいかな

余談:手動でカーネルを起動する方法

この方法をするにはある程度システムの構成をわかっていないとできないと思いますが
grub shellが立ち上がっている状態で

grub> find /grub/grub.conf

又は

grub> find /boot/grub/grub.conf

などでgrubの設定ファイルがあるデバイスを調べる
場合によってはgrub.confではなくmenu.lstかもしれません
すると私の環境だと

grub> find /grub/grub.conf
 (hd0,0)

このように(hd0,0)にあることが判明するので

grub> cat (hd0,0)/grub/grub.conf

こうやってすでに書いてある設定を参考にして
私の環境の場合ですと

grub> root (hd0,0)
grub> kernel /linux-3.3.8-gentoo root=dev/sda3 video=uvesafb:1280x1024-32,mtrr:3,ywrap
grub> boot

このように起動するか

grub.confの場所がわかったのでカーネルの場所も(hd0,0)だなと予測することができます
次にルートディレクトリはどのデバイスなのかを調べます

grub> find /fstab

又は

grub> find /etc/fstab

などでfstabのあるデバイスを調べます
すると私の環境では

grub> find /etc/fstab
 (hd0,2)

するとfstabが(hd0,2)にあることがわかるので

grub> cat (hd0,2)/etc/fstab

をするとずらずらと出力されますがその中から

/dev/sda3       /       ext3        noatime     0 1

のような2番目が/の行を探してください
すると1番目が/dev/sda3になっているのでこれがルートディレクトリのデバイスになります
ここまで手に入れた情報を整理すると
(hd0,0)にカーネルがあって
/dev/sda3にルートディレクトリがあることがわかりました
後はkernelのところはTABの補完を駆使して埋めていきます

grub> root (hd0,0)
grub> kernel /linux-3.3.8-gentoo root=/dev/sda3
grub> boot

するとこのようにすれば起動できるはずです

余談:もし間違えて最初から入っていたsplash.xpm.gzを消してしまったら

前提としてosはgentooとします
他のosでは試してないのでわかりませんがきっとgrubを入れるときに一緒に導入されているのでそこを調べれば入手できます
gentooの場合はgrubをインストールすると

/usr/share/grub/splash.xpm.gz

に配置されるみたいなので

# cp /usr/share/grub/splash.xpm.gz /boot/

をするだけで簡単に戻せます