Linux(カーネル)は、ブートパーティションの数を気にしません。ディスクからカーネルをロードするブートローダ(例えばの仕事であるgrub
、grub2
、lilo
)およびこれらのツールは、カーネルが配置されるかもしれない場所の数を気にしないでください。彼らは特定の場所のみを気にします。
例として、私のブートパーティションはです/dev/md1
。これは、物理パーティション/dev/sde1
とに支えられたmdadm RAIDミラー/dev/sdf1
です。必要に応じて、これらを個別にマウントすることができます。そのため、技術的には2つのブートパーティションがあると見なされますが、同じデータが含まれているはずです。
私にとって/ bootに2つのパーティションがあることは可用性の問題ですが、同じように/ bootパーティションが異なる場合もあります。次のステップは、ブートローダーがどのように知るかです。方法は次のとおりです。
menuentry 'Linux 3.10.17 (sde) kernel-3.10.17-g' {
root=hd0,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
menuentry 'Linux 3.10.17 (sdf) kernel-3.10.17-g' {
root=hd1,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
これはgrub2
構成からの抜粋であり、唯一の違いはroot=hd0,1
、root=hd1,1
そのエントリがどのブートパーティションを参照するかを確立することです。
ここで何が起こっているのかを理解できるように、ブーツを歩きます。
- BIOSはMBRをブートボリュームから読み取り、ブートローダーにジャンプします
- ブートローダー(例:)
grub2
は、カーネルを含むデバイスとパーティションを認識するように設定されています。Grub2はこのパーティションに直接アクセスし、カーネルをメモリにロードします。
- 次に、ブートローダーがカーネルにジャンプし、カーネルがマシンを起動します。
ブートローダーはあなたが持っているブートパーティションの数を気にしません、それはそれらがどこにあるかを気にするだけであり、あなたはそれにその情報を伝えなければなりません。
カーネルは、ブートパーティションがいくつあるかを気にしません。これは、ブートパーティションを表示する必要がないためです(たとえば、新しいカーネルを追加する場合にのみ使用可能にする必要があります)。
/boot
はルートパーティションにマウントされたディレクトリを参照していませんか?