Section author: Vedran Miletić
Boot proces računala i učitavač GRUB¶
Boot proces¶
Boot proces računala počinje pritiskom na gumb (kako god on bio izveden) koji putem matične ploče uzrokuje uključivanje napajanja, koje zatim počinje isporučivati struju komponentama unutar računala. Inicijalizaciju komponenata računala vrši BIOS ili, kod novijih računala, UEFI firmware pa specijalno nakon inicijalizacije grafičkog procesora i njegovog podsustava za ekrane vidimo tekst ili logotip proizvođača na ekranu.
BIOS boot¶
Pokreće operacijski sustav s master boot recorda (MBR) ili bootabilnih particija odabranog diska na sustavu (optički mediji su također podržani kao mediji s kojih se može pokrenuti operacijski sustav, ali su standardi drugačiji). Korištenje MBR-a ograničava veličinu diska na 2 TiB, ali moguće je uvođenjem dodatne particije BIOS Boot zaobići to ograničenje i koristiti GUID Partition Table.
UEFI boot¶
Unified Extensible Firmware Interface (UEFI) je sučelje između firmwarea i OS-a
UEFI je modernija zamjena za BIOS
Može bootati s diskova većih od 2 TiB koji koriste GUID Partition Table (GPT)
Arhitektura neovisna o instrukcijskom skupu CPU-a
Mogućnost korištenja mreže bez pokretanja OS-a, e.g. “Check for firmware update on line”
Modularan dizajn
Nudi pokretanje imenovanih operacijskih sustava koje pronađe na sustavskim EFI particijama na diskovima; primjerice, boot menu ima u popisu
ubuntu
,Windows
iliFedora
umjestoSeagate 1 TB HDD
iliSamsung 256 GB M.2 SSD
.Omogućuje “Fast Boot” kod kojeg se inicijalizira samo dio uređaja unutar računala i specijalno samo onaj disk koji je nužan za pokretanje operacijskog sustava, što ubrzava boot proces.
Većina današnjeg UEFI hardvera nudi kompatibilnost s legacy BIOS-om pa mogu pokretati operacijske sustave koji ne poznaju UEFI.
Secure Boot¶
Ograničava pokretanje OS-a (ili bootloadera OS-a) samo na one u koje ima povjerenja
Standard razvijen na inicijativu Microsofta; Microsoft opravdava postojanje takve vrste ograničenja s ciljem sprječavanja pre-bootloader rootkita, od kojih su pojedini služili da sabotiraju mehanizam aktivacije Windowsa
Kod pokretanja provjerava potpis bootloadera
Ako je potpis dobar, firmware predaje bootloaderu kontrolu nad računalom
Ako potpis nije dobar ili ne postoji, pokretanje bootloadera se ne događa
Radi na temelju četiri baze ključeva
Baza potpisa (engl. signature database), db
Ključevi i hashevi kojima se vjeruje
Npr. Microsoft Windows Production PCA 2011, Microsoft Corporation UEFI CA 2011, Canonical Ltd. Master CA, …
Baza opozvanih potpisa (engl. revoked signature database), dbx
Ključevi i hashevi kojima se eksplicitno ne vjeruje
Ključ razmjene ključeva (engl. Key Exchange Key), KEK
Ključ kojim su potpisani softver koji mogu mijenjati db i dbx
Npr. Microsoft Corporation KEK CA 2011, HP CA, Lenovo CA, Toshiba CA, …
Ključ platforme (engl. Platform Key), PK
Ključ kojim je potpisan softver koji može mijenjati PK i KEK
Npr. HP CA, Lenovo CA, Toshiba CA, …
Secure Boot u praksi
Operacijski sustavi čiji bootloader je potpisan ključem Microsoft Corporation UEFI CA 2011:
Operacijski sustavi koji rade na podršci za Secure Boot
OEM-ovi NE MORAJU imati taj ključ u db-u
Microsoft može prestati potpisivati 3rd party binaryje kad god im to odgovara
Kratka povijest Secure Boota
2011. Microsoft priprema teren za izlazak Windowsa 8; za UEFI mode:
Certificirana mašina MORA imati Secure Boot uključen po defaultu
Certificirana mašina MORA imati Microsoftove ključeve u odgovarajućoj bazi
Kreće propaganda protiv Microsofta, prozivajući ih zbog lock-ina
Različita pravila za ARM i x86
ARM
Secure Boot se NE SMIJE moći isključiti
Dodatni ključevi se NE SMIJU moći instalirati
x86 (nakon pritiska od strane zajednice)
Secure Boot se MORA moći isključiti
Dodatni ključevi se MORAJU moći instalirati
2015. Microsoft priprema teren za izlazak Windowsa 10; za x86 pravila su
Secure Boot se NE MORA moći isključiti
Dodatni ključevi se MORAJU moći instalirati (primjer postupka)
Ars Technica prva ima vijest o novim pravilima, i ponovno kreće propaganda protiv Microsofta
Povodom objave novih pravila o Secure Bootu u Windowsima 10 na Phoronixu, korisnik chithanh dao je zanimljiv pregled jednog mogućeg slijeda događaja u budućnosti
Proizvođači hardvera moraju u svojim proizvodima podržavati značajku Secure Boot. Kritičari su umireni time što se može isključiti i mogućnošću korisnika da instalira vlastite ključeve. ✅
Secure Boot mora biti uključen u zadanim postavkama. ✅ (do ovdje je došlo s Windowsima 8)
Opcionalna tehnologija Intel Boot Guard brani modifikaciju firmwarea (primjerice, flashanje coreboota umjesto proizvođačevog firmwarea). ✅
Secure Boot može biti uvijek uključen ako proizvođač hardvera tako odluči. ✅ (do ovdje je došlo s Windowsima 10, trenutno stanje)
Mogućnost instalacije ključeva može biti opcionalna ako proizvođač hardvera tako odluči. 🚧
Proizvođači hardvera moraju trajno uključiti Secure Boot. 🚧
Intel Boot Guard postaje obavezan. 🚧
Instalacija vlastitih ključeva u UEFI firmware postaje zabranjena. 🚧
Rezultat: moguće je pokretati samo bootloadere potpisane postojećim ključevima, što u praksi vjerojatno znači potpisane Microsoftovim ključevima, a Microsoft može u bilo kojem trenutku prestati potpisivati sve osim Windowsa.
Općenitije o ograničavanju mogućnosti računala (tzv. rat protiv računarstva opće namjene) govorio je Cory Doctorow iz Electronic Frontier Foundationa na 28C3 pod naslovom The coming war on general computation (The copyright war was just the beginning) (transkript) i na DEF CON-u 23 pod naslovom Fighting Back in the War on General Purpose Computers.
Boot učitavač GRUB¶
GNU GRUB je boot učitavač (engl. bootloader)
pokreće se prije pokretanja samog operacijskog sustava i nudi korisniku mogućnost izbora koji operacijski sustav želi pokrenuti
primjerice, kod Debiana GRUB nudi normalan način rada, način rada za oporavak operacijskog sustava (engl. recovery), testiranje radne memorije računala i pokretanje preostalih operacijskih sustava na računalu
-
sadrži module jezgre koji se koriste za dosezanje particije na kojoj se nalazi operacijski sustav
npr.
pata_atiixp
,pata_amd
,sata_nv
,ahci
;raid0
,raid1
;ext3
,ext4
,btrfs