Arch boot process (Bosanski)

Related articles
Master Boot Record
GUID Partition Table
Unified Extensible Firmware Interface
mkinitcpio
init
systemd
fstab
Autostarting
Da bi se mogao bootati Arch Linux, potrebno je podesiti
boot loader
koji zna raditi sa Linuxom. Boot loader je odgovoran za učitavanje kernela i
inicijalnog ramdiska
prije započinjanja boot procesa. Procedura se razlikuje za
BIOS
i
UEFI
sisteme, detaljne instrukcije su date na ovoj ili na linkovanim stranicama.
Firmware tipovi
BIOS
BIOS
ili Basic Input-Output System (Osnovni ulazno-izlazni sistem) je prvi program(firmware) koji se pokreće kada se sistem uključi. U većini slučajeva, smješten je u flash memorije na matičnoj ploči i nezavisan od sistemskog skladišta.
UEFI
Unified Extensible Firmware Interface
ima podršku za čitanje tabele particija kao i fajl sistema. UEFI ne pokreće nikakav
boot kode iz Master Boot Recorda-a (MBR)
bilo da on postoji ili ne, umjesto toga bootanje se oslanja na boot entry-e unutar
NVRAM
-a.
UEFI specifikacije obavezuju podršku za
FAT12, FAT16 i FAT32
fajl sisteme (vidi
UEFI specifikacija verzija 2.8, sekcija 13.3.1.1
)),
ali drugi vendori mogu dodati podršku za dodatne fajl sisteme; npr, Apple
Mac
podržava (i po defaultu koriste) svoje HFS+ fajl sistem drivere. UEFI implementacija također podržava ISO-9660 za optičke diskove.
UEFI pokreće EFI aplikacija, npr
boot loadere
, boot menadžere,
UEFI shell
-ove itd. Ove aplikacije su obično spašene kao fajlovi u
EFI sistemskoj particiji
. Svaki vendor može spasiti svoje fajlove u EFI sistemsku particiju pod
/EFI/
vendor_naziv
folderom. Aplikacija može biti pokrenuta dodavanjem boot entry-a u NVRAM ili iz UEFI shella.
UEFI specifikacija također ima podršku za legacy BIOS bootanje sa svojim [[
Compatibility Support Module (CSM)
(Modul za podršku kompatibilnosti). Ako je CSM uključen po defaultu, UEFI će generisati CSM boot entry za sve drive-ove. Ako je CSM boot entry odabran da se sistem boota sa njega, UEFI-ov CSM će pokušati da boota sa drive-ovogo MBR bootstrap koda.
Inicijalizacija sistema
Pod BIOS-om
Sistem uključen,
power-on self-test (POST)
se izvršava.
Nakon POST-a, BIOS inicijalizira potrebni sistemski hardware za bootanje (disk, kontrolere tastature, itd.).
BIOS pokreće prvih 440 bajtova (
Master Boot Record-a bootstrap koda
) prvog diska u BIOS disk poretku bootanja.
Boot loaderova prva faza je u MBR boot kodu i zatim pokreće drugu fazu (ako je ima) sa:
sljedećeg disk sektora poslije MBR-a, tzv. post-MBR gap
volume boot record-a (VBR)
sa particije
BIOS boot particije
(
GRUB
na BIOS/GTP samo).
Aktuelni
boot loader
je pokrenut.
Boot loader zatim učitava operativni sistem za lančanim učitavanjem ili direktni učivanjem kernela operativnog sistema.
Pod UEFI-om
Sistem uključen,
power-on self-test (POST)
se izvršava.
UEFI inicijalizira hardware potreban za bootanje.
Firmware čita boot entry-e iz NVRAM-a da zaključi koju EFI aplikaciju da pokrene i odakle (npr. sa kojeg diska i koje particije).
Boot entry može jednostavno biti disk. U ovom slučaju, firmware traži
EFI sistemsku particiju
na tom disku i pokušava da nađe EFI aplikaciju u fallback boot putanji
\EFI\BOOT\BOOTX64.EFI
(
BOOTIA32.EFI
) na
sistemima sa IA32 (32-bit) UEFI
). Ovako radi bootabilni UEFI removable media.
Firmware pokreće zatim EFI aplikaciju.
Ovo može biti
boot loader
ili Arch
kernel
koristeći
EFISTUB
.
To može biti neka drugi EFI aplikacija, poput UEFI shella ili
boot menadžera
poput
systemd-boot
-a ili
rEFInd
-a.
Ako je
Secure Boot
uključen, boot process će verifikovati autentičnost EFI binary-a gledajući potpis.
Note
Neki UEFI sistemi se samo mogu bootati sa fallback boot putanje.
Višestruko bootanje u UEFI-u
Pošto svaki OS ili vendor može održavati svoje fajlove unutar
EFI sistemske particija
bez da utiče na druge, višestruko bootanje koristeći UEFI postaje stvar pokretanje druge EFI aplikacije koja odgovara boot loaderu toga operativnog sistema. Ovo uklanja potrebu za oslanjanjem na mehanizam
lančanog učitavanja
jednog
boot loadera
da se učita drugi OS.
Vidite i
Dual boot sa Windowsom
.
Boot loader
Boot loader je dio software pokrenut od strane
BIOS-a
ili
UEFI
-a. Odgovoran je za učitavanje kernela sa željenim
kernel parametrima
i
inicijalnim RAM diskom
bazirano na konfiguracijskim fajlovima. U slučaju UEFI-a, kernel može se direktno pokrenuti od strane UEFI-a koristeći EFI boot stub. Odvojeni boot loader ili boot menadžer može i dalje biti korišten za editovanje kernel parametara prije bootanja.
Note
Učitavanje
update-a mikro koda
zahtjeva podešavanja konfiguracije boot loadera.
[1]
Uporedba feature-a
This article or section needs expansion.
Reason:
Ako je
/boot
unutar nečega kompleksnijeg nego što je fajl sistem na particiji (npr. LUKS, RAID, LVM), boot loader treba driver i za te slojeve također. (Discuss in
Talk:EFI system partition#Preffered mount point for LVM users
)
Note
Boot loaderi trebaju samo da podržavaju fajl sistem na kojem se nalaze kernel i initramfs (fajl sistem na kojem je
/boot
).
Pošto je GPT dio UEFI specifikacije, svi UEFI boot loaderi podržavaju GTP diskove. GPT na BIOS sistemima je moguć korištenjem ili "hibridnog bootanja" sa
Hybrid MBR
ili novijim
GPT-only
protokolom. Ovaj protokol zna praviti probleme sa određenim BIOS implementacijama; vidite
rodsbooks
za detalje.
Metoda enkripcije spomenuta u podršci za fajl sistem je
filesystem-level encryption
(Enkripcija na nivou fajl sistema), ne utiče na
block-level encryption
.
Name
Firmware
Partition table
Multi-boot
File systems
Notes
BIOS
UEFI
MBR
GPT
Btrfs
ext4
ReiserFS
VFAT
XFS
EFISTUB
–
Yes
Yes
Yes
–
–
–
–
ESP only
–
Kernel preveden u EFI executable da se učita direktno iz
UEFI
firmware ili iz drugog boot loadera.
Clover
emulates UEFI
Yes
Yes
Yes
Yes
1
No
bez enkripcije
No
Yes
No
Fork od rEFIt-a modifikovan da pokreće
macOS na non-Apple hardware-u
.
GRUB
Yes
Yes
Yes
Yes
Yes
bez zstd kompresije
Yes
Yes
Yes
Yes
Na BIOS/GTP konfiguraciji zahtjeva
BIOS boot particiju
.
Podržava RAID, LUKS1 i LVM
rEFInd
No
Yes
Yes
Yes
Yes
1
bez: enkripcije, zstd kompresije
bez enkripcije
bez tail-packing feature-a
Yes
No
Podržava automatsko detektovanje kernela i parametara bez eksplicitne konfiguracije.
Syslinux
Yes
Parcijalno
Yes
Yes
Parcijalno
bez: multi-device volume-a, kompresije, enkripcije
bez enkripcije
No
Yes
MBR samo; bez prorijeđenih inode-ova
Bez podrške za određene
fajl sistem
feature.
[2]
Boot loader može samo pristupiti fajl sistemu na koji je instaliran.
[3]
systemd-boot
No
Yes
Manuelna instalacija samo
Yes
Yes
1
No
No
No
ESP only
No
Ne može pokrenuti binary-e iz particija mimo
ESP
.
GRUB Legacy
Yes
No
Yes
No
Yes
No
No
Yes
Yes
v4 only
Zamijenjen
sa
GRUB
-om.
LILO
Yes
No
Yes
No
Yes
No
bez enkripcije
Yes
Yes
Yes
Zamijenjen
zbog nekih limita (npr. sa Btrfs, GPT, RAID).
A
boot menadžer
. Može samo pokretati druge EFI aplikacije, npr, Linux kernel image buildan sa
CONFIG_EFI_STUB=y
i Windows
bootmgfw.efi
.
Vidite i
Uporedba boot loadera
.
Kernel
Kernel
je jezgro operativnog sistema. Radi na niskom nivou (
kernelspace
) gdje vrši interakciju između hardware-a na mašini i programa koji koriste hardware da se pokreću. Da se iskoristi CPU efikasno, kernel koristi scheduler da određuje koji task ima prioritet izvršavanja u datom trenutku, te tako kreira iluziju da se više taskova izvršava simultano.
initramfs
Nakon što
boot loader
učita
kernel (Bosanski)
i moguće initramfs fajlovu te izvrši kernel, kernel zatim raspakuje initramfs (inicijalni RAM fajl sistem) arhivu u (tada prazan) rootfs (inicijalni root fajl sistem, specifično ramfs ili tmpfs). Prvi ekstraktovani initramfs je onaj koji je ugrađen u kernel binary tokom buildanja kernela, zatim se eventualni drugi initramfs fajlovi ekstraktuju. Što znači da eksterni fajlovi sa istim imenom prepisuju one u ugrađenom initramfs-u. Kernel zatim izvršava
/init
(u rootfs-u) kao prvi proces.
Rani userspace
time je započeo.
Arch Linux koristi praznu arhivu kao ugrađeni initramfs (defaultno tokom buildanja Linuxa). Vidite
mkinitcpio
za više Arch specifičnih informacija o eksternom initramfs-u.
Svrha initramfs-a je da bootstrapa sistem do tačke gdje može da pristupi root fajl sistemu (vidite
FHS
za detalje). To znači da bilo koji moduli koji su potrebni za uređaje, poput IDE, SCSI, SATA, USB/FW (ako se boota sa eksternog uređaja) moraju se moći učitati iz initramfs-a ako nisu buildani u kernel; nakon što su odgovarajući kernel moduli učitani (eksplicitno koristeći program ili skriptu ili implicitno sa
udev
-om), boot proces se nastavlja. Iz ovog razloga, initramfs treba samo da sadržava module potrebne za pristup root fajl sistemu; ne treba da ima sve module koji će se koristiti. Većina modula će se kasnije učitati od strane udev-a, tokom init procesa.later on by udev, during the init process.
init proces
Na zadnjoj fazi ranog userspace-a, stvarni root je mountan i zamjenjuje inicijalni root fajl sistem.
/sbin/init
se izvršava, zamjenjujući
/init
proces. Arch koristi
systemd
kao defaultni
init
.
getty
init
poziva
getty
jednom za svaki
virtualni termina
(obično 6 ih ima), koji inicijalizira svaki tty i pita za username i lozinku. Nakon što su username i lozinka ukucani, getty ih provjerava gledajući u
/etc/passwd
i
/etc/shadow
te zatim poziva
login
. Alternativno, getty može pokrenuti display menadžera ukoliko postoji na sistemu.
Display menadžer
Display menadžer
može biti konfigurisan da zamijenit getty login prompt na tty-u.
Da bi se automatski inicijalizirao display menadžer nakon bootanja, potrebno je manuelno uključiti service unit-e sa
systemd
-om. Za više informacija vezanih za enablanje i startanje service unit-a, vidite
systemd#Using units
.
Login
login
program započinje sesiju za korisnika tako što podešava environment varijable i pokreće korisnički shell, bazirano na
/etc/passwd
.
login
program prikaziju sadržaj
/etc/motd
(
m
essage
o
f
t
he
d
ay) (poruka dana) nakon uspješnog logovanja, prije nego što izvrši shell. To je dobro mjesto za prikazati Uslove korištenja da se podsjete korisnici lokalnih polica ili bilo čega drugog što želite da im kažete.
Shell
Nakon što je korisnički
shell
pokrenut, obično se pokreće runtime konfiguracijski fajl, poput
bashrc
prije prikazivanja prompta korisniku. Ako je korisnički account podešen za
pokretanje X na loginu
, runtime konfiguracijski fajl će pozvati
startx
ili
xinit
.
GUI, xinit or wayland
xinit
pokreće korisnički
xinitrc
runtime konfiguracijski fajl, koji obično pokreće
window menadžera
. Nakon što korisnik završi i izađe iz window menadžera,
xinit
,
startx
, shell i login će se izgasiti u ovom redu, vraćajući se na
getty
.
Vidite i
Early Userspace in Arch Linux
Inside the Linux boot process
Wikipedia:Linux startup process
Wikipedia:initrd
Boot Linux Grub Into Single User Mode
NeoSmart: The BIOS/MBR Boot Process
Kernel Newbie Corner: initrd and initramfs
Rod Smith - Managing EFI Boot Loaders for Linux