如何在不影響以前的 GRUB 的情況下安裝 Linux 系統?
我有一個目前使用的 Linux 系統和一些其他分區來測試不同的其他發行版。但是我安裝這些系統的方式總是相同的,導致 GRUB 引導列表被更改,而 GRUB 本身似乎安裝在最後安裝的系統中。也就是說,我可以在上次安裝的系統中使用 Grub Customizer 編輯 GRUB 列表,而使用安裝在其他系統中的 Grub Customizer 所做的任何更改都不會影響 GRUB 引導列表。要將 GRUB 恢復到我的主系統(然後能夠從那裡使用 Grub Customizer 編輯 GRUB),我在實時 USB 會話中使用 Grub Repair 在主分區上安裝 GRUB。
當我在單獨的分區上安裝新系統時,是否可以避免影響 GRUB 列表及其所有設置?(我的意思是,除了添加新條目。)
如上所述,我的經驗涉及基於 Ubuntu 的發行版、Manjaro、Deepin、KaOS、OpenSuse。
如果不涉及 Manjaro
我沒有辦法在新分區上安裝新的 Linux,而無需在以前安裝的 Linux 系統上觸摸使用Grub Customizer進行的引導菜單自定義,但我有一個簡單的解決方案,可以使用Boot Repair****恢復該自定義。
在單獨的分區上安裝新的 Linux 將替換在以前的 Linux 系統中使用 Grub Customizer 編輯的引導菜單。事實上,該定制的數據並沒有失去,但它存在於舊 Linux 安裝的分區上,您需要恢復它。
無論最後的 Linux 安裝是否保留(並且您有它附帶的引導菜單)或它已被刪除(並且您根本沒有引導菜單 - 並且根本無法引導),都可以做到這一點。
這個想法是在帶有 Linux 系統的 Live USB 上使用引導修復。
因此,在實時 Linux 環境中啟動並安裝 Boot Repair。使用基於 Ubuntu 的 Linux,因為我在這裡使用的安裝工具的方法:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair && boot-repair
啟動修復開始:
- 選擇高級選項
$$ images below were taken in a local installation, so certain specifications (like ‘OS now in use etc’) will be different, absent etc. $$
- 將主要選項保留在第一個選項卡下
- 在 Grub 位置選項卡下:預設啟動的作業系統 - 選擇您在 Grub Customizer 中編輯啟動列表的主要 Linux 安裝;將 GRUB 放入:選擇與上面相同的 Linux 安裝的分區。
- 在 Grub 選項選項卡下:取消選中“安裝前清除 Grub”
- 不要更改 MBR 選項
- 在“其他選項”選項卡下:將引導標誌置於打開狀態 - 選擇您在 Grub Customizer 中編輯引導列表的同一主 Linux 安裝
申請。
引導修復完成其過程後,重新啟動,您應該會看到 Grub Customizer 設置設置的引導列表和主題。
如果涉及 Manjaro
考慮到根據我的經驗**,如果 Manjaro 是最後安裝的 Linux,上述過程可能會導致該系統變得無法訪問**(使用 KDE、Xfce 和 Fluxbox Manjaro 測試)。
此外,Grub Customizer 似乎無法在 Manjaro 中正常工作——它給出了一個錯誤,提示無法保存更改。
僅當未安裝 Manjaro時(或者如果您想刪除它),我才建議使用上述方法。
如果在安裝另一個 Linux(如 Ubuntu)時已經安裝了 Manjaro,Manjaro 將無法啟動,因為它只能與自己的 grub 一起使用。Manjaro grub 可以恢復並用於所有已安裝的系統。(雖然它似乎不適用於 Grub Customizer,但它具有增強的功能,例如記住上次啟動的條目)。
要恢復 Manjaro 引導列表(~ 如此處所示 ~):
grub>
在其他 linux grub 菜單中,按“c”進入其 grub 提示符 ( )。在其 grub 提示符下:
grub> search.file /boot/intel-ucode.img root grub> configfile /boot/grub/grub.cfg
然後將出現 Manjaro grub 菜單,在第一個(頂部)條目處輸入,它將啟動到 Manjaro。
在終端啟動到 Manjaro 時,
sudo grub-install /dev/sda sudo update-grub
通過引導的 Ubu-Live-System 在單獨的分區上安裝 Ubuntu-System(通常)是使用安裝程序ubiquity完成的。
執行 ubiquity 的常用方法是點兩下 Live-Desktop(一個 XDG-Starter)上的圖示。但是 ubiquity 有一些cmd-line-opts,要使用它們,您必須編輯並保存 XDG-Starter,更改行:
Exec=ubiquity -b
或在終端中執行無處不在:
ubiquity -b
選項
-b
意味著:no-boot-loader-installation已經存在的 Linux的“已經存在 ”中的新引導條目應為:
grub.cfg
menuentry "New-Ubu" { root=hd0,2 linux /vmlinuz initrd /initrd.img }
=== 一旦你以這種方式開始了 New-Ubu ===
(
hd0,2
只是一個例子,第一個 HDD 上的分區 2,下面的行也是如此),您可以在終端輸入:sudo grub-install --boot-directory=/boot/ --force /dev/sda2
關於嵌入的警告可以忽略
和以後
sudo update-grub
應該重新創建
/boot/grub/grub.cfg
目前正在執行的 New-Ubu 的內容。現在,由於 New-Ubu 系統“本身”是可啟動的,您可以稍後(再次啟動 New-Ubu)
- 任一鏈負載(不推薦:上面忽略的警告可能會在 New-Ubu root-fs 上的 e2fsck 之後得到證明),
- 或載入(現在創建的) New- Ubu
/boot/grub/grub.cfg
-root-fs (/dev/sda2) 的配置文件為此,您必須在已經存在的 Linux中**替換上面引用的菜單條目,如下所示:
/boot/grub/grub.cfg
menuentry "New-Ubu" { configfile (hd0,2)/boot/grub/grub.cfg }
這也反映了update-grub隱式編寫的所需kernel-opts(啟動時與KVM-gfx-mode相關的東西),可以解決前面提到的菜單項啟動New-Ubu時可能出現的問題(什麼在根目錄中使用實際符號連結,沒有核心選項……)
PS:Linux 版本的**32/64 位變體和適當安裝的引導載入程序存在問題。**建議將 100% 粘貼到 32 位或 64 位。
親愛的很有趣!此外,我喜歡兔八哥。wqwqwqwqwqwqwqq ;)