Arch-Linux

將 /boot 移至 ESP(目前為 /b oot/efi)

  • October 22, 2021

我目前有我的 ESP 分區/boot/efi(實際上,它甚至沒有安裝在那裡,根本沒有進入/etc/fstab;我幾年前安裝了我的系統,不記得為什麼它是這樣設置的,但它現在工作正常),並且想取而代之/boot。我目前正在使用 GRUB 2 作為我的引導載入程序,但我真的不知道它是如何工作的(同樣,我幾年前就安裝了它,從那時起就再也沒有接觸過它)。這就是 Arch Linux。

我必須做些什麼才能實現這一目標?

將所有內容從/bootESP 複製,然後添加一個條目以/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;博士:

  1. 將所有內容複製/boot到 ESP
  2. 將 ESP 掛載到/boot
  3. 再生/boot/grub/grub.conf通過grub-mkconfig
  4. 執行grub-install(主要用於更新 EFI 引導)
  5. 重新啟動到新啟動
  6. 清理舊啟動 ( /boot, EFI/arch, efibootmgr)

我最終成功地做了什麼:

  1. 將 ESP 掛載到……任何地方(我用過/boot/efi
  2. 將所有內容(尤其是 initramfs、微碼、核心和grub/文件夾,儘管最後一個可能不是必需的)從/bootESP複製
  3. 解除安裝 ESP,然後將其重新安裝到/boot
  4. 執行grub-mkconfig生成一個新的/boot/grub/grub.conf

那時,我想檢查一切是否正常,所以我:

  1. 解除安裝 ESP 並將其重新安裝到/boot/efi
  2. 區分/boot/grub/grub.conf/boot/efi/grub/grub.conf
  3. 將塊從一個複製menuentry到另一個,因此我可以(希望)啟動這兩個選項
  4. 重新啟動並嘗試從 ESP 啟動的新選項:它有效(意思是 IIUC,複製到 ESP 的文件可以啟動系統)

然後我跳過差距並進行了切換:

  1. 將 ESP 掛載到/boot
  2. 編輯/etc/fstab以在啟動時掛載它(我實際上用來genfstab生成適當的 fstab 行)
  3. 執行grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB(前一個被命名為arch,所以沒有衝突)
  4. 重新啟動(請注意,我的舊 grub.conf 中有一個菜單項,希望能在舊的“系統”上啟動,以防萬一)

最後,做一些清理工作:

  1. 解除安裝 ESP 並從 /boot版本中刪除所有內容(因為 ESP 無論如何都安裝在此處,隱藏這些文件)
  2. 刪除我添加到 grub.conf 中的菜單項
  3. 使用刪除 EFI 中的舊 GRUB 條目efibootmgr
  4. /boot/EFI/arch/從 ESP ( )中刪除舊的 GRUB 條目

引用自:https://unix.stackexchange.com/questions/672744