如何重置 /boot 分區
我有一個可啟動的 USB,其中安裝了 Ubuntu 20.04。昨天我嘗試用 Arch Linux 讓它雙啟動並成功了。
起初,我安裝 Arch Linux,並將引導分區掛載到
/mnt/boot
. 然後在安裝過程中它失敗了,但它已經在引導分區中創建(覆蓋?)initramfs 映像和核心。在此之後,我已經格式化了 Arch Linux 的分區並重新安裝了,但沒有掛載引導分區。現在,GRUB 中的第一個 Ubuntu 選項嘗試啟動 Arch Linux 並失敗了,Arch Linux 選項也失敗了。為了啟動到 Ubuntu,我必須使用高級選項並選擇一個指定 5.15.0-46-generic 核心的選項。
為了解決這個問題,我認為刪除Arch Linux 創建的
amd-ucode.img
,intel-ucode.img
和vmlinux-linux
Editing Grub options viagrub-customizer
(刪除啟動到 Arch 並失敗的第一個選項,將啟動到 Ubuntu 的選項移到頂部)是安全的。但是如何修復啟動到 Arch 的選項?(啟動到 Ubuntu)
輸出
ls /boot -lah
:drwxr-xr-x 5 root root 4,0K Ağu 31 20:37 . drwxr-xr-x 20 root root 4,0K Ağu 29 23:56 .. -rw-r--r-- 1 root root 50K Tem 15 13:16 amd-ucode.img -rw-r--r-- 1 root root 252K Haz 3 01:48 config-5.13.0-48-generic -rw-r--r-- 1 root root 257K Ağu 4 21:44 config-5.15.0-46-generic drwxr-xr-x 5 root root 4,0K Eyl 1 11:59 grub drwxr-xr-x 5 root root 4,0K Ağu 31 14:00 grub.bak -rw------- 1 root root 34M Ağu 31 20:38 initramfs-linux-fallback.img -rw------- 1 root root 8,7M Ağu 31 20:37 initramfs-linux.img lrwxrwxrwx 1 root root 28 Ağu 30 23:25 initrd.img -> initrd.img-5.15.0-46-generic -rw-r--r-- 1 root root 62M Ağu 26 11:34 initrd.img-5.13.0-48-generic -rw-r--r-- 1 root root 67M Ağu 30 23:27 initrd.img-5.15.0-46-generic lrwxrwxrwx 1 root root 28 Ağu 30 23:25 initrd.img.old -> initrd.img-5.13.0-48-generic -rw-r--r-- 1 root root 5,0M Ağu 9 21:43 intel-ucode.img drwx------ 2 root root 16K Kas 9 2021 lost+found -rw-r--r-- 1 root root 179K Ağu 18 2020 memtest86+.bin -rw-r--r-- 1 root root 181K Ağu 18 2020 memtest86+.elf -rw-r--r-- 1 root root 181K Ağu 18 2020 memtest86+_multiboot.bin -rw------- 1 root root 5,7M Haz 3 01:48 System.map-5.13.0-48-generic -rw------- 1 root root 6,0M Ağu 4 21:44 System.map-5.15.0-46-generic lrwxrwxrwx 1 root root 25 Ağu 30 23:25 vmlinuz -> vmlinuz-5.15.0-46-generic -rw------- 1 root root 9,8M Haz 3 01:50 vmlinuz-5.13.0-48-generic -rw------- 1 root root 11M Ağu 4 21:47 vmlinuz-5.15.0-46-generic -rw-r--r-- 1 root root 11M Ağu 31 20:37 vmlinuz-linux lrwxrwxrwx 1 root root 25 Ağu 30 23:25 vmlinuz.old -> vmlinuz-5.13.0-48-generic
grub-customizer 的引導選項:
你很幸運。我不同意GRUB 中發布的答案混淆了 Ubuntu 和 Arch Linux 安裝的核心/initramfs,並聲稱 Arch 和 Ubuntu 可以與共享
/boot
分區完全共存。在
/boot
中,這些文件屬於 Arch(核心和 initramfs):initramfs-linux-fallback.img initramfs-linux.img vmlinuz-linux
這些文件屬於 Ubuntu:
initrd.img initrd.img-*-generic vmlinuz vmlinuz-*-generic
如您所見,沒有重疊。兩個系統唯一爭奪的是位於
/boot/grub/grub.cfg
.我建議通過引導進入 Ubuntu 並執行
sudo update-grub
. 據我所知,這會將 Arch 核心誤認為是 Ubuntu 核心並產生無效條目。我知道沒有辦法阻止這種情況的發生,所以我認為你需要忽略它。您可以繼續添加一個新文件
/boot/grub/custom.cfg
並手動定義一個用於引導 Arch 的新條目:menuentry 'Arch Linux' { insmod gzio insmod ext2 search --no-floppy --fs-uuid --set=root <SOMEUUID> ← copy this line from one of the autogenerated Ubuntu entries linux /boot/vmlinuz-linux rw root=UUID=<SOMEOTHERUUID> ← put the UUID of your arch linux installation here initrd /boot/initramfs-linux.img }
您可以通過執行找到 UUID
sudo blkid
。玩得開心嘗試新發行版!
注意:如果你啟動了 Arch,同樣的事情也會發生。那麼你可能會遇到同樣的問題,但反過來。
update-grub
在 Arch 中執行時,可能會為 Ubuntu 核心創建不可用的條目。我建議將其中一個工作的 Ubuntu 條目從 複製grub.cfg
到custom.cfg
以防萬一。