Linux (kernel) tidak peduli berapa banyak partisi boot yang Anda miliki. Memuat kernel dari disk adalah tugas dari bootloader (mis grub
. grub2
, lilo
) Dan alat-alat ini juga tidak peduli dengan jumlah lokasi yang mungkin ditemukan oleh kernel. Mereka hanya peduli dengan lokasi spesifik.
Sebagai contoh, partisi boot saya adalah /dev/md1
, yang merupakan mirror RAID mdadm yang didukung oleh partisi fisik /dev/sde1
dan /dev/sdf1
. Saya dapat me-mount ini secara individual jika saya mau dan karena itu secara teknis ini dianggap memiliki dua partisi boot, meskipun mereka harus berisi data yang sama.
Memiliki dua partisi untuk / boot untuk saya adalah masalah ketersediaan, tetapi keduanya bisa sama / partisi boot. Langkah selanjutnya adalah bagaimana bootloader tahu? Begini caranya:
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
}
Ini adalah kutipan dari grub2
konfigurasi dan Anda akan perhatikan bahwa satu-satunya perbedaan adalah root=hd0,1
dan root=hd1,1
yang menentukan partisi boot mana yang menjadi referensi.
Sekarang untuk memandu Anda melalui boot sehingga Anda dapat memahami apa yang sedang terjadi di sini.
- BIOS membaca MBR dari volume boot dan melompat ke bootloader
- Bootloader (mis.
grub2
) Dikonfigurasi untuk mengetahui perangkat dan partisi mana yang berisi kernel Anda. Grub2 mengakses partisi ini secara langsung dan memuat kernel Anda ke dalam memori.
- Bootloader Anda kemudian melompat ke kernel dan kernel mem-boot mesin Anda.
Bootloader tidak peduli berapa banyak partisi boot yang Anda miliki, itu hanya peduli di mana mereka berada dan Anda harus memberi tahu informasi itu.
Kernel tidak peduli berapa banyak partisi boot yang Anda miliki, karena tidak perlu melihatnya (Anda hanya perlu membuatnya tersedia untuk menambahkan kernel baru misalnya).
/boot
tidak merujuk ke direktori yang dipasang di partisi root?