Arch-Linux

在聯想 T440p 上使用 Windows 進行雙啟動時用 Arch 替換 Ubuntu 後修復 GRUB

  • July 3, 2017

我有聯想恢復 CD 並從全新安裝的 Windows 7 開始。我安裝了 Ubuntu,GRUB 能夠執行這兩個作業系統。

我嘗試遵循 Arch 文件,但不清楚何時應該將我的 chroot 放入新安裝中以執行 grub。/boot/grub/grub.cfg 應該在 sda1 還是 sda4 中?我在哪裡執行’chainload’命令?

我嘗試了啟動修復盤,但它不知道如何處理最新的 Arch 命令。

引導修復盤的輸出在這裡: http: //paste.ubuntu.com/24937724/

有人可以看看我哪裡出錯並給出如何從頭開始的說明嗎?什麼時候掛載 sda1?在我進入 chroot 之後?

請注意您的系統使用 EFI 引導方式。由於您對何時使用 chroot 感到困惑,因此我向您介紹了一種不安裝 GRUB 的方法。

  1. 啟動實時 Linux(Arch 安裝介質可能會在這種情況下進行,如果需要,顯式更改為控制台)。
  2. 使用 . 掛載目標系統分區mount /dev/sda4 /mnt
  3. 將目標 EFI 系統分區掛載到相應的目錄mount /dev/sda1 /mnt/boot/efi中。
  4. 您目前的狀態具有兩個grub.cfg. 我建議刪除/mnt/boot/efi/grub/grub.cfg. 理論上,grub.cfg幾乎可以將其放置在任何地方,但/mnt/boot/grub/grub.cfg它是一個標準位置。
  5. 執行grub-mkconfig -o /mnt/boot/grub/grub.cfgupdate-grub這本質上與在 chrooted 環境中執行相同。在此過程中,os-prober組件grub-mkconfig應自動檢測 Windows 安裝並將其添加到配置中。

編輯 /etc/lvm/lvm.conf 並將 use_lvmetad=1 更改為 use_lvmetad=0 執行 update-initramfs -k KERNEL_VERSION -u ;同步 6. 執行grub-install --root=/mnt --target=x86_64-efi /dev/sda。將 GRUB 的 EFI 變體安裝到 EFI 系統分區中。使用--root參數,您可以告訴grub-install在哪裡尋找grub.cfg.

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