web-dev-qa-db-ja.com

複数のgrub2ブートローダーをチェーンロードする

これがコンテキストです。4つのパーティションを含む1つのHDを備えたラップトップがあります。

  • Windowsの場合は2:(hd0,1)、(hd0,2)-> Windows7の場合
  • Linuxの場合は2:(hd0,3)、(hd0,4)-> Linuxの場合(論理パーティション)。

現在の「実際の」ブートローダー(つまりMBR)はWindowsのものです。背後では、特定の目的で grub2win を使用し、(hd0,3)上にあるgrub2をチェーンロードするために使用します。

これを行うためにgrub.cfgに追加したエントリは次のとおりです。

menuentry 'Chainloader 3' {
   insmod chain
   set root=(hd0,3)
   chainloader +1
}

不幸なことに、それを使おうとすると、「何もない」、エラーのない黒い画面が表示され、それ以上何をすべきか本当にわかりません。

fdisk -lの結果は次のとおりです。

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xa2c2c4f8

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   209717247   104857600    7  HPFS/NTFS/exFAT
/dev/sda2       209717248   420339711   105311232    7  HPFS/NTFS/exFAT
/dev/sda3       420341758   625141759   102400001    5  Extended
Partition 3 does not start on physical sector boundary.
/dev/sda5       420341760   615651327    97654784   83  Linux
/dev/sda6       615653376   625141759     4744192   82  Linux swap / Solaris
2
user65120

ヒント:

論理パーティションは常に5番から始まります。番号3と4をタイプミスしていないことを確認してください。おそらく、5と6である必要があります...または4つのプライマリパーティションがあります!

パーティション番号3(つまり、パーティション自体ではなく拡張定義)に他のグラブがあることを本当に確信していますか?おそらくパーティション番号5を参照しています。

Fdiskから、2つのプライマリパーティション(1と2)、拡張パーティション(3)と2つの論理パーティション(5と6)があることがわかります。

Extended自体にGrubがインストールされているのを見たことがありませんが、パーティションブートセクターにGrubがインストールされているのを見ました(あなたの場合、3ではなく5または6である可能性があります)。

別のヒント:

Grub2メニューで、jouは「c」キーを押してコマンドラインに移動し、コマンドlsを入力すると、表示されるパーティションやディスクなどの名前が表示されます。次に、それらに注意して、パターン(hd0,5)または(hd0、msdos5)または(hd0、gpt5)などを確認します。メニューに戻るには、キー「Esc」を押します。

「Linuxの場合は2:(hd0,3)、(hd0,4)-> Linuxの場合(論理パーティション)」と言っているので、数字の入力を間違えたと思います。ただし、fdiskは、プライマリパーティションが2つ(1と2)しかないことを示しています。また、パーティション番号3は拡張定義であり、ファイルシステムを配置できる場所ではありません。

だから多分あなたは言うでしょう(3&4の代わりに4&5):

Linuxの場合は2:(hd0,4)、(hd0,5)-> Linuxの場合(論理パーティション)。

それはタイプミスですか?または、論理パーティション定義が存在する拡張パーティションの最初のセクターを実際に参照しようとしていますか?最初に期待してください。そうしないと、論理パーティションの定義が破損し、アクセスできなくなります。運が良ければ、Grubインストーラーはその場所にインストールすることを許可しません。

あなたがあなたの質問を修正できることを願っています。

はい、Grubは複数のディスクにまたがるストライプLVM内にあるExt4内に常駐できます。また、チェーンの任意の部分に必要な数のLUKSを追加できます。 Grubはそのようなことには素晴らしいです。

つまり、grub.cfgファイルと残りのファイルはこの複雑なサンプルスキーム内にあります。

  • HDD0:プライマリパーティションはまったくありません。1つだけ拡張され、1つの論理にLUKS(キーA)があり、その中にLVM2定義があります。
  • HDD1:プライマリパーティションはまったくなく、1つだけ拡張され、1つの論理にLUKS(キーB)があり、その中にLVM2定義があります
  • HDD2:プライマリパーティションはまったくありません。1つだけ拡張され、1つの論理にLUKS(キーC)があり、その中にLVM2定義があります。
  • このようなLVM2はBIG仮想ディスクに結合(ストライプ)され、必要な数の論理ボリュームを持ちます(また、それらに対してLUKSを使用できます)。1つはGrubとそのファイル用です。

等.

注意:Grubが使用するリテラルがわからない場合は、コマンドラインに移動して(「c」キーを押す)、パラメーターなしでコマンドlsを使用してから、悪行税とその表示内容に注意して、メニューは「Esc」キーを使用するだけです。

これは、暗号化デバイス(LUKS)やLVMを使用する場合にも役立ちます。

2
Laura