如何在不重新啟動的情況下預覽我的 GRUB 菜單?
我想在 GRUB2 中更改我的預設引導作業系統。但我知道在 GRUB 菜單中查看我想要的作業系統順序的唯一方法是重新啟動並查看顯示的菜單。
GRUB 菜單中的行數比實際選擇
grub.cfg
多得多menuentry
,因此我無法在該文件中辨識出我想要的行。是否有任何地方儲存實際顯示的菜單,以便我可以看到它而無需重新啟動?
我相信
grub-emu
應該為你工作sudo apt-get install grub-emu
然後在終端執行
grub-emu
詳情見這裡
請注意: 您必須將焦點設置到啟動模擬器的終端才能進行輸入!模擬器自身的視窗根本不會對任何輸入做出反應。
您可以安裝grub2-theme-preview,它是一個 PyPi 包。它使用 QEMU 並且似乎可以很好地測試 grub 主題,而無需在每次更改後重新啟動。
它也可以直接從 AUR 獲得,這是我使用的版本,因為我正在使用 Manjaro。
它需要以下非 PyPi 依賴項(有關連結、更多詳細資訊和潛在更新,請參閱 README.md ):
- GRUB 2 的 grub-mkrescue(Debian 和 Ubuntu 上的 grub-common 軟體包)
- QEMU — 執行硬體虛擬化的管理程序
- OVMF — 用於 QEMU 的 EFI bios 映像
- mtools — 訪問 MS-DOS 的實用程序集合
- libisoburn 的 xorriso — 支持創建和擴展 ISO 格式的前端
- 當然還有python / pip
要安裝,請執行以下命令:
pip install --user grub2-theme-preview
安裝後,您可以
grub2-theme-preview /path/to/your/theme/directory
從終端執行以啟動它(更多關於使用here。)注意:如果您有任何自定義配置,例如 custom.cfg 或 liveiso.cfg,您需要單獨拉入 grub.cfg,這要歸功於 /etc/grub.d/41_custom 中的腳本,例如,它們的條目可能不會出現,在這種情況下,您需要使用新添加的 –add 標誌。您的命令可能如下所示,其中 –add TARGET=/SOURCE 用於您要添加的每個自定義配置:
grub2-theme-preview --verbose --grub-cfg /boot/grub/grub.cfg --add /boot/grub/custom.cfg=/boot/grub/custom.cfg --add /boot/grub/gpu-switcher.cfg=/boot/grub/gpu-switcher.cfg --add /boot/grub/liveiso.cfg=/boot/grub/liveiso.cfg /usr/share/grub/themes/manjaro
更多上下文:https ://github.com/hartwork/grub2-theme-preview/issues/29#issuecomment-980802808
如果您想要更多以終端為中心並且只需要查看訂單的東西,您也可以在此處查看答案。例如,這個 awk 命令也會為您提供條目和子條目:
awk -F\' '/(^|| )nuentry / {print $2}' /boot/grub/grub.cfg|cat -n|awk '{print $1-1,$1="",$0}'
我更喜歡這些選項
grub-emu
,因為這似乎有一個問題關閉,而不必完全關閉您的終端,如該答案的評論中所述。另外,grub2-theme-preview 實際上會向您顯示主題(儘管它確實需要更多的依賴設置)並且 awk 命令快速簡單;如果您經常使用它,也許可以將其添加為別名,這樣您就不必記住它。