Arch-Linux
將 /boot 移至 ESP(目前為 /b oot/efi)
我目前有我的 ESP 分區
/boot/efi
(實際上,它甚至沒有安裝在那裡,根本沒有進入/etc/fstab
;我幾年前安裝了我的系統,不記得為什麼它是這樣設置的,但它現在工作正常),並且想取而代之/boot
。我目前正在使用 GRUB 2 作為我的引導載入程序,但我真的不知道它是如何工作的(同樣,我幾年前就安裝了它,從那時起就再也沒有接觸過它)。這就是 Arch Linux。我必須做些什麼才能實現這一目標?
將所有內容從
/boot
ESP 複製,然後添加一個條目以/etc/fstab
將 ESP 掛載為/boot
,但我懷疑在某些配置文件中可能存在更改路徑,因為 EFI 將位於/boot/EFI
而不是/boot/efi/EFI
.目前內容
/boot
:
- 蠐螬/
- initramfs-linux.img
- initramfs-linx-fallback.img
- 英特爾ucode.img
- vmlinuz-linux
ESP內容:
電噴
拱
- grubx64.efi
- fwupdx64.efi
- 轉發/
戴爾/BIOS/恢復/
**上下文:**我想轉向全盤加密(在 LUKS 2 上使用 LVM;目前,我根本沒有加密,也
/
沒有/home
),為此我需要在未加密的分區上安裝核心和 initramfs 以供 GRUB 載入(如我錯了請糾正我)。我認為最簡單的方法是簡單地將它放在 ESP 上,從而製作 ESP/boot
而不是/boot/efi
.歡迎提出替代建議(請提供優缺點)。
TL;博士:
- 將所有內容複製
/boot
到 ESP- 將 ESP 掛載到
/boot
- 再生
/boot/grub/grub.conf
通過grub-mkconfig
- 執行
grub-install
(主要用於更新 EFI 引導)- 重新啟動到新啟動
- 清理舊啟動 (
/boot
,EFI/arch
,efibootmgr
)我最終成功地做了什麼:
- 將 ESP 掛載到……任何地方(我用過
/boot/efi
)- 將所有內容(尤其是 initramfs、微碼、核心和
grub/
文件夾,儘管最後一個可能不是必需的)從/boot
ESP複製- 解除安裝 ESP,然後將其重新安裝到
/boot
- 執行
grub-mkconfig
生成一個新的/boot/grub/grub.conf
那時,我想檢查一切是否正常,所以我:
- 解除安裝 ESP 並將其重新安裝到
/boot/efi
- 區分
/boot/grub/grub.conf
和/boot/efi/grub/grub.conf
- 將塊從一個複製
menuentry
到另一個,因此我可以(希望)啟動這兩個選項- 重新啟動並嘗試從 ESP 啟動的新選項:它有效(意思是 IIUC,複製到 ESP 的文件可以啟動系統)
然後我跳過差距並進行了切換:
- 將 ESP 掛載到
/boot
- 編輯
/etc/fstab
以在啟動時掛載它(我實際上用來genfstab
生成適當的 fstab 行)- 執行
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
(前一個被命名為arch
,所以沒有衝突)- 重新啟動(請注意,我的舊 grub.conf 中有一個菜單項,希望能在舊的“系統”上啟動,以防萬一)
最後,做一些清理工作:
- 解除安裝 ESP 並從舊
/boot
版本中刪除所有內容(因為 ESP 無論如何都安裝在此處,隱藏這些文件)- 刪除我添加到 grub.conf 中的菜單項
- 使用刪除 EFI 中的舊 GRUB 條目
efibootmgr
/boot/EFI/arch/
從 ESP ( )中刪除舊的 GRUB 條目