Gentoo Logo

1.a. Fazendo sua escolha

Introdução

Agora que o seu kernel está configurado e compilado e os arquivos de configuração necessários para o sistema estão preenchidos corretamente, está na hora de instalar um programa que irá chamar o seu kernel quando você iniciar o sistema. Tal programa é chamado de gerenciador de inicialização.

Porém, antes de instalarmos um destes gerenciadores de inicialização, informaremos a você como configurar o framebuffer (caso você o queira, claro). Com o framebuffer você pode rodar a linha de comando do Linux com funções gráficas limitadas (como a bela imagem de bootsplash que o Gentoo oferece).

Opcional: framebuffer

Se você configurou o kernel com suporte a framebuffer (ou se você usou a configuração padrão do genkernel), você pode ativá-lo adicionando uma expressão de vga e/ou video ao arquivo de configuração de seu gerenciador de inicialização.

Sistemas 64 bits devem usar o driver vesafb e precisam da expressão vga.

A expressão vga controla a resolução e profundidade de cor de sua tela de framebuffer para vesafb. Como dito em /usr/src/linux/Documentation/fb/vesafb.txt (que é instalado quando você instala um pacote de fonte de kernel), você precisa passar o número de VESA correspondente à resolução requisitada e profundidade de cor.

A seguinte tabela lista as resoluções disponíveis e profundidades de cor e dá os valores que você precisa passar à expressão vga.

640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32k 0x310 0x313 0x316 0x319
64k 0x311 0x314 0x317 0x31A
16M 0x312 0x315 0x318 0x31B

A expressão video controla as opções de display do framebuffer. Ela precisa receber o driver de framebuffer (vesafb para kernéis 2.6, ou vesa para kernéis 2.4) seguido de expressões de controle que você quiser ativar. Todas variáveis são listadas em /usr/src/linux/Documentation/fb/vesafb.txt. As opções mais usadas são:

Controle Descrição
ywrap Presumir que a placa gráfica pode fazer wrap em sua memória (isto é, continuar no começo quando alcançar o final)
mtrr:n Configurar registradores de MTRR: n pode ser:
0 - desativado
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through

O resultado das duas expressões pode ser algo como vga=0x318 video=vesafb:mtrr:3,ywrap. Lembre-se (ou anote) seu ajuste; você precisará dele em breve.

1.b. Padrão: usando o GRUB

Entendendo a terminologia do GRUB

A parte mais crítica na compreensão do GRUB é sentir-se confortável com como o GRUB se refere aos discos rígidos e partições. Sua partição Linux /dev/hda1 (para drives IDEs) ou /dev/sda1 (para drives SATA/SCSI) será provavelmente chamada de (hd0,0) no GRUB. Note os parênteses no hd0,0 - eles são requeridos.

Discos rígidos contam a partir de 0 (zero) ao invés de "a" e as partições iniciam em 0 (zero) ao invés de 1 (um). Esteja atento para isto com os dispositivos hd, somente os discos rígidos são contados, não dispositivos atapi-ide tais como leitores e gravadores de cdrom. O mesmo acontece com dispositivos SCSI. (Normalmente eles recebem números maiores que os dispositivos ide exceto quando a BIOS está configurada para iniciar a partir do SCSI.) Quando você pede à BIOS que inicie de um disco rígido diferente (por exemplo seu escravo primário), aquele disco rígido é visto como hd0.

Presumindo que você tem um disco rígido em /dev/hda, um tocador de cdrom em /dev/hdb, um gravador em /dev/hdc, um segundo disco rígido em /dev/hdd e nenhum disco rígido SCSI, /dev/hdd7 é traduzido como (hd1,6). Pode parecer complicado e realmente é, mas como veremos, o GRUB oferece um mecanismo de completação com o tab que ajuda muito aqueles que têm muitos discos rígidos e partições e que ficam um pouco perdidos com o esquema de numeração do GRUB.

Tendo entendido a situação, está na hora de instalar o GRUB.

Instalando o GRUB

Para instalar o GRUB, vamos primeiro fazer emerge dele.

Code Listing 1: Instalando o GRUB

# emerge grub

Embora agora o GRUB esteja instalado, nós ainda precisamos escrever um arquivo de configuração para ele e instalar o GRUB no registro mestre de inicialização (MBR) para que ele carregue automaticamente seu novo kernel. Crie /boot/grub/grub.conf com o nano (ou, se for o caso, outro editor):

Code Listing 2: Criando o /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

Agora nós vamos escrever o grub.conf. Abaixo você encontrará dois grub.conf possíveis para o exemplo de particionamento que usamos neste guia. Nós somente fizemos comentários extensivos para o primeiro grub.conf. Certifique-se de usar o arquivo de imagem do seu kernel e, se for apropriado, o arquivo de imagem da sua initrd.

  • O primeiro grub.conf é para pessoas que não usaram o genkernel para construir seu kernel
  • O segundo grub.conf é para pessoas que usaram o genkernel para construir seu kernel

Note: Se seu sistema de arquivos raiz (root) for JFS, você deve adicionar " ro" à linha kernel, já que o JFS precisa rodar seu registro antes de permitir a montagem de leitura-escrita.

Code Listing 3: grub.conf para quem não usou genkernel

# Que item para carregar como padrão; 0 é o primeiro, 1 é o segundo, etc.
default 0
# Quantos segundos para esperar antes do ítem padrão ser carregado.
timeout 30
# Uma bela imagem de splash para deixar as coisas mais interessantes :)
# Comente a linha se você não tem uma placa gráfica instalada
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 
# Partição onde a imagem de kernel (ou sistema operacional) está localizada
root (hd0,0)
kernel /boot/ root=/dev/hda3

title=Gentoo Linux  (socorro)
# Partição onde a imagem de kernel (ou sistema operacional) está localizada
root (hd0,0)
kernel /boot/ root=/dev/hda3 init=/bin/bb

# As próximas quatro linhas só são para quem tem Windows instalado paralelamente.
# Neste caso, o Windows está em /dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Code Listing 4: grub.conf para usuários do genkernel

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 
root (hd0,0)
kernel /boot/ root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/

# Apenas no caso de querer um dual-boot
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Note: O udev mencionado no final da linha do kernel é necessário para contornar um bug em algumas versões do genkernel se você usar udev para começar (que é o comportamento padrão).

Se você usou um esquema de particionamento diferente e/ou imagem de kernel, ajuste de acordo. No entanto, certifique-se de que qualquer coisa depois de um dispositivo do GRUB (como (hd0,0)) é relativo ao ponto de montagem, não a raiz. Em outras palavras, (hd0,0)/grub/splash.xpm.gz é na realidade /boot/grub/splash.xpm.gz, uma vez que (hd0,0) é /boot.

Além disso, se você escolheu usar um esquema de particionamento diferente e não colocou /boot em uma partição separada, o prefixo /boot usado nas amostras de código acima é realmente necessário. Se você seguiu nosso plano de particionamento sugerido, o prefixo /boot não é necessário, mas um link simbólico boot faz funcionar. Em resumo, os exemplos acima devem funcionar tanto com uma partição de /boot separada ou não.

Se você precisa passar opções adicionais para o kernel, simplesmente adicione-as ao final da linha de comando do kernel. Já estamos passando uma opção (root=/dev/hda3 ou real_root=/dev/hda3), mas você pode passar outras também, como as expressões video e/ou vga para framebuffer que nós discutimos anteriormente.

Se você estiver usando um kernel 2.6.7 ou mais novo e colocou jumpers em seu disco rígido porque a BIOS não consegue lidar com discos rígidos grandes, você precisará anexar a opção hdx=stroke.

Usuários do genkernel devem saber que seus kernéis usam as mesmas opções de inicialização que as usadas no CD de instalação. Por exemplo, se você tiver dispositivos SCSI, você deve adicionar doscsi como uma opção de kernel.

Agora salve o arquivo grub.conf e saia. Nós ainda precisamos instalar o GRUB no registro mestre de inicialização (MBR), todavia, para que o GRUB seja executado automaticamente quando você ligar seu sistema.

Os desenvolvedores do GRUB recomendam o uso do grub-install. Porém, se por algum motivo o grub-install não funcionar corretamente, você ainda tem a opção de instalar o GRUB manualmente.

Continue com Padrão: Configurando o GRUB usando o grub-install ou Alternativa: Configurando o GRUB manualmente.

Padrão: Configurando o GRUB usando o grub-install

Para instalar o GRUB você irá precisar rodar o comando grub-install. No entanto, o grub-install não irá funcionar sem ajustes porque estamos dentro de um ambiente de chroot. Precisamos criar o /etc/mtab, que lista todos sistemas de arquivos montados. Felizmente, existe um jeito fácil de fazê-lo - simplesmente copiar /proc/mounts para /etc/mtab, excluindo a linha rootfs se você não criou uma partição de inicialização (boot) separada. O seguinte comando irá funcionar em ambos casos:

Code Listing 5: Criando o /etc/mtab

# grep -v rootfs /proc/mounts > /etc/mtab

Agora podemos instalar o GRUB usando o grub-install:

Code Listing 6: Rodando o grub-install

# grub-install --no-floppy /dev/hda

Se você tem mais perguntas sobre o GRUB, por favor consulte o GRUB FAQ ou o Manual do GRUB.

Continue com Reiniciando o sistema.

Alternativa: Configurando o GRUB manualmente

Para iniciar a configuração do GRUB digite grub. Você verá o prompt de comando do grub, grub>. Agora, você tem que digitar os comandos corretos para instalar os arquivos de inicialização do GRUB em seu disco rígido.

Code Listing 7: Iniciando o shell do GRUB

# grub --no-floppy

Note: Se o seu sistema não tem dispositivos de disquete, adicione a opção --no-floppy ao comando acima para prevenir que o GRUB procure os dispositivos de disquete (não-existentes).

Na configuração de exemplo, nós queremos instalar o GRUB de maneira que ele leia sua informação da partição de inicialização (boot) e instale o arquivo de inicialização do GRUB no registro mestre de inicialização (MBR) do disco rígido de forma que a primeira coisa que vejamos quando ligamos o computador é o prompt do GRUB. Lógico, se você não seguiu as configurações de exemplo durante a instalação, mude os comandos de acordo.

O mecanismo de completação de tab do GRUB pode ser usado de dentro do GRUB. Por exemplo, se você digitar "root (" seguido de um TAB, você verá uma lista de dispositivos (como hd0). Se você digitar "root (hd0," seguido de um TAB, você receberá uma lista de partições disponíveisypfnpara escolher (como hd0,0).

Usando a completação de tab, configurar o GRUB não é tão difícil. Vamos configurar o GRUB agora? :-)

Code Listing 8: Instalando o GRUB no MBR

grub> root (hd0,0)          (Coloque onde sua partição /boot reside)
grub> setup (hd0)           (Instale o GRUB no MBR)
grub> quit                  (Saia do shell do GRUB)

Note: Se você não quiser instalar o GRUB no registro mestre de inicialização (MBR) e sim numa partição, você tem de alterar o comando setup para que ele aponte para a partição correta. Por exemplo, se você quer o GRUB instalado em /dev/hda3, então o comando vira setup (hd0,2). Poucos usuários, no entanto, devem fazer isso.

Se você tem mais perguntas em relação ao GRUB, por favor consulte o GRUB FAQ ou o Manual do GRUB.

Continue com Reiniciando o sistema.

1.c. Alternativa: Usando o LILO

Instalando o LILO

LILO, o LInuxLOader, é mais testado e o mais antigo dos gerenciadores de inicialização de Linux. No entanto, ele não tem algumas funções que o GRUB tem (que é a razão pela qual o GRUB está ganhando popularidade atualmente). O motivo pelo qual o LILO ainda é usado é que, em alguns sistemas, o GRUB não funciona e o LILO sim. Claro, também é usado porque algumas pessoas conhecem o LILO e querem continuar usando ele. De qualquer maneira, o Gentoo suporta ambos, e aparentemente você escolheu usar o LILO.

Instalar o LILO é moleza; apenas use emerge.

Code Listing 8: Instalando o LILO

# emerge lilo

Configurando o LILO

Para configurar o LILO, você deve criar o arquivo /etc/lilo.conf. Inicie seu editor favorito (neste manual nós usamos o nano para consistência) e crie o arquivo.

Code Listing 8: Criando o /etc/lilo.conf

# nano -w /etc/lilo.conf

Algumas seções atrás nós perguntamos a você para lembrar-se do nome da imagem do kernel que você criou. No próximo exemplo do arquivo lilo.conf nós usamos o exemplo de esquema de partições. Existem duas partes separadas:

  • Uma para aqueles que não usaram o genkernel para gerar o kernel
  • Uma para aqueles que usaram o genkernel para gerar o kernel

Tenha certeza de usar o nome de arquivo da sua imagem de kernel e, se apropriado, o nome de arquivo de sua imagem de initrd.

Note: Se seu sistema de arquivos raiz (root) for JFS, você deve adicionar append="ro" uma linha depois de cada item de inicialização, já que o JFS precisa rodar seu registro antes de permitir a montagem de leitura-escrita.

Code Listing 8: Exemplo de /etc/lilo.conf

boot=/dev/hda             # Instalar o LILO no MBR
prompt                    # Dar chance ao usuário de selecionar outra seção
timeout=50                # Esperar 5 (cinco) segundos antes de carregar a seção padrão
default=gentoo            # Quando o timeout acabar, carregar a seção "gentoo"

# Para quem não usou genkernel
image=/boot/
  label=gentoo            # Nome que damos à seção
  read-only               # Começar com uma raiz só de leitura. Não mude!
  root=/dev/hda3          # Local do sistema de arquivos raiz (root)

image=/boot/
  label=gentoo            # Nome que damos à seção
  read-only               # Começar com uma raiz só de leitura. Não mude!
  root=/dev/hda3          # Local do sistema de arquivos raiz (root)
  append="init=/bin/bb"   # Inicie o Gentoo com um shell de resgate estático

# Para quem usou genkernel
image=/boot/
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/

# As próximas duas linhas são só para quem tem Windows instalado em paralelo.
# Neste caso, o Windows está armazenado em /dev/hda6.
other=/dev/hda6
  label=windows

Note: O udev mencionado no final da linha do kernel é necessário para contornar um bug em algumas versões do genkernel se você usar udev para começar (que é o comportamento padrão).

Note: Se você usa um esquema de particionamento diferente e/ou imagem de kernel, ajuste de acordo.

Para passar quaisquer opções adicionais ao kernel, adicione um comando append à seção. Como exemplo, nós adicionamos o comando video para ativar o framebuffer:

Code Listing 8: Usando o append para adicionar opções de kernel

image=/boot/
  label=gentoo
  read-only
  root=/dev/hda3
  append="video=vesafb:mtrr,ywrap,1024x768-32@85"

Se você estiver usando um kernel 2.6.7 e colocou jumpers em seu disco rígido porque a BIOS não consegue lidar com discos rígidos grandes você precisará anexar a opção hdx=stroke.

Usuários do genkernel devem saber que seus kernéis usam as mesmas opções de inicialização que as usadas no CD de instalação. Por exemplo, se você tem dispositivos SCSI, você deve adicionar doscsi como uma opção de kernel.

Agora salve o arquivo e saia. Para terminar, você tem que rodar /sbin/lilo para que o LILO aplique o /etc/lilo.conf a seu sistema (isto é, instalar-se no disco). Tenha em mente que você também terá que rodar /sbin/lilo toda vez que você instalar um kernel novo ou fizer mudanças ao menu.

Code Listing 8: Finalizando a instalação o LILO

# /sbin/lilo

Se você tiver mais questões sobre o LILO por favor consulte sua página na wikipedia.

Você pode agora continuar com Reiniciando o sistema.

1.d. Padrão: Instalando o elilo

Na plataforma IA64 o gerenciador de boot é chamado elilo. Você deve fazer emerge dele na sua máquina antes.

Code Listing 8: Instalando o elilo

# emerge elilo

Você pode encontrar seu arquivo de configuração em /etc/elilo.conf e um arquivo de exemplo nas pastas típicas de documentação /usr/share/doc/elilo-<ver>/. Aqui está outro exemplo de configuração:

Code Listing 8: exemplo do /etc/elilo.conf

boot=/dev/sda1
delay=30
timeout=50
default=Gentoo
append="console=ttyS0,9600"
prompt

image=/vmlinuz
	label=Gentoo
	root=/dev/sda2
	read-only

image=/vmlinuz.old
	label=Gentoo.old
	root=/dev/sda2
	read-only

A linha boot diz ao elilo a localização da partição de boot (nesse caso, /dev/sda1). A linha delay define o número de décimos de segundos antes de iniciar automaticamente o padrão quando no modo não-interativo. A linha timeout é apenas como a linha delay mas para o modo interativo. A linha default define a entrada padrão (que é definida abaixo). A linha append adiciona opções extras a linha de comando do kernel. O prompt define o comportamente padrão do elilo como interativo.

As seções que iniciam com image definem diferente imagens inicializáveis. Cada imagem tem um nome bonzinho, um sistema de arquivos raiz e apenas vai montar o sistema de arquivos raiz como somente leitura .

Quando a configuração estiver pronta rode elilo --efiboot. A opção --efiboot adiciona uma entrada no menu para Gentoo Linux para o EFI Boot Manager.

Code Listing 8: Aplicando a configuração do elilo

 # elilo --efiboot

Agora continue com Reiniciando o sistema.

1.e. Reiniciando o sistema

Saia do ambiente de chroot e desmonte todas partições montadas. Então digite aquele comando mágico que você estava esperando: reboot.

Code Listing 9: Desmontando todas partições e reiniciando

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

Claro, não se esqueça de tirar o CD carregável, ou o CD será carregado novamente ao invés de seu novo sistema Gentoo.

Uma vez iniciada sua instalação do Gentoo, termine com (Completando sua instalação do Gentoo).

Updated June 4, 2007

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Contact us.