我在重新安装时遇到了问题架构Linux在与 Windows 10 双重启动的计算机上。
由于各种不相关的原因,我决定备份旧的 Arch Linux 安装中的所有内容并重新开始。我在 USB 上有 Arch Linux 实时媒体,所以我继续从它启动(在UEFI),格式化我的 Linux 分区并完成 Arch Linux 安装指南。
一切似乎都工作正常,直到我到达“安装引导加载程序”部分。我并不是 100% 确定在这里要做什么,因为我之前使用的初学者指南已被删除,取而代之的是(非常非常简短的)安装指南。
我知道我的电喷分区已经包含了它所需的所有 GRUB 内容,但我认为需要对其进行更改才能进行新安装。
- 我删除了
/boot/EFI/grub.efi
存根,并重命名/boot/grub/
为/boot/grub.bak
. - 我跑了
使用和(我的 EFI 分区的安装点) 运行pacman -S grub os-prober
grub-install
arch 安装指南中的命令,然后运行target=x86_64-efi
directory=/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-prober
(pacman -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
,您可以通过网络搜索找到大量示例。