GRUB
GRUB | |
Vývojář | Projekt GNU a Erich Boleyn |
---|---|
Aktuální verze | 2.12 (20. prosince 2023) |
Operační systém | GNU/Linux GNU/Hurd BSD UN*X |
Platforma | IA-32 x86_64 PowerPC |
Vyvíjeno v | C a jazyk symbolických adres |
Typ softwaru | GNU balíček, bootloader a svobodný software |
Licence | GNU General Public License, version 3.0 or later |
Web | www |
Některá data mohou pocházet z datové položky. |
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
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
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
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í
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:
- 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říkazmd5crypt
a vybrané heslo. Příkaz nám vrátí jeho otisk.
- Příkazem
- 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.
.
- Získaný MD5 řetězec přidáme na začátek konfiguračního souboru ve tvaru např.
- 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.
- 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
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
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
GRUB konfigurační nástroje
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
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
- Obrázky, zvuky či videa k tématu GRUB na Wikimedia Commons
- Příkazy pro GRUB
- GRUB zavaděč systému
- (anglicky) Oficiální web GNU GRUB
- (anglicky) Oficiální GNU GRUB manuál
- (anglicky) GRUB pro DOS
Literatura
Média použitá na této stránce
Autor: David Vignoni / ICON KING, Licence: LGPL
Icon from Nuvola icon theme for KDE 3.x.
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
GNU GRUB on MBR-partitioned hard disk drives
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
GNU GRUB on GPT-partitioned hard disk drives
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
GNU GRUB: Illustrates the locations of the components
boot.img
, core.img
and /boot/grub
on a harddisc Screenshot of GNU GRUB, ready to boot ubuntu 8.04 (RC).
Autor: http://hacktolive.org/, Licence: GPL
StartUp-Manager 1.9.10-2 on Ubuntu 8.04
Autor:
Software: Daniel Richter
Screenshot:
VulcanSphere, Licence: GPLScreenshot of GRUB Customizer, tool to configure GRUB.