![在 Debian VM 中更新 grub2](https://linux22.com/image/1299456/%E5%9C%A8%20Debian%20VM%20%E4%B8%AD%E6%9B%B4%E6%96%B0%20grub2.png)
我在 Xen 下运行一系列 debian 服务器虚拟机。我使用 pygrub,因此内核和 initrd 位于虚拟机本身内。
我想继续使用 debian 通过内核更新提供的自动 grub.cfg 生成功能,但是我需要对其进行调整,以便它不会尝试将 grub img 安装到引导扇区中。我需要它做的只是生成 grub.cfg,而不是尝试安装引导加载程序。
当它尝试安装 grub.img 时,它会失败,因为它没有办法做到这一点,因此它成为一个无法解决的 apt 错误。这是因为 VM 中定义的分区本身就是 LVM 卷,因此没有这样的引导扇区:
disk=['phy:/dev/raid5/dl-boot,xvda1,w', 'phy:/dev/raid5/dl-root,xvda2,w']
/etc/default/grub 中似乎没有可用的选项来关闭 grub-install?
答案1
事实证明这是 zz-update-grub 的问题。它应该尝试将 img 安装到物理磁盘引导扇区,如果物理磁盘不存在,则恢复到引导分区(我想象的正是针对这种情况)。
虽然上次我测试时它没有这样做,但现在却这样做了,所以这可能是最近作为一项功能或一个错误修复添加的。
升级到较新版本的 grub-pc 可以解决该问题。