Arch Linux 安裝中 grub-mkconfig 的問題:grub-mkconfig 無法連接到 lvmetad
我在使用 Windows 10 雙啟動的機器上重新安裝 Arch 時遇到了問題。由於各種不相關的原因,我決定備份舊 Arch 安裝中的所有內容並重新開始。我在 USB 上有 Arch 實時媒體,所以我繼續並從它啟動(在 UEFI 中),格式化我的 linux 分區並瀏覽了 arch 安裝指南。
在我進入“安裝引導載入程序”部分之前,一切似乎都執行良好。我不是 100% 確定在這裡做什麼,因為我之前使用的初學者指南已被刪除,取而代之的是(更簡潔的)安裝指南。我知道我的 EFI 分區已經擁有它需要的所有 grub 內容,但我認為它需要更改以進行新安裝。我刪除了
/boot/EFI/grub.efi
存根,並重命名/boot/grub/
為/boot/grub.bak
. 我用and (我的 efi 分區的掛載點)pacman -S grub os-prober
從 arch 安裝指南執行 grub-install 命令,然後執行 g 。target=x86_64-efi``directory=/boot``rub-mkconfig -o /boot/grub/grub.cfg
這就是我的麻煩開始的地方。執行 grub-mkconfig 命令給了我一個“
failed to connect to lvmetad
”錯誤,並說它正在恢復到回退模式。它成功地在正確的目錄中生成了一個 grub.cfg 文件,但是沒有菜單條目。當我嘗試啟動時,我得到的只是一個 grub 命令行。回到我的 arch live media 並重做 arch-chroot,我進入我的/boot/grub.bak
並從那裡複製了 arch linux 的菜單條目部分,確保用我的 fstab 中為我的根目錄報告的目前 UUID 替換舊的 UUID。當我重新啟動時,這將 grub 菜單帶回來,但是選擇 arch linux 給了我一個錯誤,即/vmlinux couldn't be found
.我在現場媒體上回到了我的 chroot,並重新執行了 grub-config。仍然沒有menuentries。我發現這個執行緒有一個類似的問題,說 grub-mkconfig 幫助程序腳本存在一個已知問題。這是從 14 年開始的,所以我認為我的問題不太可能是相同的,但我遵循了那裡的最佳答案。建議是執行以下操作:
剛才遇到了同樣的問題,找到了另一種解決方法。基本上,它涉及使主機/執行目錄對來賓可用。
首先,我們將 /run 掛載到來賓可以訪問的位置。我將假設您的安裝分區安裝在 /mnt
mkdir /mnt/hostrun mount –bind /run /mnt/hostrun 然後,我們chroot進入guest,並將host的/run/lvm掛載到guest的/run
arch-chroot /mnt /bin/bash mkdir /run/lvm mount –bind /hostrun/lvm /run/lvm 然後您可以執行 grub-mkconfig 和 grub-install 而不會出現任何 LVM 錯誤。如果您使用 LVM 安裝,這也會使命令正常執行,這是值得的。
完成後,請記住在退出 chroot 之前解除安裝 /run/lvm。
這樣做實際上消除了我的
fails to connect to lvmetad
錯誤,但將其替換為/dev/sdx not initialized in UDEV
. 該命令仍會生成一個沒有菜單條目的 grub.cfg。我可以通過從筆記型電腦的“啟動時錘擊 f12”菜單中選擇 Windows 啟動管理器來進入 Windows。
出現這個問題只是因為您在 arch-chroot 中並使用 os-prober。解決我的情況是:
- 備份目前的 grub.cfg,如果你還沒有備份的話。
- 刪除 os-prober (
pacman -R os-prober
,或者你可以禁用它)- 執行 grub-mkcondig
- 重啟進入 Arch
- 安裝 os-prober
- 再次執行 grub-mkconfig
這裡同樣的問題。這是一篇舊文章,但我會發布我的解決方法以防它對某人有所幫助。
和你一樣,我有一個完整的備份,包括一個工作的 grub.cfg 文件。我從舊的 grub.cfg 文件中提取了所需的菜單項並將它們添加到 /etc/grub.d/40_custom。接下來我重新執行 grub mkconfig -o /boot/grub/grub.cfg。現在一切都很好。
os-prober 是一個低優先級的便利項目,並不是真正必要的。就我個人而言,我不會花太多時間試圖讓它發揮作用。這是個人選擇。有些人喜歡嘗試解決這類問題,我感謝他們的努力,但其他人需要他們的系統才能真正工作,有時間限制,需要啟動和執行。
最終,這個問題將通過軟體或文件解決。如果您對如何在 40_custom 文件中設置菜單條目有疑問,您可以通過網路搜尋找到大量範例。