Arch Linux 安裝中的「grub-mkconfig」問題:「grub-mkconfig」無法連線到 lvmetad

Arch Linux 安裝中的「grub-mkconfig」問題:「grub-mkconfig」無法連線到 lvmetad

我在重新安裝時遇到了問題架構Linux在與 Windows 10 雙重啟動的電腦上。

由於各種不相關的原因,我決定備份舊的 Arch Linux 安裝中的所有內容並重新開始。我在 USB 上有 Arch Linux 即時媒體,所以我繼續從它啟動(在UEFI),格式化我的 Linux 分割區並完成 Arch Linux 安裝指南。

一切似乎都工作正常,直到我到達“安裝引導程式”部分。我並不是 100% 確定在這裡要做什麼,因為我之前使用的初學者指南已被刪除,取而代之的是(非常非常簡短的)安裝指南。

我知道我的電噴分割區已經包含了它所需的所有 GRUB 內容,但我認為需要對其進行更改才能進行新安裝。

  • 我刪除了/boot/EFI/grub.efi存根,並重命名/boot/grub//boot/grub.bak.
  • 我跑了
    pacman -S grub os-prober
    
    使用和(我的 EFI 分割區的安裝點) 執行grub-installarch 安裝指南中的命令,然後執行 target=x86_64-efidirectory=/boot
    grub-mkconfig -o /boot/grub/grub.cfg
    

這就是我的麻煩開始的地方。運行該grub-mkconfig命令給了我一個“ failed to connect to lvmetad”錯誤,並表示它正在恢復到後備模式。它成功地grub.cfg在正確的目錄中產生了一個文件,但是沒有選單條目。

當我嘗試啟動時,我得到的只是 GRUB 命令列。回到我的 Arch Linux 即時媒體並重做arch-chroot,我進入我的/boot/grub.bak並從那裡複製了 Arch Linux 的選單條目部分,確保將舊的 UUID 替換為我目前報告的 UUID。fstab對於我的根目錄。當我重新啟動時,這會使 GRUB 選單恢復正常,但是選擇 Arch Linux 卻出現錯誤/vmlinux couldn't be found: .

我回到chroot現場媒體並重新運行grub-config。仍然沒有菜單條目。我發現這個問題類似的問題表明grub-mkconfig幫助程式腳本存在已知問題。這是 2014 年的事情,所以我認為我的問題不太可能是相同的,但我遵循了那裡的最佳答案。建議執行以下操作:

剛才遇到了同樣的問題,並找到了另一個解決方案。基本上,它涉及使主機/run目錄可供來賓使用。

首先,我們將/run其安裝在訪客可以訪問的位置。我假設您的安裝分割區安裝在/mnt.

mkdir /mnt/hostrun
mount --bind /run /mnt/hostrun

然後,我們chroot進入客人,並將我們的主機安裝/run/lvm在客人的中/run

arch-chroot /mnt /bin/bash
mkdir /run/lvm
mount --bind /hostrun/lvm /run/lvm

然後您就可以執行grub-mkconfig並且grub-install不會出現任何 LVM 錯誤。如果您使用 LVM 進行安裝,這也會使命令發揮作用,這是值得的。

完成後,請記得/run/lvm在退出 chroot 之前先卸載。

這樣做實際上消除了我的fails to connect to lvmetad錯誤,但將其替換為/dev/sdx not initialized in UDEV.該指令仍然會產生一個grub.cfg沒有選單項目的選單。

我可以從筆記型電腦的「F12啟動時錘擊」功能表中選擇 Windows 啟動管理器來進入 Windows。

答案1

出現該問題只是因為您正在arch-chroot使用os-prober.解決我的問題的是:

  • grub.cfg如果您尚未備份,請備份目前的。
  • 消除os-proberpacman -R os-prober或者你可以禁用它
  • 跑步grub-mkcondig
  • 重新啟動進入 Arch
  • 安裝os-prober
  • grub-mkconfig再次運行

答案2

我有同樣的問題。這是一篇舊帖子,但我會發布我的解決方法,以防它對某人有幫助。

像您一樣,我有一個完整的備份,包括一個工作grub.cfg文件。我從舊文件中提取了所需的選單條目grub.cfg並將它們添加到/etc/grub.d/40_custom.接下來我重新運行

grub mkconfig -o /boot/grub/grub.cfg

現在一切都很好。

os-prober是一個低優先順序的便利項目,並不是真正必要的。就我個人而言,我不會花太多時間讓它發揮作用。這是個人選擇。有些人喜歡嘗試解決此類問題,我感謝他們的努力,但其他人需要他們的系統進行實際工作,有時間限制,並且需要啟動和運行。

最終這個問題將透過軟體或文件解決。如果您對如何在文件中設定選單項目有疑問40_custom,您可以透過網路搜尋找到大量範例。

相關內容