擦除的 MBR 上的 Grub2

擦除的 MBR 上的 Grub2

我正在尝试在虚拟机中的 puppet 上测试 grub2,其中一项测试是确保它仍然可以在擦除的 MBR 上运行。

所以我用以下命令擦拭 MBR:

dd if=/dev/0 of=/dev/vda bs=512 计数=1

然后我尝试安装 grub2

grub2 安装 /dev/vda

并得到

引导时 GRUB 无法读取路径“/boot/grub2”。安装是不可能的。正在流产。

如果我尝试安装 grub2 而不先擦除 MBR,它就可以正常工作。

有任何想法吗?

答案1

如果您查看第一个扇区中存储的内容(例如,在维基百科的MBR文章)你会发现你擦除了分区表。

如果没有分区表,您的/boot分区可能不再存在。

我建议您执行以下操作来保存和恢复它:

sfdisk -d /dev/vda > part-table
dd if=/dev/zero of=/dev/vda bs=512 count=1 # note, maybe want more than 1
sfdisk /dev/vda < part-table
grub2-install /dev/vda

请注意,grub 实际上占用了扇区 0 和扇区 1 的一部分 –n, 在哪里n比第一个分区的开头小一些数字。您可能还想擦除这些扇区。

相关内容