Obsah

GRUB2

Grub2 je program odpovídající za načtení/zavedení systému. Je odkazován přímo z MBR (Master Boot Record - zaváděcí stopy) a zajišťuje předání kontroly mezi BIOSem (de facto firmware základní desky, úplně nejnižší softwarová vrstva) a operačním systémem (OS, jako je kupříkladu Linux, Unix či Windows). Název je akronymem GRand Unified Bootloader, version 2 (Grub 2), druhé verze GNU GRUB.

Nastavení Grub2

Základní nastavení Grubu je možno provést pomocí Správce spouštění - není potřeba ručně upravovat konfigurační soubory.

Hlavní konfigurační soubor GRUBu 2 je grub.cfg v adresáři /boot/grub. Tento soubor je nastaven pomocí mnoha skriptů spuštěných příkazem update-grub. Primárně za nastavení grub.cfg jsou zodpovědné soubory /etc/default/grub a jednotlivé skripty ve složce /etc/grub.d/

grub (/etc/default/grub)

Tento soubor obsahuje nastavení týkající se především toho, jak se zobrazí Grub2 nabídka (jako například čas nabídky, její barvy či pozadí). Tento soubor může být měněn jen s root právy (právy administrátora). Aby se změna zapsala do souboru grub.cfg a tak se stala aktivní, je po úpravě a uložení souboru /etc/default/grub třeba spustit příkaz update-grub.

~-

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"

-~

Obnovení GRUB2 pomocí LiveCD

sudo fdisk -l

výpis bude vypadat třeba takto

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3199    25695936    7  HPFS/NTFS
/dev/sda3            3836        9729    47343524+   5  Extended
/dev/sda5            3836        5751    15390238+  83  Linux
/dev/sda6            9596        9729     1076323+  82  Linux swap / Solaris

* nyní potřebujete vědět, které zařízení (a který diskový oddíl) obsahuje váš nainstalovaný linuxový systém, v našem příkladě to je /dev/sda5.

:!: Ujistěte se, že je určení bez chyb - věnujte prosím pozornost výpisu FDISKu

sudo blkid

Ukázka výpisu.

/dev/sda1: UUID="666cd724-8d60-4a1d-b39d-71f195c821c3" TYPE="ext4"
sudo mount -t ext4 /dev/sda5 /mnt

* nainstalujte Grub do MBR disku

sudo grub-install --root-directory=/mnt /dev/sda

Tímto se vám přemaže MBR disku /dev/sda!

Buďte velmi opatrní a radši si předtím udělejte zálohu MBR. Také dávejte pozor, aby bylo určení disku (není to oddíl!) bez označení číslem, tedy /dev/sda, NE třeba /dev/sda1.

sudo update-grub

Zdroj: http://forum.ubuntu.cz/index.php/topic,42267.0.html

Alternativní postup

:!: Ujistěte se, že je určení bez chyb - věnujte prosím pozornost výpisu FDISKu

Nyní byste měli být přihlášeni do vašeho trvalého linuxu pomocí příkazu chroot (administrátorská práva bez potřeby používat sudo)

$ nano /etc/default/grub

$ update-grub

$ grub-install /dev/sda

$ grub-install --recheck /dev/sda

Pokud máte netradiční operační systémy (alternate OS entries), příkaz update-grub vás může oblažit hláškou „Cannot find list of partitions!“ (Nemohu nalézt seznam oddílů). Ignorujte ji a pokračujte - jak jednou nabootujete do vaší řádné linuxové instalaci, použijte pomocí Terminálu opět příkaz sudo update-grub a sudo grub-install /dev/sda.

GRUB 2 - snadná editace v grafickém režimu

Velmi pohodlně můžeme upravovat položky grafickým nástrojem nazvaným Grub Customizer. Umožňuje mimo jiné měnit pořadí položek v menu, přejmenovávat položky a samozřejmě také přidávat nebo odebírat položky. Grub Customizer se dá nainstalovat např. takto přes terminál:

 sudo add-apt-repository ppa:danielrichter2007/grub-customizer
 sudo apt-get update
 sudo apt-get install grub-customizer

Po instalaci najdeme Grub Customizer v menu aplikací (System Tools - Grub Customizer).

Po spuštění se objeví okno programu, ve kterém můžeme provádět změny. Poklepáním na položku změníme text. Např. text Ubuntu, with Linux 2.6.35-22-generic snadno změníme třeba na Ubuntu 10.10. Zrušením zaškrtnutí u některé položky tuto položku skryjeme.

Po provedení požadovaných změn jednoduše uložíme nové nastavení kliknutím na Save. Hotovo.

Technické detaily

Grub 2 je kompatibilní se standardem POSIX (Portable Operating System Interface for Unix) jako jsou GNU/Linux, *BSD, Mac OS aj., ale zvládá už i připojit systémy nekompatibilní s tímto standardem.

GRUB 2 je kompletně přepsanou verzí původního GRUBu. Založen na výzkumu projektu PUPA, GRUB2 je mnohem více modulární a přenosnější než jeho předchůdce. Některé z jeho nových vlastností:

Mnoho souborů v /boot/grub bude pro uživatele Grub Legacy nových. Zejména množství souborů „*.mod“ v adresáři /boot/grub. Grub 2 je modulární a tak soubory „*.mod“ jsou nezbytné. Bez ohledu na množství souborů celková velikost obsahu /boot/grub zůstává v porovnání s Grub Legacy zhruba zachována a tak není třeba zvětšovat /boot oddíl.

grub.cfg (/boot/grub/grub.cfg)

:!: NEEDITUJTE TENTO SOUBOR Toto je hlavní konfigurační soubor Grub 2. Nahrazuje do jisté míry /boot/grub/menu.lst původního GRUBu. Tento soubor obsahuje jen přímé instrukce pro Grub2 a NENÍ URČEN K PŘÍMÉ EDITACI!!! Ještě jednou: na rozdíl od „původního“ menu.lst, soubor grub.cfg NEEDITUJTE!!! :!:

~-

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a
if font /usr/share/grub/ascii.pff ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  terminal gfxterm
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###

### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea
menuentry "Ubuntu, linux 2.6.28-13-generic" {
	linux	/boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro  quiet splash vga800
	initrd	/boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
	linux	/boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro single
	initrd	/boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
	linux	/boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro  quiet splash vga800
	initrd	/boot/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
	linux	/boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro single
	initrd	/boot/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	linux	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	linux	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
	set root=(hd0,1)
	chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_srcd ###
menuentry "SystemRescue CD on hard drive" {
        set root=(hd0,10)
        linux   /sysrcd/rescuecd subdir=sysrcd setkmap=us
        initrd  /sysrcd/initram.igz
}
### END /etc/grub.d/41_srcd ###

-~

/etc/grub.d/ (složka)

Tyto soubory jsou čteny při vykonávání příkazu update-grub. Tyto skripty udržují a přenášejí informace, které se spolupodílí na vytváření souboru /boot/grub/grub.cfg.

Soubory jsou pro vytváření grub.cfg používány za sebou - nejprve s číslem na počátku (vzestupně) a poté abecedně. V tomto pořádku jsou pak i zapsány příslušné informace do souboru grub.cfg.

Uživatelem zcela přidané hodnoty by měly být umístěny v 40_custom souboru.

Všechny vytvořené soubory musí být (pro jejich zahrnutí do generovaní grub.cfg pomocí příkazu „update-grub“) spustitelné. Provede se příkazem „sudo chmod u+x /etc/grub.d/JmenoSouboru“.

set menu_color_highlight=cyan/blue '

… následují další popisy a návody - originály najdete na https://wiki.ubuntu.com/Grub2

GRUB 2 testování a vývoj

Grub 2 je stále ještě ve vývojové verzi 1.98, takže uživatelé mají stále čas přispět k jeho rozvoji. Například zde testování GRUBu 2

Instalace / Upgrade

Instalace (Ubuntu 9.10)

GRUB 2 je instalován jako výchozí pro NOVÉ instalace 9.10 (Karmic). Pokud upgradujete z verze Jaunty 9.04 na Karmic 9.10, použijte prosím pro instalaci instrukce níže.

Upgrade (Ubuntu 9.04+)

Pokud máte jakékoliv problémy s upgrade Grub Legacy (původní verze „1“) na Grub 2, prozkoumejte prosím toto vlákno (bug post)… https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/386789

$ sudo apt-get install grub2

Po restartu počítače uvidíte tyto možnosti ve startovní nabídce.

Upozornění: Toto je pouze dočasné, trvalé změny dosáhnete tímto: Po úspěšném rozběhu systému -

$ sudo upgrade-from-grub-legacy

GRUB 2 vám ukáže, odkud bude načítat (bootovat). :!:

Nováčci! Použijte zde mezerník pro označení své volby. Systém se nenačte bez vašeho výběru. Nastala by chyba číslo 15 a bootovací menu by se neobjevilo. Pokud máte duální boot například Ubuntu a zároveň Windows (XP, Vista či "7"), možná zde budete muset dodělat další změny pro hladký chod.

Jestliže se vám toto skutečně stalo, podívejte se prosím do tohoto vlákna (možnost nápravy): http://kubuntuforums.net/forums/index.php?topic=3106892.0

Na mém testovacím systému je zobrazeno (hd0) /dev/sda, ale toto se může lišit stroj od stroje. Pokud je toto špatně, musíte vstup opravit v souboru /boot/grub/device.map tak, aby to odpovídalo vašemu systému (nejčastěji stačí zaměnit sda za sdb a poté spustit

$ sudo grub-install

GRUB 2 bude plně nainstalován a předchozí verze zavaděče odstraněna (stará konfigurace bude zálohována v adresáři /boot/grub pod názvem menu.lst*).

Můžete kdykoli potvrdit verzi, kterou instalujete, pomocí příkazu:

grub-install -v

Odkazy