it-swarm-ja.tech

2つのGrub2インストールをチェーンロードする

これは本当に私を落ち込ませています。 GentooとUbuntuがあり、どちらもGrub2を使用しています。 Gentooには専用の/bootパーティションがありますが、Ubuntuにはありません。 Gentooの/etc/grub.d/40_custommenuentryがあり、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.
14
phunehehe

あなたはGRUB2からGRUB2をチェーンロードすることができます、私はあなたが説明した方法でそれを試してみてそれが機能しました。ただし、提供された情報により、ブートイメージがディスクのMBRに埋め込まれていないように見えます(または、すべてゼロではない可能性があります)。

私はこれを試しますが、UbuntuのGRUB2を正確に使用しているわけではありません(構成ファイルだけです)。 Ubuntu構成ファイルをロードするGentoo GRUB2構成ファイルにメニューエントリを作成できます。これを行うには、2つの方法があります。

私が使用するものは、normalコマンドを使用することです。これにより、通常モードでロードする構成ファイルを指定できます。このルートを使用する場合、normal_exitと呼ばれるコマンドがあり、Ubuntu構成にカスタムアイテムとして追加して、 Gentooの設定。

もう1つのオプションは、configfileコマンドで、ロードする代替構成ファイルを指定できます。ただし、このオプションを「取り消す」のは難しいようです。

これらのコマンドの詳細については、 ここ を参照してください。

4
silvein

起動プロセスの最初の部分は、ハードドライブの最初のセクターからコードをロードすること、いわゆる マスターブートレコード(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とパーティションをいじるときは、開始する前に、機能する最新のバックアップがあることを確認してください。

3
fschmitt