Saya tertarik untuk mempelajari tentang bagaimana Linux menangani partisi boot terpisah. Saya tidak tertarik untuk benar-benar melakukan ini, tetapi saya ingin tahu bagaimana ini bekerja di bawah tenda.
Pertimbangkan hard drive sda
, yang memiliki dua partisi sda1
dan sda2
. Katakanlah itu sda2
adalah root
partisi /
yang berisi OS Linux.
Pemahaman saya adalah bahwa bootloader GRUB2
, sudah terpasang ke /boot
. Ketika direktori /boot
berada di partisi yang terpisah sda2
, bagaimana ini bisa terjadi sebelum di /
-mount?
Bagaimana interaksi antara BIOS, rekaman boot Master dan GRUB (atau file /boot
) berhasil terjadi dalam kasus ini? Apakah data dalam /boot
sebenarnya tidak dipasang ke sistem /
file pada tahap awal ini?
Catatan: pertanyaan ini berkaitan dengan pemasangan partisi root, tetapi tidak membahas partisi boot terpisah.
/boot
tidak merujuk ke direktori yang dipasang di partisi root?run-init
yang menghapus semua file di initramfs, dan kemudian chroot ke sistem file root.UEFI
semakin banyak popurlar ;-) @strugeeSaya rasa pemahaman Anda tidak benar di sini. Dari halaman Wikipedia GNU GRUB :
kutipan
Dalam GRUB versi 2 terjadi hal berikut:
kutipan
CATATAN: Ketika Anda melihat menu GRUB2 khas tempat Anda memilih OS / Kernel mana yang akan di-boot, Anda merujuk
/boot/grub
direktori sistem pada titik ini.Referensi
sumber
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:
Ini adalah kutipan dari
grub2
konfigurasi dan Anda akan perhatikan bahwa satu-satunya perbedaan adalahroot=hd0,1
danroot=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.
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 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).
sumber