これは本当に私を落ち込ませています。 GentooとUbuntuがあり、どちらもGrub2を使用しています。 Gentooには専用の/boot
パーティションがありますが、Ubuntuにはありません。 Gentooの/etc/grub.d/40_custom
にmenuentry
があり、Ubuntuを起動できます(Ubuntuは問題なく起動します)。
UbuntuにはGrubが付属しているため、ルート、カーネル、initrdなどを設定するエントリを維持するのではなく、Grubにチェーンロードしたいと考えています。これは私がチェーンローダー用に持っているものです(Ubuntuは/dev/sda4
にあり、そこにGrubをすでにインストールしています):
menuentry 'Chainloader' {
insmod chain
set root=(hd0,4)
chainloader +1
}
error: Invalid signature
が得られ、利用できる解決策は見つかりませんでした。誰かが何かを指摘できますか?
これは</dev/sda4 head -c 512 | hd
の結果です
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
これはfdisk -l
の結果です。 /dev/sda1
はGentooの/boot
で、Gentooは/dev/sda2
にあり、Ubuntuは/dev/sda4
にあります。 Ubuntuの/boot
も/dev/sda4
に入っています。
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe001152b
Device Boot Start End Blocks Id System
/dev/sda1 1 9 72261 83 Linux
/dev/sda2 10 13064 104864287+ 8e Linux LVM
/dev/sda4 * 18152 19457 10490445 83 Linux
grub-install /dev/sda4 --no-floppy --force
にエラーはありません
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
あなたはGRUB2からGRUB2をチェーンロードすることができます、私はあなたが説明した方法でそれを試してみてそれが機能しました。ただし、提供された情報により、ブートイメージがディスクのMBRに埋め込まれていないように見えます(または、すべてゼロではない可能性があります)。
私はこれを試しますが、UbuntuのGRUB2を正確に使用しているわけではありません(構成ファイルだけです)。 Ubuntu構成ファイルをロードするGentoo GRUB2構成ファイルにメニューエントリを作成できます。これを行うには、2つの方法があります。
私が使用するものは、normalコマンドを使用することです。これにより、通常モードでロードする構成ファイルを指定できます。このルートを使用する場合、normal_exitと呼ばれるコマンドがあり、Ubuntu構成にカスタムアイテムとして追加して、 Gentooの設定。
もう1つのオプションは、configfileコマンドで、ロードする代替構成ファイルを指定できます。ただし、このオプションを「取り消す」のは難しいようです。
これらのコマンドの詳細については、 ここ を参照してください。
起動プロセスの最初の部分は、ハードドライブの最初のセクターからコードをロードすること、いわゆる マスターブートレコード(MBR) で構成されます。通常、Grubはこの最初のハードドライブセクターに書き込まれ、/ bootを保持するパーティションの最初のセクターには書き込まれません。ただし、これは通常、Linuxのインストール中に変更できますが、最近のインストールルーチンでは、多くの場合、これは非表示になっています。
/ dev/sda4にGrubがインストールされていると言いますが、設定は正しく、投稿したエラーメッセージは、Grubがチェーンロードするパーティションに正しくインストールされていない可能性があることを示しています。 Gentooを起動してから、Ubuntuパーティションにchrootする必要があります。/bootがGentooではなくUbuntu-/bootを正しくポイントしていることを確認してください!次に、Grub 2をUbuntu-Partition/dev/sda4の最初のセクターにインストールします:grub-install /dev/sda4 --no-floppy
。
いつものように、MBRとパーティションをいじるときは、開始する前に、機能する最新のバックアップがあることを確認してください。