今回UbuntuをPCにインストールしてapt-upgradeをすると再起動後に画面が表示されない現象がおきました。
Twitterで最新のカーネルが不安定でセーフブートで一つ前のカーネルを使用してると聞いて試してみたところ画面がつくようになりました。
しかし毎回セーフブートからカーネルを選択するのは面倒くさいので一つ前のカーネルをデフォルトで起動できないか試してみました。
環境
Ubuntuのバージョン: 21.04
デフォルトのカーネル: 5.11.0.22-generic
変更したいカーネル: 5.11.0.16-generic
試してみたこと
/etc/default/grubの編集
色々試してみましたが、UEFIが起動したり通常の起動などしたりで上手く行きませんでした。
sudo gedit /etc/default/grub
sudo update-grub
/etc/default/grub
GRUB_DEFAULT=2
/etc/default/grub
GRUB_DEFAULT="saved"
/etc/default/grub
GRUB_DEFAULT="Ubuntu, with Linux 5.11.0.16-generic
/etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.11.0.16-generic
/etc/default/grub
GRUB=DEFAULT="gnulinux-5.11.0-16-generic-advanced-5f2f8280-6d4b-4822-bbbf-792ef193a92d"
grub-set-defaultコマンド
これは反映されませんでした
sudo grub-set-default 2
/boot/grub/grub.cfgの編集
通常起動するUbuntuのカーネルを変更することで成功しました。
※update-grubすると上書きされて元のカーネルに戻ります。
boot/grub/grub.cfg
を開いてsubmenu
の中から変更したいカーネルを探してlinux
の行とinitrd
の行をコピーしmenuenty 'ubuntu'
のlinux
とinitrd
の行へ上書きします。
変更したカーネルのsubmenu
menuentry 'Ubuntu, with Linux 5.11.0-16-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-16-generic-advanced-5f2f8280-6d4b-4822-bbbf-792ef193a92d' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 5f2f8280-6d4b-4822-bbbf-792ef193a92d
else
search --no-floppy --fs-uuid --set=root 5f2f8280-6d4b-4822-bbbf-792ef193a92d
fi
echo 'Linux 5.11.0-16-generic をロード中...'
linux /boot/vmlinuz-5.11.0-16-generic root=UUID=5f2f8280-6d4b-4822-bbbf-792ef193a92d ro quiet splash $vt_handoff
echo '初期 RAM ディスクをロード中...'
initrd /boot/initrd.img-5.11.0-16-generic
}
sudo gedit /boot/grub/grub.cfg
/boot/grub/grub.cfg編集前
mmenuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5f2f8280-6d4b-4822-bbbf-792ef193a92d' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 5f2f8280-6d4b-4822-bbbf-792ef193a92d
else
search --no-floppy --fs-uuid --set=root 5f2f8280-6d4b-4822-bbbf-792ef193a92d
fi
linux /boot/vmlinuz-5.11.0-22-generic root=UUID=5f2f8280-6d4b-4822-bbbf-792ef193a92d ro quiet splash $vt_handoff
initrd /boot/initrd.img-5.11.0-22-generic
}
/boot/grub/grub.cfg編集後
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5f2f8280-6d4b-4822-bbbf-792ef193a92d' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 5f2f8280-6d4b-4822-bbbf-792ef193a92d
else
search --no-floppy --fs-uuid --set=root 5f2f8280-6d4b-4822-bbbf-792ef193a92d
fi
linux /boot/vmlinuz-5.11.0-16-generic root=UUID=5f2f8280-6d4b-4822-bbbf-792ef193a92d ro quiet splash $vt_handof
initrd /boot/initrd.img-5.11.0-16-generic
}