Ubuntu服務器一直比較好用,但是經過幾次自動upgrade後,新的內核居然無法啓動,需要手工從界面上選擇舊內核啓動服務器。如果每次可以從界面上選擇,那麼就簡單了。如果修改下啓動內核選項,讓其直接從舊內容啓動,豈不更加容易。
1) 找到 $menuentry_id_option 在 submenu 下:
grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-65c9af03-3d9b-411c-99b2-a9ada0961a40' {
2) 找到 $menuentry_id_option 下你想啓動的kernel:
grep gnulinux /boot/grub/grub.cfg
這個就是需要瞄準的內核excerpt: ... menuentry 'Debian GNU/Linux, with Linux 4.7.0-1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.7.0-1-amd64-advanced-65c9af03-3d9b-411c-99b2-a9ada0961a40' { ...
3) 在 /etc/default/grub 文件內,找到GRUB_DEFAULT, $menuentry_id_option是第一步,內核的 $menuentry_id_option作爲第二步,用 ">"進行分割.
#GRUB_DEFAULT=0
GRUB_DEFAULT="gnulinux-advanced-65c9af03-3d9b-411c-99b2-a9ada0961a40>gnulinux-4.7.0-1-amd64-advanced-65c9af03-3d9b-411c-99b2-a9ada0961a40"
4) 更新grub:
sudo update-grub
完成任務!
現在重新啓動後,菜單會有變化,(變成什麼樣子呢?).查看啓動後加載的內核:
uname -a
Linux NAME 4.7.0-1-amd64 #1 SMP Debian 4.7.8-1 (2016-10-19) x86_64 GNU/Linux
如果需要再變回到重新加載最新的內核,註釋剛纔的配置命令,然後將#GRUB_DEFAULT=0的註釋去掉, 再重新運行 update-grub.