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

如何在具有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应该支持这个场景,但对于我的生活,我无法弄清楚如何安装它。

引导(和根)设备是/dev/md0 ,由RAID模式0下的/dev/sda1/dev/sdb1 /dev/md0安装在/target我正在运行:

 grub-install --root-directory=/target --no-floppy /dev/sda 

失败的是:

 /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. 

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

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

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