Linux (jądro) nie dba o to, ile masz partycji rozruchowych. Załadowaniu jądra z dysku jest zadaniem bootloadera (np grub
, grub2
, lilo
) oraz narzędzia te również nie dbają o liczbie miejsc jądro może być zlokalizowane. Dbają tylko o konkretną lokalizację.
Na przykład moją partycją rozruchową jest /dev/md1
lustro RAID mdadm wspierane przez partycje fizyczne /dev/sde1
i /dev/sdf1
. Mogę montować je indywidualnie, jeśli chcę i jako takie technicznie liczy się to, że mam dwie partycje rozruchowe, chociaż powinny one zawierać te same dane.
Posiadanie dwóch partycji dla / boot jest dla mnie problemem związanym z dostępnością, ale mogą być równie różne partycje / boot. Następnym krokiem jest, skąd bootloader wie? Oto jak:
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
}
Jest to wyjątek od grub2
konfiguracji i będziesz pamiętać, że jedyne różnice są root=hd0,1
i root=hd1,1
które ustalają której partycji rozruchowej, która odwołuje wjazdowych.
Teraz poprowadzę Cię przez but, abyś mógł zrozumieć, co się tutaj dzieje.
- BIOS odczytuje MBR z woluminu rozruchowego i przeskakuje do bootloadera
- Program ładujący (np.
grub2
) Jest skonfigurowany tak, aby wiedzieć, które urządzenie i partycja zawiera twoje jądro. Grub2 uzyskuje bezpośredni dostęp do tej partycji i ładuje jądro do pamięci.
- Program ładujący następnie wskakuje do jądra, a jądro uruchamia maszynę.
Program ładujący nie obchodzi, ile masz partycji rozruchowych, zależy tylko na tym, gdzie się znajdują i musisz podać te informacje.
Jądro nie obchodzi, ile masz partycji rozruchowych, ponieważ nigdy nie musi ich widzieć (wystarczy mieć je na przykład w celu dodania nowych jąder).
/boot
nie odnosi się do katalogu zamontowanego na partycji głównej?