BIOSがあるが(U)EFIがないシステムでGPTパーティションテーブルを持つディスクを使用するにはどうすればよいですか?
3 TBドライブを備えたシステムがあります(他のドライブはなく、これはリモートマシンなのでここには選択肢がありません)明らかな理由でGPTを使用しています。 Ubuntu 12.04はシステムにブートストラップされており、これはこれまでのところ機能していました。ホストからターゲットシステムに/dev
、/proc
、/sys
をバインドマウントし、chroot
ingを実行した後、linux-image-server
をインストールしました。 /sbin/initctl
を/bin/true
としてリンクします。これはリモートマシンであるため、このすべてをSSH経由で行う必要があり、起動可能なCDなどはありません。ただし、失敗した場合はレスキューシステムを起動できます(PXE)。
これで、grub2
がシナリオをサポートすることになっていることがわかりましたが、私の人生ではインストール方法がわかりません。
ブート(およびルート)デバイスは/dev/md0
であり、/dev/sda1
と/dev/sdb1
で構成され、RAIDモード0です。/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.
このBIOSベースのシステムを適切に起動させるために、どのようにしてgrub2
をインストールできますか?
注:chroot
環境の内部で実行するか外部で実行するかは関係ありません。エラーと出力は同じです。 /dev
などを所定の位置にバインドマウントしたためと思われます。もちろん、コマンドライン(--root-directory=
なし)に対して適切な調整が行われています。
ディスクにbios_grubパーティションを作成する必要があります。これを行うには、parted
を使用し、パーティションにbios_grubフラグを設定します。 1 MiBで十分ですが、ディスクの下位2TiBにある必要があります。