使用 BIOS 设置但 GPT 分区表(由于 3 TB 磁盘)?

0xC*_*22L 3 server grub2 setup 12.04

如何在具有 BIOS 但没有 (U)EFI 的系统上使用带有 GPT 分区表的磁盘?

我有一个带有 3 TB 驱动器(没有其他驱动器,因为这是一台远程机器,我在这里没有选择)和一个​​ GPT 的系统,原因很明显。Ubuntu 12.04 正在被引导到系统上,并且到目前为止工作正常。现在,经过绑定安装/dev/proc/sys从主机到目标系统和chroot荷兰国际集团到它,我安装linux-image-server后就正常了(链接后/sbin/initctl/bin/true)。因为这是一台远程机器,所以我必须通过 SSH 完成所有这些操作,并且没有可启动的 CD 或任何东西。但是,如果失败,我可以启动到救援系统(PXE)。

现在我知道这grub2应该支持这个场景,但是对于我的生活,我无法弄清楚如何安装它。

引导(和根)设备将由RAID 模式 0/dev/md0组成/dev/sda1/dev/sdb1处于 RAID 模式 0。/dev/md0/target我正在运行的情况下安装:

grub-install --root-directory=/target --no-floppy /dev/sda
Run Code Online (Sandbox Code Playgroud)

失败了:

/usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; 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.
Run Code Online (Sandbox Code Playgroud)

那么如何grub2安装才能正确启动这个基于 BIOS 的系统呢?

注意:无论我是在chroot环境内部还是外部运行它都没有关系。错误和输出是相同的。可能是因为我绑定安装/dev等到位。当然,对命令行 (no --root-directory=) 进行了适当的调整。

psu*_*usi 6

您需要在磁盘上创建一个 bios_grub 分区。您可以使用parted并在分区上设置 bios_grub 标志来执行此操作。1 MiB 就足够了,但它需要在磁盘的较低 2TiB 中。