![grub2 有多大?](https://linux22.com/image/716183/grub2%20%E6%9C%89%E5%A4%9A%E5%A4%A7%EF%BC%9F.png)
由于“Meltdown”,我正在将我们的 CentOS7-XEN-PV-DomUs 移至 HVM 模式。请参阅此处了解为什么我需要迁移到 HVM
这需要安装引导程序 - 在 PV-DomU 上是不必要的,因为它们使用皮格鲁布模拟 grub/grub2 启动过程。
有效的方法:通过 PXE 将 HVM DomU 引导到救援 CentOS7 映像,chroot 磁盘,安装 grub2。我无法从 Dom0 执行此操作 - 因为那是 SLES11 SP4 - 使用 grub,而不是 grub2。
我希望通过 dd 将 grub2 扇区从已转换的 VM 复制到仍需要此步骤的 VM,从而自动执行此操作。
问题:grub2 有多大 - 那么我需要复制多少字节?
我已经发现 62 个扇区(扇区大小为 512 字节)是不够的。
更新2018-01-22:第一个答案暗示了一个潜在的问题。
在我的场景中,您将拥有统一的磁盘布局,第一个分区相同,起始位置约为 9 MiB。/boot 位于该分区上。
我可以做我想做的事:
sfdisk -d ALREADYCONVERTEDDISK >oldpart.sfdisk
dd if=VM-DISK-WITH-GRUB2 of=NEWDISK bs=1M count=8
sfdisk ALREADYCONVERTEDDISK <oldpart.sfdisk
问题归结为:grub2?
答案1
您无法通过这种方式复制 GRUB2。
GRUB 代码的第一部分位于引导扇区,它也可能包含有关磁盘的元数据(分区表或文件系统元数据)。
由于这些引导的早期阶段必须在非常有限的代码可用空间下运行,因此它们不能包含文件系统驱动程序。因此,它使用嵌入式扇区列表进行加载。
这意味着复制的扇区必须位于目标磁盘上的完全相同的位置,并且该位置可能正在使用。即使该位置未被使用,文件系统也会认为这些扇区仍未使用,并最终覆盖您的引导扇区。
您可以通过复制整个磁盘映像(包括分区表直至整个 /boot 分区)来复制 GRUB2。但这样做实际上会删除目标磁盘上的内容。
如果您想在磁盘上安装 GRUB2 而不删除磁盘上的所有其他内容,则需要使用真正的安装程序。