如何將第二個 linux 發行版(xubuntu)添加到 grub?
我在 pcie ssd 上安裝了 Xubuntu,以便與 Mint 並排使用。但是,我仍然想在其目前的 SATA 固態硬碟上使用 Mint。理想情況下,我想確保 Xubuntu 安裝是可引導的(我還不能),然後在 Grub 中為每個安裝一個條目。我有一個用於執行任何 grub 命令或生成更多資訊的引導修復 USB。
我已經嘗試了幾種不同的 grub 安裝組合,但到目前為止還沒有運氣。假設我希望我目前的驅動器(Mint/SATA)來處理 grub 管理,是否有一種規範的方法可以將 xubuntu 發行版添加到 grub?
這是我的 lsblk 輸出(不包括 snap/loop 設備)…
sda 8:0 0 111.8G 0 disk └─sda1 8:1 0 108.4G 0 part / sr0 11:0 1 1024M 0 rom nvme0n1 259:0 0 477G 0 disk └─nvme0n1p1 259:1 0 477G 0 part /media/alpha/xubuntu
sda1 是我目前的 Mint 發行版所在的位置。
更新 grub 的輸出:
$ sudo update-grub Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/50_linuxmint.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.15.0-66-generic Found initrd image: /boot/initrd.img-4.15.0-66-generic Found linux image: /boot/vmlinuz-4.15.0-58-generic Found initrd image: /boot/initrd.img-4.15.0-58-generic Found linux image: /boot/vmlinuz-4.15.0-20-generic Found initrd image: /boot/initrd.img-4.15.0-20-generic done
編輯:似乎原因是其中一個系統通過舊版 BIOS 而不是 UEFI 引導。這導致 Mint 無法檢測到 nvm 上的輔助系統。
所以對於有類似問題的人來說:確保你所有的 Linux 安裝都使用相同的引導方法。如果修復此問題沒有幫助,請查看本文的其餘部分。
- 引導您的兩個 Linux 安裝並應用以下步驟 - 一個接一個,因為在其中一個中安裝新核心時,將呼叫 update-grub 並可能覆蓋您在另一個中所做的設置。
- 編輯 /etc/default/grub 並設置 GRUB_TIMEOUT_STYLE=menu 以使菜單出現,並將 GRUB_TIMEOUT 設置為 10(秒)
- 執行
sudo update-grub
此命令會將您目前執行的 Linux 的所有核心安裝到菜單中。之後,它會添加它在目前可用磁碟上找到的所有其他 Linux 安裝的所有核心。檢查它是否檢測到所有可用的系統!- 如果上述方法沒有幫助,請執行
sudo grub-install /dev/sda
將 grub 安裝到 SSD 中。但很可能這不會改變任何事情,因為它已經自動完成了。最後呼叫的 Linux
update-grub
將位於頂部,如果GRUB_DEFAULT=0
. 這可能會改變,因為無論何時安裝新核心都會自動呼叫 update-grub。如果由於某種原因自動檢測不起作用,請編輯
/etc/grub.d/
文件。但是您必須update-grub
始終從您修改這些文件的 Linux 中獲取。當安裝新核心後自動呼叫 update-grub 時,這可能是一個問題。如果您希望 UEFI 引導菜單選擇要引導的 Linux,只需這樣做:
- 引導薄荷
sudo grub-install /dev/sda
- 啟動Xubuntu
sudo grub-install /dev/nvme0n1
這將導致 grub 中的優先級不同,具體取決於 UEFI 從哪個磁碟啟動。可以肯定的是,之後不要忘記 update-grub。
PS。如果由於某種原因自動檢測不起作用(使用 nvme …),那麼您必須在
/etc/grub.d
聚苯乙烯。如果它仍然無法正常工作,並且您想從 Live CD 中嘗試。您將需要 chroot 進入已安裝的系統。這不是微不足道的。讓它為所有 Linux 安裝安裝菜單條目可能會更加困難。
順便說一句,我不確定 Linux 如何處理使用
grub-install /dev/sda
. grub 菜單和 grub 引導扇區程式碼之間的連接是如何工作的?