查詢可更換內核的序號
gedit /boot/grub/grub.cfg
查詢已安裝的內核和內核的序號。找到文件中的menuentry (圖中在一大堆fi-else底下)
menuentry底下還有submenu,submenu底下就包含了 帶有縮進的 menuentry。以下是計數規則:
第一個menuentry 的序號是0,第二個submenu的序號是1,以此類推
在submenu中,第一個menuentry的序號是0,第二個是1,以此類推
我摘錄圖中submenu中的第一個menuentry如下:
menuentry 'Ubuntu,Linux 4.15.0-34-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-34-generic-advanced-261d46dc-b223-49ee-a561-439009b15519' {
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 261d46dc-b223-49ee-a561-439009b15519
else
search --no-floppy --fs-uuid --set=root 261d46dc-b223-49ee-a561-439009b15519
fi
echo '載入 Linux 4.15.0-34-generic ...'
linux /boot/vmlinuz-4.15.0-34-generic root=UUID=261d46dc-b223-49ee-a561-439009b15519 ro quiet splash $vt_handoff
echo '載入初始化內存盤...'
initrd /boot/initrd.img-4.15.0-34-generic
意思是,這個menuentry就是內核 Linux 4.15.0-34-generic 的序號菜單了。這里就假設我需要把內核更換為它。它在submenu 的第一個menuentry。記住它,下一步要用。
(3)修改grub更換內核
sudo gedit /etc/default/grub
打開grub的編輯窗,如圖所示:
如果沒有使用grub修改過內核,除注釋第一行應該顯示的是
GRUB_DEFAULT=0
0就是默認的kernel了。我們要做的就是把GRUB_DEFAULT=0 改成
GRUB_DEFAULT=“1 >0”
即可。請注意在(2)中提到的需要更換的內核Linux 4.15.0-34-generic在 submenu 的第一個menuentry,因此是“1 >0“。如果它在submenu的第5個,那么就是 ”1 >4“,唯一需要的就是數好這個!
同時,請注意一對英文分號""和1后面的空格也是必須的,萬萬不可少,也不可多!
(4)更新內核和重啟
sudo update-grub
sudo reboot
重啟完可以用uname -a查詢內核已更換。
