我正在尝试将 GRUB 从实时 USB 安装到另一个驱动器上。虽然grub-install
工作正常,grub-mkconfig -o /mnt/boot/grub/grub.cfg
(/mnt
作为我要安装的驱动器的安装点)不断返回错误:
/usr/bin/grub-probe: error: failed to get canonical path of `/'.
我在网上找到的建议建议update-grub
在 chroot 中运行可能会有所帮助,但会出现相同的错误。
我的问题有两个:
- 我该如何解决这个错误?说真的,我需要让它发挥作用
- (更重要的是)为什么这个解决方案可以解决问题吗?
第二部分很重要,因为如果这里有人解释导致此问题的机制,那么它将对调试很有用,从而在众所周知的解决方案不起作用的情况下允许进行更有意义的调试。
如果它对我的问题有意义,我安装的系统是 Void Musl 的实时 ISO,并且我要安装的系统是/
使用 LUKS 加密的 Void Musl 和加密的/boot
.
答案1
事实证明,Void 的 chroot 无法识别 chroot 内部的块设备。显然 Void 有一个单独的命令xbps-uchroot
可以正确处理这个问题。解决方案是使用xbps-uchroot
而不是普通的chroot
.