GRUB

Z Wikipedie, otevřené encyklopedie
GRUB
Logo
GRUB
GRUB
VývojářProjekt GNU a Erich Boleyn
Aktuální verze2.12 (20. prosince 2023)
Operační systémGNU/Linux
GNU/Hurd
BSD
UN*X
PlatformaIA-32
x86_64
PowerPC
Vyvíjeno vC a jazyk symbolických adres
Typ softwarusvobodný software, GNU balíček a bootloader
LicenceGNU General Public License, version 3.0 or later
Webwww.gnu.org/software/grub/
Některá data mohou pocházet z datové položky.
StartUp-Manager

GNU GRUB (z GNU GRand Unified Bootloader) je zavaděč patřící do projektu GNU. GRUB je referenční implementací specifikace multiboot. Umožňuje uživateli mít několik různých operačních systémů na jednom počítači současně a mít možnost výběru, který systém spustit při startu počítače. GRUB může být použit k výběru z různých jader operačního systému, stejně jako k předání zaváděcích parametrů příslušnému jádru.

Je často používaný v Unixových systémech. Operační systém GNU i většina linuxových distribucí jej používá jako svůj zavaděč. Solaris používá GRUB jako svůj zavaděč na x86 systémech od vydání Solaris 10 1/06.

Historie[editovat | editovat zdroj]

GRUB vyvinul původně Erich Boleyn jako součást práce při spouštění operačního systému GNU/Hurd, vyvinutého nadací Free Software Foundation. V roce 1999, Gordon Matzigkeit a Yoshinori K. Okuji vytvořili GRUB, oficiální softwarový balíček GNU Projektu a zveřejnili vývojový proces.

Charakteristika[editovat | editovat zdroj]

GNU GRUB na pevném disku s MBR
GNU GRUB na pevném disku s GPT
boot.img má velikost přesně 446 Bajtů a je zapsán do MBR (sektor 0). core.img je zapsán do prázdných sektorů mezi MBR a prvním oddílem, pokud je k dispozici (z důvodu zpětné kompatibility začíná první oddíl na sektoru 63 namísto sektoru 1, ale není to nezbytné). Adresář /boot/grub může být umístěn na samostatném oddílu nebo na kořenovém oddílu (/).

GRUB je dynamicky konfigurovatelný, načítá si svou konfiguraci při startu a dovoluje změny během bootu, jako je například výběr jiného jádra nebo initial RAM disks. Za tímto účelem GRUB poskytuje jednoduché řešení na principu bash příkazového řádku, který umožňuje uživateli zapsat novou bootovací sekvenci.

GRUB je velice dobře přenosný. Podporuje vícenásobné spustitelné formáty, a nezávislé na geometrii disku. V rámci multibootu podporuje non-multiboot operační systém jako je například Microsoft Windows a OS/2 pomocí funkce řetězcového načítání. GRUB podporuje všechny běžné Unixové souborové systémy včetně VFAT a NTFS, které používá Microsoft Windows, a podporuje mód Logical Block Addressing (LBA). GRUB také umožňuje uživateli zobrazovat obsah souborů jakéhokoli podporovaného souborového systému.

GRUB může být použit s paletou různých uživatelských rozhraní. Většina linuxových distribucí převzala výhodu podpory GRUBu pro grafická rozhraní aby poskytly přizpůsobitelné bootovací menu s obrazem na pozadí, a příležitostně s podporou myši. GRUB v textovém rozhraní může být nastaven sériový port pro podporu připojení ke vzdálenému terminálu a zavaděči (boot loader).

GRUB může stáhnout obraz operačního systému ze sítě a může takto podporovat bezdiskové systémy. GRUB podporuje automatické rozbalení obrazů operačních systémů aby z nich mohl na bootovat.

GRUB se liší od dalších bootovacích zavaděčů tím, že je schopen komunikovat přímo s uživatelem prostřednictvím GRUB prompt. GRUB prompt je doba před tím než GRUB načte operační systém a může být spouštěn v textovém módu GRUB bootovací obrazovka, která je kontrolovatelná konfiguračním souborem "menu.lst" pomocí stisknutí klávesy "c". GRUB prompt (podobný bashi) může být také získán z bootování GRUBu jako samostatného systému, bez připojení dalšího operačního systému nebo v jakékoli jiné GRUB instalaci s operačním systémem když soubor "menu.lst" chybí. Z GRUB prompt může uživatel ručně určit a kontrolovat bootování z jakéhokoli nainstalovaného operačního systému použitím bashe jako příkazového řádku. Pro automatické nabootování operačního systému, jsou příslušné příkazy umístěny v konfiguračním souboru "menu.lst" v určeném podadresáři.

GRUB má bohatou sadu příkazů pro terminál, které uživateli umožňují v GRUB prompt zobrazit detaily oddílů pevného disku, změnit nastavení oddílu, přemapovat, na stálo, pořadí disků, bootovat z uživatelem libovolně určeného konfiguračního souboru a zobrazovat bootovací konfiguraci dalších bootovacích zavaděčů s podporovanými GRUB formáty. Takto, bez předešlých znalostí toho co je nainstalováno na počítači, můžete použít

GRUB z externího zařízení jako je například floppy disk, USB nebo CD-ROM k nabootování nainstalovaného operačního systému.

GRUB používá rolovací obraz pro výběr operačního systému, který má nabootovat. To znamená, že 150 nebo více bootovacích voleb může být kontrolováno GRUBem jednoduchým přidáním do konfiguračního souboru "menu.lst", a vybráním jednoho při bootování pouze pomocí šipek.

Jeden zaváděcí soubor může zavést jiný zaváděcí soubor postupným (řetězcovým) načítáním. GRUB používá stejné dva až tři řádky příkazů pro nabootování jakéhokoli DOSu, Microsoft Windows, Linuxu, BSD nebo systému Solaris, umožňující snadnou práci.

Přestože může být GNU GRUB připraven v balíčku nebo zabudované do Unixových systémů, jsou zde také specifické provedení GRUBu pro DOS a Windows.

GRUB může být také nainstalován jako samostatný systém bez připojení k jakémukoli operačnímu systému. jeho implementace vyžaduje jeden soubor pro bootování z CD a dva soubory pro floppy disk, hard disk nebo USB. Tyto soubory jsou dostupné na jakémkoli linuxovém live CD, které podporuje GRUB, snadno dosažitelné a zdarma pro všechny počítačové uživatele.

Bootovací proces[editovat | editovat zdroj]

Když je počítač zapnut, pak jeho BIOS najde primární zařízení schopné bootu (většinou hard disk počítače) a přesměruje řízení na master boot record (MBR), to je prvních 512 bytů hard disku. MBR obsahuje GRUB prvního stupně. S danou malou velikostí udělá tento stupeň o něco málo více než jen to, že by načetl další stupeň GRUBu (který se může fyzicky nacházet jinde na disku). Stupeň 1 buď načte stupeň 2 přímo nebo může načíst stupeň 1.5. GRUB stupně 1.5 se nachází v prvních 30 kilobytech disku ihned po MBR. Stupeň 1.5 načte stupeň 2.

Když GRUB stupně 2 převezme řízení, zobrazí uživateli rozhraní s možností výběru operačního systému, který chce spustit. To obyčejně mívá podobu grafického menu. GRUB má své vlastní prompt příkazy, kde si uživatel ručně nastaví specifické parametry pro bootování. GRUB může být také nastaven k automatickému načítání nastaveného jádra (kernelu) po uplynutí jistého časového limitu.

Poté, co byla volba bootu poprvé vybrána si GRUB zapamatuje zvolený kernel a předá řízení jádru. U tohoto stupně může GRUB pověřit řízením bootovacího procesu jiný zavaděč využitím postupného zavádění, pokud je toto vyžadováno operačním systémem.

Zabezpečení[editovat | editovat zdroj]

V případě použití zavaděče GRUB může útočník využít zavaděč, respektive jeho příkazovou řádku pro změnu výběru OS nebo změnu parametrů spouštěného OS. Pomocí Single User Mode může dokonce získat práva správce. Z toho důvodu je vhodné příkazovou řádku a možnosti konfigurace ochránit heslem. Heslem lze zabezpečit i přístup k jednotlivým systémům, které zavaděč nabízí. Heslo můžete nastavit pomocí následujícího postupu:

  1. Zvolíme si nějaké heslo a získáme jeho otisk
    • Příkazem grub přejdeme do příkazového řádku GRUBu, dále zadáme příkaz md5crypt a vybrané heslo. Příkaz nám vrátí jeho otisk.
  2. Vložení řetězce do konfiguračního souboru
    • Získaný MD5 řetězec přidáme na začátek konfiguračního souboru ve tvaru např. password --md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs..
  3. Ochrana jednotlivých OS v nabídce
    • Pokud chceme dále tímto heslem zabezpečit spouštění konkrétního operačního systému, vložíme za řádek title v odpovídajícím bloku příkaz lock, který povolí provedení dalších příkazů v bloku pouze po zadání hesla.

Samozřejmostí je vhodné nastavení práv konfiguračního souboru tak, aby ho mohl prohlížet a upravovat pouze správce. Všechny tyto ochrany ale nezabrání spuštění jiného operačního systému z Live CD. Proto je vhodné zaheslovat i BIOS (bohužel i potom není bezpečnost zcela 100% z důvodů možnosti resetu CMOS).

Oprava poškozeného GRUBu[editovat | editovat zdroj]

Občas se stane, že některý z operačních systémů poškodí zaváděcí sektor GRUBu, například při reinstalaci Windows. Postup opravy:

  • nabootovat nějakou live distribuci obsahující GRUB
  • spustit GRUB
$ grub
grub> find /boot/grub/stage1
# nabídne oddíl s nainstalovaným GRUBem, např. (hd0,7)
grub> root (hd0,7)
grub> setup (hd0)
grub> quit

Zdroj: [1]

Utility[editovat | editovat zdroj]

Screenshot GRUB Customizer nástroje na nastavení GRUB

GRUB konfigurační nástroje[editovat | editovat zdroj]

Instalační nástroje v použití různých distribucí často obsahují moduly k nastavení GRUBu, například: YaST2 pro SUSE/openSUSE distribuce a Anaconda na Fedora/RHEL distribucích. StartUp Manager je grafický konfigurační editor pro Debian základní distribuce GRUBu.

Pro GRUB 2 jsou KDE ovládací moduly. GRLDR ICE je jednoduchý nástroj pro modifikaci základní konfigurace grldr souboru pro GRUB4DOS.

Ostatní utility[editovat | editovat zdroj]

GRUB nástroje jsou kolekce multiplatformních nástrojů pro GRUB Legacy, GRUB 2 a GRUB pro DOS.

Boot-Repair je jednoduchý grafický nástroj pro obnovu častých bootovacích problémů s GRUB a Microsoft Windows bootloaderem. Tato aplikace je k dispozici pod GNU GPL licencí. Boot-Repair může opravit GRUB na různých linuxových, ale ne na limitovaných distribucích, například: Debian, Ubuntu, Mint, Fedora, OpenSuse, Arch Linux a bude vložen v budoucí verzi Ubuntu.

Externí odkazy[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]