GRUB

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
GRUB

GNU GRUB (zkráceně „GRUB“) je zavaděč – zaváděcí balíček projektu GNU. GRUB je zavaděčem pravomocí a specifikací multibootu, které umožňuje uživateli mít několik různých operačních systémů na jednom počítači, a mít možnost výběru, který systém chceme spustit při startu počítače. GRUB může být použit k výběru z různých Kernelů (jader) přístupných z jednotlivých diskových oddílů operačního systému, stejně jako k předání zaváděcích parametrů příslušnému jádru.

GNU GRUB vyvinutý z předchozí verze nazvané GRand Unified Bootloader. Je zejména použitý v Unixových systémech; operační systém GNU používá GNU GRUB jako zaváděcí soubor (boot loader),stejně tak jako většina linuxových distribucí. Solaris používá GRUB jako svůj zaváděcí soubor na x86 systémech od vydání Solaris 10 1/06.

Historie[editovat | editovat zdroj]

GRUB byl původně vyvinut Erich Boleyn jako součást práce při spouštění operačního systému GNU/Hurd, vyvinutý 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 on MBR-partitioned hard disk drives
GNU GRUB on GPT-partitioned hard disk drives
boot.img has the exact size of 446 Bytes and is written to the MBR (sector 0). core.img is written to the empty sectors between the MBR and the first partition, if available (for legacy reasons the first partition starts at sector 63 instead of sector 1, but this is not mandatory). The /boot/grub-directory can be located on an distinct partition, or on the /-partition.

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ý chcete 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 také být nastaven k automatickému načítání nastaveného jádra (kernel), 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 password --md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs, kde $1$w7Epf0$vX6rxpozznLAVxZGkcFcs je otisk našeho hesla.
  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 k 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]

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

Instalační nástroje v použití různých distribucí často obsahují moduly k nastavení GRUB, 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, ArchLinux a bude vložen v budoucí verzi Ubuntu.

Externí odkazy[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]