![在恢复模式下进行 grub 安装时是否需要 chroot?](https://linux22.com/image/125013/%E5%9C%A8%E6%81%A2%E5%A4%8D%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%BF%9B%E8%A1%8C%20grub%20%E5%AE%89%E8%A3%85%E6%97%B6%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%20chroot%EF%BC%9F.png)
只是想了解以供理解。当您在从恢复 CD 执行 grub-install 时无论如何都可以使用 grub-install 执行 --root-directory 或 --boot-directory 或 --efi-directory 操作时,chroot 的相关性是什么?或者你可以使用其中一个或?
答案1
我可能是错的,但我认为旧版本的 grub-install 不允许指定引导目录,因此不需要 chroot。我从未在较新的版本中使用过 chroot
答案2
是的,这是必要的。
grub 的更新需要同时更新 中引导时加载的模块/boot/grub
和 grub 程序本身的运行模块(至相同版本)/usr/lib/grub/
。
只有引导加载的模块也可以通过引导目录的规范进行更新grub-install
,但不能更新 中的模块/usr/lib/grub/
。
要更新,/usr/lib/grub/
需要安装正确的文件系统,并且 chroot 允许对其进行正确的访问。然后执行grub-update
.
编辑
请理解,当使用笔式驱动器系统时(因为系统无法启动),它带有自己的 grub 版本以及 、 和 中的/usr/lib/grub/
模块。如果不执行 chroot,这些模块将被复制到其中。此类模块的版本可能与从 MBR(或 UEFI)引导的 grub 不同步。/etc/grub.d
/etc/default/grub
/boot/grub
使所有 grub 部分同步的唯一安全方法是 chroot 到要引导的系统。