grubが起動したときに、毎回Advanced options for Ubuntu>からクリックで選ぶのはめんどうなので特定のカーネルバージョンをデフォルトにしたい。
起動カーネルのエントリIDを調べる
grep 'menuentry ' /boot/grub/grub.cfg
を実行する
aaa@laptop:~$ grep 'menuentry ' /boot/grub/grub.cfg
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.15.0-41-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-41-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.15.0-41-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-41-generic-recovery-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.13.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-52-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.13.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-52-generic-recovery-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.11.0-27-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-27-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Ubuntu, with Linux 5.11.0-27-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-27-generic-recovery-04cbf181-38e3-4824-b64a-47e8f256edf3' {
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-E02C-B706' {
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
全てのエントリが表示されるので目的のバージョンを探す。
今回はUbuntu, with Linux 5.11.0-27-generic
を起動したいので、
$menuentry_id_option
の後ろのgnulinux-5.11.0-27-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3
をコピーする。
/etc/defaut/grubを編集
/etc/default/grub
を開き、GRUB_DEFAULT
の値を先程コピーした値に変える
(初期状態はGRUB_DEFAULT=0)
GRUB_DEFAULT="gnulinux-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3>gnulinux-5.11.0-27-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3"
/boot/grub/grub.cfgに変更を適応する
sudo grub-mkconfig -o /boot/grub/grub.cfg
を実行して、変更を反映する
aaa@laptop:~$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.13.0-52-generic
Found initrd image: /boot/initrd.img-5.13.0-52-generic
Found linux image: /boot/vmlinuz-5.11.0-27-generic
Found initrd image: /boot/initrd.img-5.11.0-27-generic
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings
done
トラブルシューティング
うまく行かない場合は以下を確認する
grub.cfgの場所が異なる
インストール環境によってgrub.cfgの場所が異なることがある。
以下の項目を参考にしてgrub.cfgの場所を探す。
https://kajindowsxp.com/grub2/#toc2
カーネルエントリIDを正しく指定していない
GRUB_DEFAULT
にUbuntu, with Linux x.xx.x-x-generic
を指定してもうまく行かない。
grub-mkconfig時に、下記のWarningが出現する
aaa@laptop:/etc/default$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.13.0-52-generic
Found initrd image: /boot/initrd.img-5.13.0-52-generic
Found linux image: /boot/vmlinuz-5.11.0-27-generic
Found initrd image: /boot/initrd.img-5.11.0-27-generic
Warning: Please don't use old title `Ubuntu, with Linux 5.11.0-27-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 5.11.0-27-generic' (for versions before 2.00) or `gnulinux-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3>gnulinux-5.11.0-27-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3' (for 2.00 or later)
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings
done
バージョンが2.00未満ならAdvanced options for Ubuntu>Ubuntu, with Linux 5.11.0-27-generic
バージョンが2.00以上ならgnulinux-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3>gnulinux-5.11.0-27-generic-advanced-04cbf181-38e3-4824-b64a-47e8f256edf3
を指定しろとの記載がある
grub-install --version
コマンドでバージョンがわかるので、適宜対応する
aaa@laptop:/etc/default$ grub-install --version
grub-install (GRUB) 2.04-1ubuntu26.13