GRUB2 Migração

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page GRUB2 Migration and the translation is 69% complete.

Outdated translations are marked like this.
Other languages:
English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎čeština • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

O objetivo deste guia é fornecer aos leitores uma migração suave do GRUB Legacy para o GRUB2.

Background

O que é GRUB?

GRUB é um dos inicializadores em uso mais comumente encontrados em máquinas Linux não embarcadas. O papel do GRUB é facilitar o kernel Linux a ser carregado do disco para a memória e iniciar a execução do kernel Linux.

Por que migrar?

Em primeiro lugar, o GRUB Legacy não é mais mantido e, como tal, não recebe mais atualizações. O GRUB Legacy foi criado num momento em que os desenvolvedores se sentiam seguros em fazer diversas suposições que já não são mais verdade hoje. Por exemplo, o GRUB Legacy é incapaz de inicializar a partir de discos maiores que 2 TB e assume que os novos sistemas de arquivos não viriam para substituir o /boot.

O GRUB2 pretende ser mais robusto, mais portável, mais poderoso e é mantido com uma base de código mais limpa. GRUB2 suporta mais configurações de hardware, mais sistemas de arquivos e mais layouts de unidades do que seu predecessor.

Migração para o GRUB2

A migração para o GRUB2 é bastante simples: ele será puxado como parte do processo de atualização periódica pelo gerenciador de pacotes. Se ele não for puxado automaticamente, ele sempre poderá ser instalado via pacote atom sys-boot/grub:2:

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

Drive de boot

A primeira parte importante é entender qual drive é inicializável. Para aqueles que seguiram o Manual do Gentoo ele deve ser o /dev/sda. Para aqueles que são incertos, a maneira mais fácil de descobrir é olhar a configuração existente do GRUB Legacy. O arquivo /boot/grub/grub.conf é o principal lugar para verificar.

Note
Certifique-se que a partição /boot está montada para ser capaz de ver estes arquivos. Deve ser tão simples como
root #mount /boot

O arquivo grub.conf será algo parecido com isto:

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

Com base no arquivo acima é possível saber que (hd0) é o drive de boot mas precisamos mapeá-lo para um dispositivo real. Para saber isto, veja no arquivo /boot/grub/device.map. Um exemplo é fornecido um abaixo:

FILE /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
Note
Quando suspeitar que o /boot/grub/device.map não é exato, rode grub-install --recheck /dev/sda para recriar o arquivo.

Com base no arquivo acima sabemos que /dev/sda é o drive de boot.

Instalando e configurando o GRUB2

O próximo passo é instalar e configurar o GRUB2 para a partição /boot sem remover o GRUB Legacy do drive de MBR. O exemplo abaixo usa o /dev/sda - substitua-o com o drive de boot correto. O primeiro passo instala os arquivos do GRUB2 necessários para /boot/grub, enquanto que o segundo passo examina os kernels disponíveis e gera um arquivo de configuração adequado para /boot/grub/grub.cfg. Ignore a segunda etapa quando usar uma Configuração manual.

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

root #grub2-install --grub-setup=/bin/true /dev/sda
Installation finished. No error reported.
Warning
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 #grub2-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
Warning
GRUB 2 usa o arquivo de configuração /boot/grub/grub.cfg enquanto que o GRUB Legacy usa /boot/grub/grub.conf assim, por favor, certifique-se de não usar o arquivo antigo por engano, por exemplo, usando tab-completion se o arquivo antigo ainda estiver lá.
Note
grub2-mkconfig tem requisitos estritos de nomenclatura para kernels e imagens de initramfs. Um kernel deve ser nomeado como kernel-${version} ou vmlinuz-${version} enquanto que um initramfs deve ser nomeado como initramfs-${version}.img, initramfs-genkernel-${version}, initramfs-genkernel-${arch}-${version}, initrd-${version}.img, initrd.img-${version}, initrd-${version}.gz, ou initrd-${version}. Junto com ${version}, o nome do arquivo deve combinar com um correspondente ao kernel que está disponível em /boot.
Note
O arquivo /etc/default/grub controla a operação de grub2-mkconfig. Se parâmetros precisam ser passados para o Kernel (por exemplo, quando usar o genkernel e inicializar a partir de LVM ou software RAID), edite o arquivo antes de gerar o /boot/grub/grub.cfg assim:
root #nano /etc/default/grub
Dê uma olhada em Configuração do GRUB2 na Wiki do Gentoo ou em grub2 manual para decidir como modificar o arquivo. A maioria dos usuários terá de modificar o parâmetro GRUB_CMDLINE_LINUX.

Carregando em série o GRUB2 a partir do GRUB Legacy para testar a configuração

Uma configuração quebrada do GRUB pode significar um sistema impossibilitado de inicializar, queremos testar nossa configuração do GRUB2 antes de torná-la permanente. Para fazer isto, vamos carregar em série o GRUB2 a partir do GRUB Legacy. Isto é feito através da adição de uma nova seção em /boot/grub/grub.conf. Um exemplo é mostrado abaixo.

Note
Esteja ciente de que a partição root pode ser diferente de (hd0,0) usado no exemplo, e certifique-se de reutilizar o mesmo valor do root do arquivo de configuração /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

Neste ponto a máquina precisa ser reiniciada, e GRUB2 Chainload selecionada do menu do GRUB quando a máquina iniciar o boot. Um outro menu do GRUB será apresentado, que deve anunciar-se como GRUB 2.0.0 ou superior no topo e mostrar o(s) kernel(s) disponível(eis) para iniciar. Se isto não funcionar, basta reiniciar a máquina e escolher a opção de boot normal, ao invés de GRUB2 Chainload.

Substituindo e removendo o GRUB Legacy

Neste ponto, se tudo funcionar com sucesso, substitua o GRUB Legacy e remova-o do sistema.

Warning
Uma vez que o sistema seja reiniciado, pode ser necessário montar o /boot novamente. Certifique-se de usar o caminho do drive de boot correto, ao invés de /dev/sda, como este é meramente um exemplo. Se o /boot não está montado antes de executar o grub2-install, será impossível inicializar o sistema
Note
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 #grub2-install /dev/sda
Installation finished. No error reported.

Neste ponto use o gerenciador de pacotes para remover o sys-boot/grub:0.

root #emerge -avC "=sys-boot/grub-0.97*"

A migração está concluída.

Mantendo o GRUB2

Sempre que um novo Kernel for instalado, execute o próximo passo para que a configuração do GRUB2 reconheça o novo kernel (exceto quando usar uma configuração manual).

Note
Certifique-se que a partição /boot está montada para esta etapa.
root #grub2-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.