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,您可以通过网络搜索找到大量示例。

相关内容