Přechod na GRUB2

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page GRUB2 Migration and the translation is 33% complete.
Outdated translations are marked like this.

Cílem tohoto průvodce je poskytnout vám návod na hladký přechod z GRUB Legacy na GRUB2.

Na pozadí

Co je to GRUB?

Grub je jeden z nejběžněji používaných zavaděčů na ne-embeddeded strojích s Linuxem. GRUB má za úkol nahrát linuxové jádro z disku do paměti a začít s jeho spouštěním.

Proč tedy přejít?

Za prvé GRUB Legacy již není udržován a jako takový proto ani není nadále aktualizován. GRUB Legacy byl vytvořen v době, kdy měli vývojáři za to, že lze bezpečně učinit určité předpoklady, které se dnes již nezakládají na pravdě. Například, GRUB Legacy neumožňuje bootovat z disků větších než 2TB a rovněž předpokládá, že se neobjeví nové souborové systémy jako náhrada za /boot.

GRUB2 má za cíl poskytnout větší robustnost, přenositelnost, více možností a rovněž je udržován s čistějším kódem. GRUB2 podporuje více hardwarových konfigurací, více souborových systémů a způsobů uspořádání zařízení, než jeho předchůdce.

Přechod na GRUB2

Přechod na GRUB2 je velmi přímočarý: bude přibrán správcem balíčků během během provádění běžného upgradu. Pokud by nebyl vtažen automaticky, lze kdykoli instalovat sys-boot/grub:2.

root #emerge --ask sys-boot/grub:2

Bootovací zařízení

První důležitou částí, je určení bootovacího zařízení. Pro spoustu lidí jím bude /dev/sda. Nejjednodušší cestou, jak zjistit tuto informaci, je podívat se na to jakým způsobem je nastaven současný GRUB Legacy nahlédnutím do /boot/grub/grub.conf. Příklad takového souboru najdete níže.

Poznámka
Abyste mohli tyto soubory otevřít, musíte připojit /boot. Připojení /boot lze provést jednoduše příkazem mount /boot.

The grub.conf file will look something like this:

FILE /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
  
title Gentoo Linux 3.2.12
root (hd0,0)
kernel /boot/kernel-3.2.12-gentoo root=/dev/sda3 quiet dolvm
initrd /boot/initramfs-genkernel-x86_64-3.2.12-gentoo

Ve výše uvedeném souboru tak vidíme, že (hd0) je bootovacím diskem, avšak musíme je přiřadit k reálnému zařízení. To zjistíme pohledem do /boot/grub/device.map. Příklad takového souboru je uveden níže.

FILE /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
Poznámka
Jestliže máte podezření, že /boot/grub/device.map není správný, můžete spustit grub-install --recheck /dev/sda pro znovu vytvoření souboru.

Na základě výše uvedeného souboru tak víme, že /dev/sda je bootovacím zařízením.

Instalace a konfigurace GRUB2

Dalším krokem je instalace a konfigurace na vašem /boot oddíle, aniž byste odstranili GRUB Legacy z MBR. Níže uvedený příklad používá /dev/sda, vy jej však musíte vyměnit za cestu vedoucí k vašemu bootovacímu zařízení. První krok nainstaluje soubory GRUB2 do /boot/grub, zatímco druhý krok vyhledá dostupná jádra a vygeneruje příslušný konfigurační soubor do /boot/grub/grub.cfg. Pokud hodláte provést ruční konfiguraci, druhý krok vynechejte.

First install the necessary GRUB2 files to /boot/grub.

root #grub-install --grub-setup=/bin/true /dev/sda
Installation finished. No error reported.
Upozornění
The --grub-setup=/bin/true option tells grub-install to not install GRUB2 in the MBR. If this option is omitted, GRUB Legacy will be overwritten and chainloading GRUB2 from GRUB Legacy later on will not be possible.

Now we can scan the available kernels and generate a suitable config file to /boot/grub/grub.cfg. Skip this step when using a Manual Configuration.

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-3.2.12-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.2.12-gentoo
done
Upozornění
GRUB 2 používá konfigurační soubor /boot/grub/grub.cfg zatímco GRUB Legacy používá /boot/grub/grub.conf tak se prosím ujistěte, že nepoužíváte omylem starý soubor, npř. použítím tab-doplnění když zde ještě starý soubor existuje.
Poznámka
grub2-mkconfig má přísné požadavky na pojmenování souborů obsahujících jádro a initramfs. Jádro musí být pojmenováno stylem kernel-${verze} nebo vmlinuz-${verze} zatímco initramfs musí být pojmenován jako initramfs-${verze}.img ,initramfs-genkernel-${verze} ,initramfs-genkernel-${arch}-${verze} ,initrd-${verze}.img ,initrd.img-${verze} ,initrd-${verze}.gz , nebo initrd-${verze}. Společně s ${verzí}, musí pojmenování souboru souhlasit s pojmenováním příslušného souboru jádra, které je k dispozici v /boot .
Poznámka
Soubor /etc/default/grub řídí chod grub2-mkconfig. Pokud potřebujete předat parametry jádru (například pokud používáte genkernel a bootujete z LVM nebo softwarového RAID pole), musíte upravit tento soubor před generováním /boot/grub/grub.cfg tímto způsobem:
root #nano/etc/default/grub
Podívejte se na článek Konfigurace GRUB2 na Gentoo Wiki nebo na manuál grub2, abyste se rozhodli jak upravit tento soubor. Většina uživatelů bude muset změnit parametr GRUB_CMDLINE_LINUX.
root #nano /etc/default/grub

Have a look at GRUB configuration on the Gentoo Wiki or the official GRUB2 manual to decide how to modify the file. Most users will need to change GRUB_CMDLINE_LINUX to specify parameters to be passed on the kernel command line.}}

Zkouška nastavení spuštěním GRUB2 skrze GRUB Legacy

Protože špatná konfigurace GRUB může vést k tomu, že systém se stane nespustitelným, chceme nastavení GRUB2 otestovat, než jej učiníme trvalým. Proto spustíme GRUB2 přes GRUB Legacy. To uděláme tak, že přidáme novou položku do /boot/grub/grub.conf. Viz příklad níže.

Poznámka
Nezapomeňte, že hodnota root může být jiná, než (hd0,0) použitá v příkladu. Proto se ujistěte, že jste použili totožnou hodnotu jako ve svém původním /boot/grub/grub.conf .
FILE /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
  
title GRUB2 Chainload
root (hd0,0)
kernel /boot/grub/i386-pc/core.img
boot
  
title Gentoo Linux 3.2.12
root (hd0,0)
kernel /boot/kernel-3.2.12-gentoo root=/dev/sda3 quiet dolvm
initrd /boot/initramfs-genkernel-x86_64-3.2.12-gentoo

Nyní byste měli restartovat svůj stroj a v menu GRUB vybrat možnost GRUB2 Chainload jakmile váš počítač začne bootovat. Zobrazí se vám další menu GRUB, které bude nahoře označené jako GRUB 2.0.0 nebo vyšší a zobrazí rovněž dostupná jádra k zavedení. Pokud by tento postup nefungoval, jednoduše restartujte systém a vyberte z menu obvyklou bootovací položku namísto GRUB2 Chainload.

Výměna a odstranění GRUB Legacy

Pokud vše úspěšně fungovalo, můžete nyní vyměnit GRUB Legacy a odstranit jej ze systému.

Poznámka
Protože jste restartovali systém, možná bude nutné opět připojit /boot. Ujistěte se také, že používáte správné bootovací zařízení namísto /dev/sda .
Poznámka
As previously mentioned, if GRUB2 was emerged with the multislot USE flag then grub2-install must be used instead of grub-install. In this case, after GRUB Legacy is removed from the system in the next step, GRUB2 should be re-emerged without the multislot USE flag so that grub-install and grub-mkconfig can become GRUB2 commands.
root #grub-install /dev/sda
Installation finished. No error reported.
Nyní může pomocí správce balíčků odstranit sys-boot/grub:0.
root #emerge -avC "=sys-boot/grub-0.97*"
. Přechod je hotov.
root #emerge --ask -vc sys-boot/grub:0

The migration is now complete.

Údržba GRUB2

Pokaždé, když nainstalujete nové jádro, musíte provést následující krok, aby bylo ze strany GRUB2 rozpoznáno (pokud nepoužíváte ruční konfiguraci).

Poznámka
Oddíl /boot musí být připojen.
root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-3.3.8-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.3.8-gentoo
Found linux image: /boot/kernel-3.2.12-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.2.12-gentoo
done

This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Cardoe
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.