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 |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux
root (hd0,0)
kernel /boot/ root=/dev/hda3
title=Gentoo Linux (socorro)
root (hd0,0)
kernel /boot/ root=/dev/hda3 init=/bin/bb
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/
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)
grub> setup (hd0)
grub> quit
|
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
prompt
timeout=50
default=gentoo
image=/boot/
label=gentoo
read-only
root=/dev/hda3
image=/boot/
label=gentoo
read-only
root=/dev/hda3
append="init=/bin/bb"
image=/boot/
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
initrd=/boot/
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).
|