使用 MD RAID 将 grub 升级到 grub2

使用 MD RAID 将 grub 升级到 grub2

我有一台运行 Debian 6 的机器。由于最近的一些变化,我尝试升级到 Grub2(是的,默认情况下安装了 grub legacy)。一切都很顺利(链式加载、重新启动),直到我开始“从 grub legacy 升级”。该机器有 2 个硬盘,其中包含两个软件 raid1 - /dev/md0,一个小硬盘包含 /boot 和 /dev/md1,使用剩余容量。

Parted 显示:

Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      512B    512MB   512MB   primary  ext2            raid
 2      513MB   2560MB  2047MB  primary  linux-swap(v1)
 3      2560MB  954GB   951GB   primary  ext3            raid

对于第二个磁盘:

Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      512B    512MB   512MB   primary  ext2            raid
 2      513MB   2560MB  2047MB  primary  linux-swap(v1)
 3      2560MB  954GB   951GB   primary  ext3            raid

“upgrade-from-grub-legacy”的对话框显示:

[ ] /dev/sda (1000204 MB; Hitachi_HDS721010CLA332)
[ ] /dev/sdb (1000204 MB; Hitachi_HDS721010CLA332)
[ ] /dev/md0 (511 MB; ???)
[ ] /dev/md1 (951308 MB; ???) 

但无论我选择哪一个,它都无法说:

/usr/sbin/grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is required when the root device is on a RAID array or LVM volume.

据我从各种帖子猜测,某处应该有一个 boot_grub 标志。

我可以在当前配置中使用 Grub2 吗?如果可以,如何使用以及在当前阶段重新启动是否安全?

答案1

好的,我明白了。

问题是 grub2 需要空间来保存 stage2 加载器 - 但在我的配置中,没有空间。

解决方案是使用 resize2fs、parted 和 mdadm 从 RAID 中一次取出一个磁盘,缩小两个磁盘上的分区 1。

我缩小了分区 1 前面的 16MB,重试了“upgrade-from-grub-legacy”,安装到 /dev/sda 和 /dev/sdb,因为机器可以从其中任何一个启动。一切顺利,重新启动 - 就完成了。

所以,总结一下:是的,我可以使用 Grub2,但我必须重新排列分区以便为 stage2 腾出空间。是的,只要“upgrade-from-grub-legacy”尚未完成,重新启动就是安全的,因为带有 grub1 的 chainloader 仍在原位并正常工作。

相关内容