Çekirdeğin Yüklenmesi ve Boot Seçenekleri
Önyükleyici (bootloader), firmware'den kontrolü aldıktan sonraki ana görevi, işletim sistemi çekirdeğini (kernel) ve başlangıç için gerekli olan başlangıç RAM dosya sistemini (initramfs) belleğe yüklemektir.
Çekirdek İmajı (Kernel Image)
Konum: Linux çekirdeği, genellikle
/boot
dizini altında sıkıştırılmış bir dosya olarak bulunur. Dosya adı dağıtıma ve sürüme göre değişir, ancak yaygın isimlervmlinuz-<sürüm>
veyabzImage-<sürüm>
şeklindedir (örn./boot/vmlinuz-6.1.0-18-amd64
).İşlevi: Çekirdek, işletim sisteminin kalbidir. Donanımı yönetir, işlemleri zamanlar, belleği yönetir ve sistem çağrıları aracılığıyla kullanıcı alanı (user space) programlarına hizmet verir. Önyükleyici tarafından belleğe yüklenir ve çalıştırılır.
Başlangıç RAM Dosya Sistemi (initrd / initramfs)
Konum: Çekirdek imajı gibi, genellikle
/boot
dizini altında bulunur. Dosya adıinitrd.img-<sürüm>
veyainitramfs-<sürüm>.img
gibi olabilir (örn./boot/initramfs-6.1.0-18-amd64.img
).İşlevi: Çekirdek başlatıldıktan hemen sonra, ancak gerçek kök dosya sistemi (
/
) bağlanmadan önce, bellekte (RAM) geçici bir kök dosya sistemi olarak kullanılır. Temel amacı, gerçek kök dosya sistemini bağlamak için gerekli olan modülleri ve araçları içermektir. Bunlar şunları içerebilir:Disk denetleyici sürücüleri (SATA, NVMe, SCSI vb.).
Dosya sistemi sürücüleri (ext4, xfs, btrfs vb.).
Mantıksal Birim Yönetimi (LVM) veya yazılımsal RAID araçları ve modülleri.
Şifreli diskleri açmak için gerekli araçlar (cryptsetup).
Ağ sürücüleri (ağ üzerinden boot yapılıyorsa).
Oluşturulması: Initramfs, genellikle çekirdek kurulduğunda veya güncellendiğinde otomatik olarak sisteme özgü olarak oluşturulur. Bu işlemi yapan araçlar dağıtıma göre değişir:
mkinitrd
(Eski RHEL/CentOS)dracut
(Modern RHEL/CentOS/Fedora)mkinitcpio
(Arch Linux)update-initramfs
(Debian/Ubuntu)
initrd vs initramfs:
initrd
(initial RAM disk) daha eski bir yöntemdi ve sıkıştırılmış bir dosya sistemi imajı (örn. ext2) olarak yüklenirdi.initramfs
(initial RAM filesystem) ise daha modern bir yöntemdir ve sıkıştırılmış bircpio
arşivi olarak yüklenir. Daha esnektir ve genellikle daha az bellek kullanır. Günümüzdeki çoğu sisteminitramfs
kullanır.
Önyükleyici Yapılandırması ve Menüsü
Önyükleyici (örn. GRUB, systemd-boot), hangi çekirdek ve initramfs dosyasını yükleyeceğini, hangi çekirdek parametrelerini geçeceğini yapılandırma dosyasından okur.
GRUB 2: Ana yapılandırma
/boot/grub/grub.cfg
dosyasındadır. Bu dosya genellikleupdate-grub
veyagrub-mkconfig -o /boot/grub/grub.cfg
komutları tarafından/etc/default/grub
ve/etc/grub.d/
altındaki betikler kullanılarak otomatik olarak oluşturulur.systemd-boot: Yapılandırma EFI Sistem Bölümü (ESP) içindedir.
/boot/loader/loader.conf
genel ayarları,/boot/loader/entries/
altındaki.conf
dosyaları ise her bir önyükleme girdisini (çekirdek, initramfs, parametreler) tanımlar.
Sistem açılırken, önyükleyici genellikle bir menü gösterir. Bu menü şunları sağlar:
Farklı işletim sistemleri veya çekirdek sürümleri arasında seçim yapma.
Belirli bir önyükleme girdisi için çekirdek parametrelerini geçici olarak düzenleme (örn. tek kullanıcı moduna geçmek için
single
veyainit=/bin/bash
eklemek).Belirli bir süre (timeout) sonunda varsayılan girdiyi otomatik olarak başlatma.
Yükleme Süreci
Önyükleyici, yapılandırmasına göre seçilen (veya varsayılan) çekirdek imajını ve ilgili initramfs dosyasını diskten okuyarak belleğe (RAM) yükler.
Önyükleyici, yapılandırmada tanımlanan veya menüden eklenen çekirdek parametrelerini hazırlar.
Önyükleyici, kontrolü belleğe yüklediği çekirdeğin başlangıç noktasına devreder ve çekirdek parametrelerini iletir.
Çekirdek çalışmaya başlar, initramfs'i bağlar ve init sürecini başlatmak için gerekli adımları atar.
Last updated