我一直从头开始关注稳定的 systemd Linux,并已完成最后一章,其中我们配置 grub 以使系统可启动。
所以我已经运行grub-install /dev/sda1
(/dev/sda1
是我的/boot
分区)并收到此错误:
grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
事实上/usr/lib/grub/
,我确实只有一个i386-pc
条目。
所以我尝试以此为目标重新运行命令并得到不同的错误:
(lfs chroot) root:/boot# grub-install /dev/sda1 --target i386-pc
Installing for i386-pc platform.
grub-install: warning: File system `fat' doesn't support embedding.
grub-install: error: embedding is not possible, but this is required for cross-disk install.
通常,我使用 systemd-boot,但是这个 LFS 系统中安装的 systemd 版本不包含它,而且我不喜欢升级它,所以我很想让 grub 工作。
这里发生了什么?我怎样才能开始解决这个问题?
答案1
我从头开始阅读了“使用 GRUB 设置引导过程”一节。底部的注释说“如果您的系统支持 UEFI 并且您希望使用 UEFI 启动 LFS,您应该跳过本页中的说明,但仍然可以学习 grub.cfg 的语法以及在文件中指定分区的方法此页面,并使用 BLFS 页面中提供的说明配置具有 UEFI 支持的 GRUB。”
https://www.linuxfromscratch.org/lfs/view/stable/chapter10/grub.html
因此,正如您所说,您是使用 UEFI 启动的,您应该遵循上面的说明。