GPT 上の他の Grub (Fedora、Debian) に GRUB2 チェーンローダーを設定する方法

GPT 上の他の Grub (Fedora、Debian) に GRUB2 チェーンローダーを設定する方法

GPT パーティション テーブルを持つディスクに別の GRUB を (チェーン) ロードする専用の GRUB2 をセットアップしようとしています。

関連するパーティション:

  • /dev/sda1 BIOS_ブート
  • /dev/sda2 ブート (ext2)
  • /dev/sda3 FEDORA (ext4)
  • /dev/sda6 デビアン (ext4)

まず、/dev/sda2 をブート パーティションとして使用して Fedora をインストールしました。次に Debian をインストールしました。Debian インストーラーは Fedora インストールを認識し、それをブート エントリとして追加し、その GRUB を MBR にインストールしました。これは今のところは機能しますが、Debian の更新ごとにブート構成が変更され、Fedora エントリが削除される (試しました) 可能性があり、その逆もあるため、かなり面倒です。そのため、両方のシステムに独自のブート ローダーと、どちらかをロードする 1 つのメイン ブート ローダー (/dev/sda2 に常駐可能) を用意する必要があります。

私が試したのはこれです:

  • /dev/sda2 からすべてを /dev/sda3/boot に移動しました
  • Fedora の /boot マウント ポイントを削除しました (そのため /dev/sda2 は使用されなくなりました)
  • ライブ Linux から、GRUB2 を MBR にインストールしました (grub-install --boot-directory=sda2 /dev/sda)
  • menu.lst を書きました:
    • タイトル フェドラ
    • ルート (hd0,2)
    • チェーンローダー +1
    • (再び、Debian の場合)
  • それをgrub.cfgスクリプト(grub-menu2cfgなど)に変換しました
  • 起動時に、実際に「Fedora」(および「Debian」)のGRUB2メニューが表示されました
  • いずれかを選択する場合:
    • エラー: 無効な署名
  • あらゆる種類のライブ Linux システムから「grub-install /dev/sda6」(および ...sda3) を実行しましたが、すべて別のエラー メッセージが表示されて失敗しました (Debian インストーラーの場合は、まったく説明がありませんでした)
  • チェーンローダーの行に --force を追加しました。これで「ロード中」と表示され、その後再起動します。
  • たくさんのハウツーを見つけたが、どれも私には役に立たないようだ

編集:
この(かなり広範囲にわたる)質問を忘れていました。

私の記憶が確かなら、ブートローダーを動作させるために、別の Fedora インストールからいくつかのファイルを見つけてコピーしました。さらに、現在の Linux イメージへのシンボリックリンクを作成し、それを最初のメインの GRUB 構成に配置したので、常にこの特定のカーネルが起動します。

この質問は、同様の問題を抱えている人にとって何ら価値のあるものではないと思うので、おそらく削除される可能性があります。

答え1

外付け SSD でも同様の問題が発生しています。内部ディスクからのみ起動できます。外付けディスクが接続されていないとシステムは起動しません。

私は bootinfoscript を見つけて、面白い出力をいくつか取得しました (ここに投稿するほどのものではありません) - しかし、少なくとも私の考えと grub2 の考えがまったく異なるという手がかりは得られました。

おそらくこのツールはあなたにとって役に立つでしょう。

http://sourceforge.net/projects/bootinfoscript/

関連情報