想找尋更完整的解決辦法,可惜並未找到適當的方法,但是又找到另一個類似的方法,就將它『增補』在原來的辨法之後。
會仍啟動舊版的核心,主要原因是在設定開機啟動程序那個檔案,在檔案『 /boot/grub2/grub.conf 』的約第 18 列,有一段設定預設啟動版本的腳本,
if [ "${next_entry}" ] ; then上例中,預設的設定為『${saved_entry}』,表示它將以『前一次開機』的版本啟動。有些版本設定值為數字,是指會由『開機選單』特定順位的版本開機。
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
但是,這些設定都有可能在下一次『更新版本』時,未能正確修改設定,造成『下次開機』時不能使用『最新』或『預設』的開機版本。要修改這個啟動順序,有幾個方式:
一、設定『啟動順位』
Fedora 的某些版本(較早期),都是以數值指定由『開機選單』的某順位啟動。在更新過程中,若這個指定『啟動順位』的數值未正確修改,則仍是指向『上一個版本』的順位。這時只要將該列改為set default="1"上例中,是假設『最新版』在『開機選單』的排列順位是第『 1 』位。
注意:下次更新系統核心時,這個動作仍可能要再做一次。
二、設定為『上次啟動』之版本
前幾個版本(約在前文發文時)可以做以下的修改set default="${saved_entry}"在更新安裝後,當下次開機在『開機選單』出現時,做一次選擇後,GRUB 這個啟動管理套件,會將這次的啟動版本記錄下來,以後開機就會與自動選擇同一版本啟動。
註一:目前的 Fedora 版本,預設採用這種設定方法。
註二:某些不知原因可能造成此種設定不正常,就要採用下一個方法。
三、設定『預設』啟動版本
若系統更新時,未能自動設定開啟新版本,或不能自動儲存該次開機選項時,就可以手動方式設定『預設』啟動版本。在這個方法裏有幾個命令,各自負責不同的任務,分述如下:查詢目前『預設』的『開機選單』選項
若要查詢目前『預設』的『開機選單』選項,可以用這個命令[root@Core-i7 ~]# grub2-editenv list上例中『Fedora (3.19.5...』是現在的預設選項。待會設定好『新選項』後時,也可用這個命令確認設定的結果。
saved_entry=Fedora (3.19.5-200.fc21.x86_64) 21 (Twenty One)
查詢『開機選單』的選項
查詢目前系統中,使用者可以選擇用以開機啟動的版本選項。這個命令可以列出所有選項[root@Core-i7 ~]# grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2除了查詢外,也方便在其它設定命令時,能正確輸入選項名稱。
Fedora (3.19.7-200.fc21.x86_64) 21 (Twenty One)
Fedora (3.19.5-200.fc21.x86_64) 21 (Twenty One)
Fedora (3.19.4-200.fc21.x86_64) 21 (Twenty One)
Fedora, with Linux 0-rescue-df5c2a2aafa848c887b1698427ed2ef8
設定『預設』的『開機選單』選項
由上一個命令查詢所得所有選項列表,可以確定要選擇哪個選項做為預設值。用滑鼠左鍵將選項整列反白,同時按下【Ctrl】+【Shift】+【C】三鍵複製所選的內容,再同時按【Ctrl】+【Shift】+【V】三鍵貼在下面命令的兩個『 "』之間,[root@Core-i7 ~]# grub2-set-default "Fedora (3.19.7-200.fc21.x86_64) 21 (Twenty One)"這個命令會將『預設』選項填入『/boot/grub2/grubenv』這個檔案中。也可以用這個命令將該檔內容顯示在「終端機」上
[root@Core-i7 ~]# grub2-editenv list
saved_entry=Fedora (3.19.7-200.fc21.x86_64) 21 (Twenty One)
後記:
- 2016-4-17 : 修改查詢命令。
已測試版本:
- Fedora: 23, 22, 21
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)