Linux (der Kernel) ist es egal, wie viele Boot-Partitionen Sie haben. Den Kernel von der Festplatte zu laden ist die Aufgabe des Bootloader (zB grub
, grub2
, lilo
) und diese Tools auch über die Anzahl der Stellen ist es egal , ein Kernel befinden könnte. Sie kümmern sich nur um den spezifischen Ort.
Als Beispiel ist meine Boot-Partition /dev/md1
ein MDADM-RAID-Spiegel, der von den physischen Partitionen /dev/sde1
und unterstützt wird /dev/sdf1
. Ich kann diese einzeln mounten, wenn ich wollte, und als solche zählt dies technisch als zwei Boot-Partitionen, obwohl sie die gleichen Daten enthalten sollten.
Zwei Partitionen für / boot für mich zu haben, ist ein Verfügbarkeitsproblem, aber es können auch unterschiedliche / boot-Partitionen sein. Der nächste Schritt ist, woher weiß der Bootloader? Hier ist, wie:
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
}
Dies ist ein Auszug aus einer grub2
Konfiguration , und Sie werden bemerken , dass die einzigen Unterschiede sind root=hd0,1
und aus root=hd1,1
denen sich die Boot - Partition , dass Eintrag Referenzen.
Nun, um Sie durch einen Stiefel zu führen, damit Sie verstehen können, was hier vor sich geht.
- Das BIOS liest den MBR vom Boot-Volume und springt zum Bootloader
- Der Bootloader (z. B.
grub2
) ist so konfiguriert, dass er weiß, welches Gerät und welche Partition Ihren Kernel enthält. Grub2 greift direkt auf diese Partition zu und lädt Ihren Kernel in den Speicher.
- Ihr Bootloader springt dann in den Kernel und der Kernel bootet Ihren Computer.
Dem Bootloader ist es egal, wie viele Boot-Partitionen Sie haben, es ist nur wichtig, wo sie sich befinden, und Sie müssen ihm diese Informationen mitteilen.
Dem Kernel ist es egal, wie viele Boot-Partitionen Sie haben, da er sie nie sehen muss (Sie müssen sie nur zur Verfügung haben, um beispielsweise neue Kernel hinzuzufügen).
/boot
nicht auf ein Verzeichnis, das auf der Root-Partition gemountet ist?