apt で upgrade を実行したところ
以下の構成で問題が発生した。
BIOS 画面終了後 GRUB2 が読み込まれ Linux の boot を開始すると
/dev/sda1 の UUID を認識出来ないらしく、
以下のようなエラーを吐き出し起動に失敗する。
Grub の edit モードに入り設定を確認してみると以下のようになっていた。
Debian 起動後、
/etc/default/grub に grub 更新用の設定があるので
コメントアウトされている以下のパラメータを有効にする。
次に update-grub を実行すると、
/boot/grub/grub.cfg が更新され、
上記で問題の生じていた linux 行の root パラメータに与える値が /dev/sda1 のような表記になる。
あとは search 行を削除する必要があるのだが、削除するための設定項目が見当たらない。
仕方ないので、
以上で boot 時に grub2 が UUID でパーティションを認識出来ない問題は解決する模様。
参考:
以下の構成で問題が発生した。
- Intel Pentium4 2.4GHz
- AOpen AX45G-N (Intel 865G、ICH5)
- Debian GNU/Linux stable
- grub-pc 1.98+20100804-14+squeeze1
- grub-common 1.98+20100804-14+squeeze1
BIOS 画面終了後 GRUB2 が読み込まれ Linux の boot を開始すると
/dev/sda1 の UUID を認識出来ないらしく、
以下のようなエラーを吐き出し起動に失敗する。
Booting 'Debian GNU/Linux, with Linux 2.6.32-5-686' Loading Linux 2.6.32-5-686 ... error: out of partition. Loading initial ramdisk ... error: you need load the kernel first. Failed to boot both default and fallback entries. Press any key to continue...
Grub の edit モードに入り設定を確認してみると以下のようになっていた。
insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx echo 'Loading Linux 2.6.32-5-686 ...' linux /boot/vmlinuz-2.6.32-5-686 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-5-686ここで、以下の2点の変更を行うと問題なく起動できた。
- search 行を削除する
- linux 行の root パラメータを root=/dev/sda1 に変更
Debian 起動後、
/etc/default/grub に grub 更新用の設定があるので
コメントアウトされている以下のパラメータを有効にする。
GRUB_DISABLE_LINUX_UUID=true
次に update-grub を実行すると、
/boot/grub/grub.cfg が更新され、
上記で問題の生じていた linux 行の root パラメータに与える値が /dev/sda1 のような表記になる。
あとは search 行を削除する必要があるのだが、削除するための設定項目が見当たらない。
仕方ないので、
cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.tmp; grep -v '^\ssearch' /boot/grub/grub.cfg.tmp > /boot/grub/grub.cfgのような感じで search 行削った後
grub-install /dev/sdaとかしとく。
参考:
- Community Ubuntu Documentation / Grub2 / /etc/default/grub (file)
- Debian Bug report logs - #548803: grub-pc: GRUB2 can't find device via UUID
タグ
コメントをかく