Bootloader — qurilma ishga tushganda operatsion tizim yadrosi yoki asosiy firmware’ni xotiraga yuklab, boshqaruvni unga topshiradigan dastur.
Bootloader apparat yoqilgandan keyingi dastlabki bosqichlardan birida ishlaydi. Kompyuterda u UEFI yoki BIOSdan keyin, mikrokontrollerda esa to‘g‘ridan-to‘g‘ri reset vektoridan ishga tushishi mumkin.
Bootloaderning asosiy vazifasi kerakli image’ni topish, tekshirish, xotiraga joylashtirish va to‘g‘ri boshlang‘ich parametrlar bilan ishga tushirishdir.
Boot zanjiri
Oddiy kompyuter boot jarayoni:
Quvvat yoqiladi
↓
CPU reset
↓
UEFI yoki BIOS
↓
Bootloader
↓
Kernel
↓
Init tizimi
↓
Foydalanuvchi muhiti
Har bosqich keyingi bosqichni tayyorlaydi.
Birinchi bosqich
Eski BIOS tizimida diskning dastlabki sektoridagi kichik kod ishga tushirilgan. Bu joy juda kichik bo‘lgani sababli bootloader bir nechta bosqichga bo‘lingan.
Birinchi bosqich:
- keyingi kod joyini topadi;
- minimal disk o‘qish funksiyasidan foydalanadi;
- katta bootloader qismiga boshqaruv beradi.
UEFI tizimida bootloader odatda EFI System Partition ichidagi .efi executable fayl bo‘ladi.
Kernelni yuklash
Bootloader kernel image’ni xotiraga joylashtiradi.
U qo‘shimcha ravishda:
ni tayyorlaydi.
Kernel qayerda va qanday formatda joylashgani platformaga bog‘liq.
Initramfs
Linux boot jarayonida initramfs vaqtinchalik root filesystem beradi.
Unda:
- storage driver;
- filesystem modul;
- LVM;
- RAID;
- disk encryption;
- network boot script;
- root filesystemni topish vositalari
bo‘lishi mumkin.
Kernel haqiqiy root filesystemni topgach, initramfsdan asosiy tizimga o‘tadi.
Boot menu
Bootloader bir nechta tizim yoki kernel variantini tanlash menyusini ko‘rsatishi mumkin.
Misollar:
Default entry va timeout konfiguratsiyada belgilanadi.
Kernel command line
Bootloader kernelga matnli parametrlar uzatadi.
Misollar:
root=/dev/mapper/system
ro
quiet
console=ttyS0
init=/bin/sh
Bu parametrlar root disk, console, log darajasi va boot xatti-harakatini boshqaradi.
Noto‘g‘ri parametr kernel panic yoki root filesystem topilmasligiga sabab bo‘ladi.
UEFI bootloader
UEFI bootloader firmware service’laridan foydalanadi.
UEFI:
- filesystemdan fayl o‘qiydi;
- executable formatni yuklaydi;
- boot variable’larni boshqaradi;
- Secure Boot tekshiruvini bajaradi;
- boot device’larni tanlaydi.
EFI System Partition odatda FAT filesystem bilan formatlanadi.
Secure Boot
Secure Boot bootloader imzosini tekshiradi.
Ishonch zanjiri:
UEFI trust database
↓
Bootloader imzosi
↓
Kernel yoki keyingi loader
↓
Kernel modullari, siyosatga qarab
Imzo mos bo‘lmasa, firmware bootni rad etishi mumkin.
Chainloading
Bootloader boshqa bootloaderni ishga tushirishi mumkin.
Masalan, GRUB Windows Boot Manager’ga chainload qiladi.
Bu holatda birinchi bootloader ikkinchi tizimning ichki yuklash tafsilotini bilishi shart emas.
Embedded bootloader
Embedded qurilmada bootloader:
- flash image tekshiradi;
- firmware update qabul qiladi;
- serial console beradi;
- recovery mode;
- A/B slot;
- rollback;
- hardware initialization
vazifalarini bajarishi mumkin.
U-Boot embedded Linux tizimlarda keng tarqalgan misol.
Network boot
Bootloader tarmoqdan image yuklashi mumkin.
Texnologiyalar:
Bu disk o‘rnatmasdan OS deploy qilish, server provisioning va recovery uchun ishlatiladi.
A/B boot
Qurilmada ikki boot slot mavjud bo‘lishi mumkin.
Yangilanish faol bo‘lmagan slotga yoziladi. Bootloader yangi slotni sinaydi.
Agar tizim health checkdan o‘tmasa, oldingi slotga qaytadi.
Bu OTA update’da qurilmaning ishlamay qolish xavfini kamaytiradi.
Boot counter
Bootloader yangi image necha marta muvaffaqiyatsiz ishga tushganini hisoblaydi.
Belgilangan urinishdan keyin:
tanlanishi mumkin.
Konfiguratsiya
Bootloader konfiguratsiyasi quyidagilarni saqlaydi:
- default entry;
- timeout;
- kernel path;
- initramfs;
- command line;
- video mode;
- serial console;
- password;
- fallback.
Konfiguratsiya o‘zgarganda syntax va fayl yo‘llari tekshiriladi.
Xavfsizlik
Bootloaderga ruxsatsiz kirish hujumchiga kernel parametrini o‘zgartirish yoki boshqa image yuklash imkonini berishi mumkin.
Himoya:
- Secure Boot;
- boot menu paroli;
- firmware paroli;
- disk encryption;
- external bootni cheklash;
- signed update;
- TPM measured boot;
- debug portni o‘chirish.
Bootloader paroli disk ichidagi ma’lumotni o‘zi shifrlamaydi.
Diagnostika
Boot muammosida qaysi bosqichgacha yetgani aniqlanadi.
- firmware bootloaderni topdimi;
- boot menu chiqadimi;
- kernel yuklandimi;
- initramfs ishga tushdimi;
- root filesystem topildimi;
- init process boshlandimi.
Xabarlar:
No bootable device;grub rescue;kernel panic;unable to mount root fs
turli qatlamdagi muammoni bildiradi.
Tiklash
Bootloader buzilganda:
ishlatilishi mumkin.
Disk partition va boot entrylar o‘zgartirilishidan oldin ma’lumot backup qilinadi.
Bootloader va disk partitionlari
Bootloader disk partition jadvalini o‘qib, kernel va konfiguratsiya joylashgan filesystemni topadi. BIOS tizimida MBR va BIOS Boot Partition, UEFI tizimida esa GPT va EFI System Partition muhim bo‘lishi mumkin.
Disk klonlash yoki partition ko‘chirishdan keyin:
- UUID;
- filesystem identifikatori;
- boot entry;
- loader yo‘li;
- root parametr
moslashtirilmasa, bootloader menu chiqsa ham kernel root diskni topolmaydi.
Bootloader yangilanishi
Bootloader paketi yangilanganda disk yoki EFI partitiondagi executable ham yangilanishi kerak. Faqat konfiguratsiya faylini yangilash executable kodni almashtirmaydi.
Bir nechta disk mavjud tizimda qaysi diskdan firmware boot qilayotgani aniqlanadi. Yangilanish boshqa diskka yozilsa, eski bootloader ishlashda davom etishi mumkin.
Bog‘liq tushunchalar
UEFI, BIOS, GRUB, Kernel, Initramfs, Secure Boot, EFI System Partition, PXE, U-Boot, Chainloading