落穂拾い

Gleanings in my life

【Gentoo】 呪いの GRUB GRUB GRUB GRUB GRUB …

2011年09月22日 22時53分02秒 | Linux

gcc-4.4 から gcc-4.5 に無事アップグレード終了。 ログアウト後、無事ログインして利用できた。しかし、起動時に動かしているいくつかのソフトの再起動はしていないので、ここは一先ず「再起動」してみた。 その結果、grub が起動した瞬間、

GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB 

といった感じで、延々と upcase された GRUB の文字列だけが垂れ流しになってしまった。grub がまったく起動できないということらしい。 仕方がないので、grub の再インストールをする。 用意するのは gentoo のインストールディスク(live DVDでもO.K.)。 今回は、Gentoo のミラーサイトから最新のインストール用 CD イメージをダウンロードしてきて利用した。ダウンロードしたのは install-amd64-minimal-20110915.iso というファイル。これを CD-RW に焼き、grub が起動しなくなった PC をこの CD-RW でブートする。ブート時は特段オプションはなし。途中でキーボードを選択する場面があるので jp を選んでみるが、今回は効果がなかった(=とかダブルクォートとかが入力しにくいだけ)。 インストール用 minimal gentoo が起動したら、下記を打ち込み、chroot する。なお、これは / が /dev/sda3、/boot が /dev/sda1、/var が /dev/sda5、/tmp が /dev/sda6 にある私の環境の場合の例である。chroot 環境にマウントしなければならないのは、実際は / パーティションと /boot パーティション、あとは /proc、/dev があればいいような気がする(確認していないけど)。

mount /dev/sda3 /mnt/gentoo 
cd /mnt/gentoo
mount /dev/sda1 /mnt/gentoo/boot 
mount /dev/sda5 /mnt/gentoo/var 
mount /dev/sda6 /mnt/gentoo/tmp
chmod 1777 /mnt/gentoo/tmp
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"

以上で chroot 環境に入った。すなわち、いつもの linux 環境。 そこで、ここで grub を改めてインストールしてみる。

# grub-install --root-directory=/boot /dev/sda
Could not find device for /boot/boot: not found or not a block device

うむ。やはりエラーが出る。原因は /etc/mtab が正常に作成されていないためのようだ。 そこで、

# grep -v rootfs /proc/mounts > /etc/mtab

として /etc/mtab を生成してから、

# grub-install --root-directory=/boot /dev/sad

を実行すると無事に grub が MBR にインストールできた。 chroot 環境を exit して、mount したパーティションを umount して抜け、リブート。 CD-RWを忘れずに取り出せば、いつもの Linux 環境が起動する。


コメントを投稿