ほんじゃらねっと

ダイエット中プログラマのブログ

wubiでインストールしたubuntuがアップデート後に起動しなくなった時の解決方法

色々パターンがあるみたいけど、今回僕がハマったパターンは、
ubuntuのアップデート後に再起動して、OS選択画面で「Ubuntu」を選択したら

Unknown command (loadfont)

と一瞬表示されてから自動的にまた再起動されてしまう、というもの。


色々試してみた結果、下記のページに掲載されている、
LiveCDで一旦起動してgrub.cfgを書き換える方法で起動できるようになった。

http://ubuntuforums.org/showthread.php?p=10170093


実際やったのは、


LiveCD(Ubuntu 10.04)を作成してCDからUbuntuを起動する。


LiveCDは下記のURLでUbuntuのisoイメージをダウンロードしてCD-Rに焼けば作れる。
http://www.ubuntu.com/desktop/get-ubuntu/download


起動したらターミナルを開き、下記のコマンドを実行。

sudo mkdir /media/win
sudo mount /dev/sda2 /media/win
sudo mount -o loop /media/win/ubuntu/disks/root.disk /mnt
sudo cp /mnt/boot/grub/grub.cfg /mnt/boot/grub/grub.cfg.copy
sudo chmod +w /mnt/boot/grub/grub.cfg
gksu gedit /mnt/boot/grub/grub.cfg


2つ目のコマンドにある、/dev/sda2 はWindowsのCドライブが入ってるパーティションを指定する。
分からなかったらとりあえず /dev/sda1 なり /dev/sda2 なり存在するものをマウントしてみて、
/media/win にCドライブの内容がマウントされてたらそれでオッケー。


ちがうっぽかったら

sudo umount /media/win

すればアンマウントしてやりなおせる。


で、最後のgeditコマンドでgrub.cfgを編集する画面が起動するので、
そこで if loadfont してる部分をごっそりコメントアウトする。


こんな感じ。

#if loadfont /usr/share/grub/unicode.pf2 ; then
# set gfxmode=640x480
# insmod gfxterm
# insmod vbe
# if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
# terminal gfxterm
# fi
#fi


あとは保存して再起動したらちゃんと起動してくれた。
LiveCDは終了時に排出してくれる。


「これで正しいか分からないよ!自己責任でやってね!」って書いてあるので、
実際正しい方法かどうかは分からない。