Gentoo Linux x86 Handbook: Installing Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/Full/Installation and the translation is 100% complete.



Introdução

Bem-vindo

Em primeiro lugar, bem-vindo ao Gentoo. Você está prestes a entrar em um mundo de opções e performance. O Gentoo é todo sobre opções. Quando você estiver instalando o Gentoo isso é deixado claro muitas vezes -- os usuários podem escolher quanto do sistema querem compilar eles mesmos, como instalar o Gentoo, qual sistema de log usar, etc.

Openness

Gentoo's premier tools are built from simple programming languages. Portage, Gentoo's package maintenance system, is written in Python. Ebuilds, which provide package definitions for Portage are written in bash. Our users are encouraged to review, modify, and enhance the source code for all parts of Gentoo.

By default, packages are only patched when necessary to fix bugs or provide interoperability within Gentoo. They are installed to the system by compiling source code provided by upstream projects into binary format (although support for precompiled binary packages is included too). Configuring Gentoo happens through text files.

For the above reasons and others: openness is built-in as a design principle.

Choice

O Gentoo é uma distribuição veloz e moderna com um projeto limpo e flexível. O Gentoo é construído em torno de um ecossistema de software livre e não esconde de seus usuários o que está "sob o capô do motor". O Portage, o sistema de gerenciamento de pacotes utilizado pelo Gentoo, é escrito em Python, o que significa que o usuário pode facilmente ver e modificar o código fonte. O sistema de pacotes do Gentoo usa código fonte (mas o suporte para pacotes pré-compilados também é incluído) e a configuração do Gentoo é feita através de arquivos texto comuns. Em outras palavras, tudo acontece de forma muito clara e aberta.

When installing Gentoo, choice is made clear throughout the Handbook. System administrators can choose two fully supported init systems (Gentoo's own OpenRC and Freedesktop.org's systemd), partition structure for storage disk(s), what file systems to use on the disk(s), a target system profile, remove or add features on a global (system-wide) or package specific level via USE flags, bootloader, network management utility, and much, much more.

As a development philosophy, Gentoo's authors try to avoid forcing users onto a specific system profile or desktop environment. If something is offered in the GNU/Linux ecosystem, it's likely available in Gentoo. If not, then we'd love to see it so. For new package requests please file a bug report or create your own ebuild repository.

Power

Being a source-based operating system allows Gentoo to be ported onto new computer instruction set architectures and also allows all installed packages to be tuned. This strength surfaces another Gentoo design principal: power.

A system administrator who has successfully installed and customized Gentoo has compiled a tailored operating system from source code. The entire operating system can be tuned at a binary level via the mechanisms included in Portage's make.conf file. If so desired, adjustments can be made on a per-package basis, or a package group basis. In fact, entire sets of functionality can be added or removed using USE flags.

É muito importante que todos entendam que são as escolhas que movem o Gentoo. Nós tentamos não forçar os usuários em nada que eles não gostam. Se alguém pensa ao contrário, por favor, reporte o bug.

Como a instalação é estruturada

A instalação do Gentoo pode ser vista como um procedimento de 10 passos, correspondendo ao conjunto dos próximos capítulos. Cada passo resulta em um certo estado:

Passo Resultado
1 O usuário está em um ambiente pronto para instalar o Gentoo
2 A conexão com a Internet está pronta para instalar o Gentoo
3 Os discos rígidos estão inicializados para receber a instalação do Gentoo
4 O ambiente de instalação está preparado e o usuário pronto para fazer chroot no novo ambiente
5 Os pacotes básicos, que são os mesmos em qualquer instalação do Gentoo, estão instalados
6 O kernel Linux está instalado
7 A maior parte dos arquivos de configuração do sistema Gentoo foram criados
8 As ferramentas necessárias do sistema estão instaladas
9 O gerenciador de boot adequado foi instalado e configurado
10 O recém instalado ambiente do Gentoo Linux está pronto para ser explorado.

Sempre que é apresentada uma escolha a ser feita, o manual tentará explicar quais são os prós e contras de cada escolha, Apesar do texto continuar a partir de uma escolha default (identificada com "Default: " no título), as outras possibilidades serão também documentadas (marcadas como "Alternativa: " no título). Não pense que a escolha default é a recomendada pelo Gentoo. É apenas o que o Gentoo acredita que a maioria dos usuários irá usar.

Às vezes um passo opcional pode ser seguido. Tais passos são marcados com "Opcional: " e são, dessa forma, não necessários para instalar o Gentoo. Entretanto, alguns passos opcionais são dependentes de alguma escolha previamente feita. As instruções informarão ao leitor quando isso acontecer, tanto quando a decisão for feita e logo antes do passo opcional ser descrito.

Opções de Instalação do Gentoo

O Gentoo pode ser instalado de muitas maneiras. Ele pode ser baixado e instalado a partir de uma da mídias oficiais de instalação como as nossas imagens ISO inicializaveis. A mídia de instalação pode ser colocada em um pendrive ou acessada via boot pela rede. Como alternativa, o Gentoo pode ser instalado de uma mídia não oficial como uma distribuição já instalada ou um disco de boot não-Gentoo (como o Knoppix).

Este documento cobre a instalação usando a mídia de instalação oficial do Gentoo ou, em certos casos, netbooting.

Nota
Para ajuda com outras abordagens de instalação, incluindo o uso de mídias não-Gentoo, por favor leia o Guia de instalação alternativa.

Também provemos o documento Dicas & truques de instalação do Gentoo que pode ser de utilidade ler também.

Problemas

Se for encontrado um problema na instalação (ou na documentação de instalação), por favor visite nosso sistema de rastreamento de bugs e verifique se é um problema já conhecido. Se não for, por favor, crie um relatório do bug para o problema de modo que possamos resolvê-lo. Não tenha medo dos desenvolvedores para os quais os bugs são designados -- eles (geralmente) não comem pessoas.

Apesar deste documento ser específico para uma arquitetura, ele pode conter referências para outras arquiteturas também, pois grande parte do Manual do Gentoo usa um texto comum para todas as arquiteturas (a fim de evitar duplicação de esforços). Algumas referências foram mantidas ao mínimo, para evitar confusão.

Se houver alguma incerteza sobre um problema ser ou não um problema do usuário (algum erro cometido apesar de ter lido a documentação cuidadosamente) ou um problema do software (algum problema causado por nós, apesar de termos testado a instalação/documentação cuidadosamente) todos são bem-vindos ao canal #gentoo (webchat) no irc.libera.chat. É claro que todos são bem-vindos de qualquer forma uma vez que o canal de bate-papo abrange todo espectro do Gentoo.

Falando nisso, se houver qualquer questão adicional sobre o Gentoo, cheque o artigo Perguntas Frequentemente Feitas (FAQs). Também há FAQs nos Fóruns do Gentoo.




Requisitos de Hardware

Antes de começar, listamos os requisitos de hardware necessários para instalar o Gentoo em uma máquina x86:


CD Mínimo LiveDVD
CPU i486 ou mais recente i686 ou mais recente
Memória 256 MB 512 MB
Espaço em disco 2.5 GB (excluindo área de swap)
Área de swap Pelo menos 256 MB

O projeto X86 é um bom lugar para maiores informações sobre o suporte do Gentoo ao x86.


Mídia de instalação do Gentoo Linux

Dica
While it's recommended to use the official Gentoo boot media when installing, it's possible to use other installation environments. However, there is no guarantee they will contain required components. If an alternate install environment is used, skip to Preparing the disks.

CD de instalação mínima

O CD de instalação mínima do Gentoo é uma imagem inicializavel: um ambiente Gentoo independente. Ele permite ao usuário dar boot no Linux a partir do CD ou outra mídia de instalação. Durante o processo de boot o hardware é detectado e os drivers apropriados são carregados. A imagem é mantida pelos desenvolvedores do Gentoo e permite a qualquer um instalar o Gentoo desde que uma conexão ativa com a Internet esteja disponível.

O CD de instalação mínima é chamado install-x86-minimal-<release>.iso.

O LiveDVD ocasional do Gentoo

Ocasionalmente, uma imagem DVD especial é criada e pode ser utilizada para instalar o Gentoo. As instruções nesse capítulo tem como alvo o CD de Instalação Mínima, então elas podem ser um pouco diferentes quando iniciadas pelo LiveDVD. Entretanto, o LiveDVD (ou qualquer outro ambiente Linux inicializavel) suporta obter um prompt do root apenas executando sudo su - ou sudo -i em um terminal.

O que são os stages então?

Um arquivo tar stage3 é um arquivo contendo um perfil específico do ambiente mínimo do Gentoo. Os Stage3 tarballs são adequados para dar continuidade à instalação do Gentoo usando as instruções deste manual. Anteriormente, o Manual do Gentoo descrevia a instalação usando um dos três arquivos tar de stage. O Gentoo não oferece mais os tarballs do stage1 e stage2 para download já que estes são principalmente para uso interno e para inicializar o Gentoo em novas arquiteturas.

Arquivos tar do stage3 podem ser baixados de releases/x86/autobuilds/ em qualquer um dos espelhos oficiais do Gentoo. Arquivos de stage são atualizados frequentemente e não são fornecidos nas imagens de instalação oficial.

Dica
For now, stage files can be ignored. They will be described in greater detail later when they are needed
Nota
Historically, the handbook described installation steps for stage files with versions lower than 3. These stages contained environments unsuitable for typical installations, and are no longer covered in the handbook.

Baixando

Obtendo a mídia

A mídia padrão de instalação que o Gentoo Linux usa são os "CDs mínimos de instalação", que contém um ambiente do Gentoo Linux inicializável e bem pequeno. Esse ambiente contém todas as ferramentas necessárias para instalar o Gentoo. As imagens de CD em si podem ser baixadas da página de downloads (método recomendado) ou manualmente selecionando a localização do arquivo ISO em um dos muitos espelhos disponíveis.

Navigating Gentoo mirrors

Se baixar de um dos espelhos, os CDs mínimos de instalação podem ser encontrados da seguinte forma:

  1. Vá para o diretório releases/
  2. Selecione o diretório da arquitetura destino relevante, tal como x86/.
  3. Selecione o diretório autobuilds/
  4. Para as arquiteturas amd64 e x86, selecione ou o diretório current-install-amd64-minimal/ ou current-install-x86-minimal/ (respectivamente). Para todas as outras arquiteturas, selecione o diretório current-iso/.
Nota
Algumas arquiteturas tais como arm, mips e s390 não têm disponíveis CDs mínimos de instalação. No momento, o Projeto de Engenharia de Lançamentos do Gentoo não tem suporte para a criação de arquivos .iso para essas arquiteturas.

Dentro desse local, o arquivo da mídia de instalação é o arquivo com o sufixo .iso. Por exemplo, observe a listagem abaixo:

CODE Lista com exemplo de arquivos que podem ser baixados em releases/x86/autobuilds/current-iso/
[DIR] hardened/                                          05-Dec-2014 01:42    -   
[   ] install-x86-minimal-20141204.iso                 04-Dec-2014 21:04  208M  
[   ] install-x86-minimal-20141204.iso.CONTENTS        04-Dec-2014 21:04  3.0K  
[   ] install-x86-minimal-20141204.iso.DIGESTS         04-Dec-2014 21:04  740   
[TXT] install-x86-minimal-20141204.iso.DIGESTS.asc     05-Dec-2014 01:42  1.6K  
[   ] stage3-x86-20141204.tar.bz2                      04-Dec-2014 21:04  198M  
[   ] stage3-x86-20141204.tar.bz2.CONTENTS             04-Dec-2014 21:04  4.6M  
[   ] stage3-x86-20141204.tar.bz2.DIGESTS              04-Dec-2014 21:04  720   
[TXT] stage3-x86-20141204.tar.bz2.DIGESTS.asc          05-Dec-2014 01:42  1.5K

No exemplo acima, o arquivo install-x86-minimal-20141204.iso é o CD de instalação mínima. Mas, como podemos ver, existem outros arquivos relacionados:

  • Um arquivo .CONTENTS que é um arquivo texto com a lista de todos os arquivos contidas na mídia de instalação. Esse arquivo pode ser útil para verificar se um firmware ou driver em particular está disponível na mídia de instalação antes de baixá-lo.
  • Um arquivo .DIGESTS que contém o hash do arquivo ISO em si, em vários formatos de hash/algorítmos. Esse arquivo pode ser usado para verificar se o ISO baixado foi corrompido ou não.
  • Um arquivo .DIGESTS.asc que contém não apenas contém o hash do arquivo ISO (como o arquivo .DIGESTS), mas também uma assinatura criptográfica desse arquivo. Isso pode ser usado para tanto verificar se o arquivo baixado foi corrompido ou não, como também verificar se o ISO baixado é realmente fornecido pela equipe de Engenharia de Lançamentos do Gentoo e que não foi adulterado.

Ignore os outros arquivos disponíveis por enquanto - eles serão vistos quando a instalação avançar. Baixe o arquivo .iso e, se quiser verificar o download, baixe o arquivo .DIGESTS.asc do .iso também. O arquivo .CONTENTS não precisa ser baixado uma vez que as instruções de instalação não farão mais referência a esse arquivo, e o arquivo .DIGESTS deve conter as mesmas informações que o arquivo .DIGESTS.asc, exceto que esse último também contém uma assinatura no seu início.

Dica
The .DIGESTS file is only needed if the signature in the .iso.asc file is not verified.

Verificando os arquivos baixados

Nota
Este é um passo adicional e não é necessárioa para a instalação do Gentoo Linux. Entretanto, ele é recomendado uma vez que assegura que o arquivo baixado não foi corrompido e que realmente foi provido pela equipe de Infraestrutura do Gentoo.
  1. Primeiro a assinatura criptográfica é validade para se ter certeza que o arquivo de instalação é fornecido pela equipe de Engenharia de Lançamentos do Gentoo
  2. Se a assinatura criptográfica é válida, então o checksum é verificado para se comprovar que o arquivo baixado não foi corrompido

Verificando no Microsoft Windows

Para primeiro verificar a assinatura criptográfica, ferramentas tais como o GPG4Win podem ser usadas. Após a instalação, as chaves públicas da equipe de Engenharia de Lançamento do Gentoo precisam ser importadas. A lista das chaves está disponível na página de assinaturas. Uma vez importadas, o usuário pode então verificar a assinatura do arquivo .DIGESTS.asc.

Verificando no Linux

Em um sistema Linux, o método mais comum de verificar uma assinatura criptográfica é usando o software app-crypt/gnupg. Com esse pacote instalado, o seguinte comando pode ser usado para verificar a assinatura criptográfica do arquivo .DIGESTS.asc.

Dica
When importing Gentoo keys, verify that the fingerprint (BB572E0E2D182910) matches.

Primeiro, baixe o conjunto correto de chaves disponibilizadas na página de assinaturas:

user $gpg --keyserver hkps://keys.gentoo.org --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net
gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   3  signed:  20  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:  20  signed:  12  trust: 9-, 0q, 0n, 9m, 2f, 0u
gpg: next trustdb check due at 2018-09-15
gpg: Total number processed: 1
gpg:         new signatures: 1

Como alternativa você pode usar no lugar o WKD para baixar a chave:

--2019-04-19 20:46:32--  https://gentoo.org/.well-known/openpgpkey/hu/wtktzo4gyuhzu8a4z5fdj3fgmr1u6tob?l=releng
Resolving gentoo.org (gentoo.org)... 89.16.167.134
Connecting to gentoo.org (gentoo.org)|89.16.167.134|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35444 (35K) [application/octet-stream]
Saving to: 'STDOUT'
 
     0K .......... .......... .......... ....                 100% 11.9M=0.003s
 
2019-04-19 20:46:32 (11.9 MB/s) - written to stdout [35444/35444]
 
gpg: key 9E6438C817072058: 84 signatures not checked due to missing keys
gpg: /tmp/test2/trustdb.gpg: trustdb created
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: 12 signatures not checked due to missing keys
gpg: key BB572E0E2D182910: 1 bad signature
gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: Total number processed: 2
gpg:               imported: 2
gpg: no ultimately trusted keys found

Or if using official Gentoo release media, import the key from /usr/share/openpgp-keys/gentoo-release.asc (provided by sec-keys/openpgp-keys-gentoo-release):

user $gpg --import /usr/share/openpgp-keys/gentoo-release.asc
gpg: directory '/home/larry/.gnupg' created
gpg: keybox '/home/larry/.gnupg/pubring.kbx' created
gpg: key DB6B8C1F96D8BF6D: 2 signatures not checked due to missing keys
gpg: /home/larry/.gnupg/trustdb.gpg: trustdb created
gpg: key DB6B8C1F96D8BF6D: public key "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" imported
gpg: key 9E6438C817072058: 3 signatures not checked due to missing keys
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: 1 signature not checked due to a missing key
gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: key A13D0EF1914E7A72: 1 signature not checked due to a missing key
gpg: key A13D0EF1914E7A72: public key "Gentoo repository mirrors (automated git signing key) <repomirrorci@gentoo.org>" imported
gpg: Total number processed: 4
gpg:               imported: 4
gpg: no ultimately trusted keys found

A seguir verifique a assinatura criptográfica do arquivo .DIGESTS.asc:

user $gpg --verify install-x86-minimal-20141204.iso.DIGESTS.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET
gpg:                using RSA key 0xBB572E0E2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910

Para estar absolutamente certo de que tudo é validado, verifique a impressão digital (fingerprint) mostrada com a impressão digital da página de assinaturas do Gentoo.

Nota
It's generally good practice to mark an imported key as trusted, once it's certain the key is trustworthy. When trusted keys are verified, gpg will not say unknown and warn about the signature being untrusted.

Writing the boot media

Claro, apenas com o arquivo ISO baixado, a instalação do Gentoo Linux não pode ser iniciada. O arquivo ISO precisa ser gravado em um CD para boot, de forma que seu "conteúdo" é gravado no CD, não o arquivo em si. Abaixo são descritos alguns métodos mais comuns - um conjunto mais elaborado de instruções pode ser encontrado em nossa FAQ em como gravar um arquivo ISO.

Writing a bootable USB

Most modern systems support booting from a USB device.

Writing with Linux

dd is typically available on most Linux distros, and can be used to write the Gentoo boot media to a USB drive.

Determining the USB device path

Before writing, the path to the desired storage device must be determined.

dmesg will display detailed information describing the storage device as it is added to the system:

root #dmesg
[268385.319745] sd 19:0:0:0: [sdd] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)

Alternatively, lsblk can be used to display available storage devices:

root #lsblk
sdd           8:48   1  28.9G  0 disk
├─sdd1        8:49   1   246K  0 part
├─sdd2        8:50   1   2.8M  0 part
├─sdd3        8:51   1 463.5M  0 part
└─sdd4        8:52   1   300K  0 part

Once the device name has been determined, this can be added to the path prefix /dev/ to get the device path /dev/sdd.

Dica
Using the base device path, ie. sdd opposed to sdd1, is recommend as the Gentoo boot media contains a full GPT partition scheme.
Writing with dd
Aviso
Be sure to check the target (of=target) path before executing dd, as it will be overwritten.

With the device path (/dev/sdd) and boot media install-amd64-minimal-<release timestamp>.iso ready:

root #dd if=install-amd64-minimal-<release timestamp>.iso of=/dev/sdd bs=4096 status=progress && sync
Nota
if= specifies the input file, of= specifies the output file, which in this case, is a device.
Dica
bs=4096 is used as it speeds up transfers in most cases, status=progress displays transfers stats.

Gravando

See also
A more elaborate set of instructions can be found in CD/DVD/BD_writing#Image_writing.

Gravando com o Microsoft Windows 7 ou superior

Versões do Microsoft Windows 7 e superiores podem ser utilizadas para gravar e montar uma imagem ISO para uma mídia óptica sem precisar de programas de terceiros. Simplesmente insira um disco gravavél, navegue até o arquivo ISO baixado, clique com o botão direito no arquivo no Windows Explorer, e selecione "Gravar imagem no disco".

Gravando com o Linux

O cdrecord, que é um utilitário do pacote app-cdr/cdrtools pode gravar imagens ISO no Linux.

Para gravar o arquivo ISO no CD no dispositivo /dev/sr0 (esse é o primeiro dispositivo de CD do sistema - substitua pelo dispositivo correto se necessário):

user $cdrecord dev=/dev/sr0 install-x86-minimal-20141204.iso

Usuários que preferem uma interface gráfica podem usar o K3B, parte do pacote kde-apps/k3b. No K3B, vá para Tools e use Burn CD Image.

Inicializando



Inicializando pela midia de instalação

Uma vez que a mídia de instalação está pronta, é hora de usá-lo. Insira e mídia no sistema, reinicie o sistema e acesse a interface de usuário do firmware da placa-mãe. Isso é normalmente feito teclando DEL, F1 ou ESC durante o processo de boot ("Power-On Self Test - POST"). A tecla correta varia, dependendo do sistema e placa-mãe utilizada. Em caso de dificuldade, pesquise na Internet o modelo da placa-mãe. Uma vez dentro do menu do firmware da placa-mãe, troque a ordem de boot de modo que a mídia externa de boot (discos de CD/DVD ou drives USB) sejam tentados antes do disco rígido interno. Sem essa mudança, o sistema irá provavelmente apenas iniciar pelo disco rígido interno, ignorando a mídia externa de boot.

Importante
Quando instalar o Gentoo com o propósito de usar a interface UEFI em vez da BIOS, é recomendado inicializar com o UEFI imediatamente. Se isso não for feito, então pode ser necessário criar um pendrive USB UEFI inicializável (ou outra mídia) uma vez antes de finalizar a instalação do Gentoo Linux.

Se ainda não foi feito, certifique-se que a mídia de instalação está inserida ou plugada no sistema e reinicie o sistema. Um sinal de pronto do boot deve aparecer. Nessa tela, o Enter iniciará o processo de inicialização com as opções padrões de inicialização. Para inicializar a mídia de instalação com opções de inicialização customizadas, especifique o kernel seguido pelas opções de inicialização e tecle Enter.

Nota
Provavelmente, o kernel padrão do Gentoo, como mencionado acima, sem especificar nenhum parâmetro opcional vai funcionar corretamente. Para solução de problemas de inicialização e opções para experts, continue nessa seção. Caso contrário, apenas aperte Enter e pule para Configuração extra de hardware.

No sinal de pronto, os usuários tem a opção de visualizar os kernel disponíveis (F1) e opções de inicialização (F2). Se nenhuma escolha for feita em 15 segundos (mostrar informações ou usar um kernel) então a mídia de instalação continuará inicializando pelo disco rígido. Isso permite às instalações reinicializar e experimentar o ambiente instalado sem a necessidade de remover o CD da bandeja (o que é útil em instalações remotas).

Mencionamos que é possível especificar um kernel. Na mídia de instalação mínima, apenas duas opções de boot do kernel estão disponíveis. A opção padrão é chamada gentoo. A outra opção sendo a variante -nofb, que desalibita o suporte ao framebuffer do kernel.

A próxima seção mostra uma breve descrição dos kernel disponíveis.

Opções de Kernel

gentoo
Kernel padrão com suporte para CPUs K8 (incluindo suporte a NUMA) e CPUs EM64T
gentoo-nofb
Mesmo que gentoo mas sem suporte ao framebuffer
memtest86
Testa se há erros de RAM

Além do kernel, as opções de inicialização ajudam a afinar o processo de inicialização ainda mais.

Opções de Hardware

acpi=on
Carrega suporte a ACPI e também faz com que o serviço acpid seja iniciado pelo CD durante a inicialização. Isso é apenas necessário se o sistema precisar da ACPI para funcionar adequadamente. Essa opção não é necessária para suporte a Hyperthreading.
acpi=off
Desabilita completamente a ACPI. Isso é útil em sistemas mais antigos e também é necessário para usar APM. Isso irá desabilitar todo o suporte a Hyperthreading do processador.
console=X
Configura acesso a console serial para o CD. A primeira opção é o dispositivo, normalmente ttyS0, seguida pelas opções de conexão, separadas por vírgulas. As opções padrões são 9600,8,n,1.
dmraid=X
Permite passar opções ao device-mapper do subsistema RAID. As opções devem estar entre aspas.
doapm
Carrega o driver de suporte a APM. Isso requer a opção acpi=off.
dopcmcia
Carrega o suporte a hardware PCMCIA e Cardbus e também faz com que o cardmgr pcmcia seja iniciado pelo CD no boot. Esta opção é apenas necessária quando inicializar de dispositivos PCMCIA/Cardbus.
doscsi
Carrega suporte a maioria dos controladores SCSI. É também necessário para inicializar pela maioria dos dispositivos USB, uma vez que eles usam o subsistema SCSI do kernel.
sda=stroke
Permite ao usuário particionar o disco rígido inteiro mesmo que a BIOS seja incapaz de gerenciar discos grandes. Esta opção é usada apenas em máquinas com BIOS antigas. Troque sda pelo dispositivo que necessita da opção.
ide=nodma
Força a desabilitação do DMA no kernel e é necessária por alguns chipsets IDE e também por alguns drives de CDROM. Se o sistema apresentar problemas para ler o CDROM IDE, tente esta opção. Também desabilita a execução da configuração padrão do hdparm.
noapic
Desabilita o Controlador de Interrupções Programável Avançado (APIC) encontrado em placas-mãe mais novas. Sabe-se que pode causar alguns problemas em hardwares mais antigos.
nodetect
Desabilita toda a autodetecção feita pelo CD, incluindo autodetecção de dispositivos e configuração por DHCP. Isso é util para depuração de problemas de um CD ou driver.
nodhcp
Desabilita a configuração por DHCP nas interfaces de rede detectadas. Isso é útil em redes que usam apenas endereços estáticos.
nodmraid
Desabilita suporte ao device-mapper RAID, tais como as usadas por controladoras on-board RAID IDE/SATA.
nofirewire
Desabilita o carregamento dos módulos Firewire. Isso deve ser necessário apenas se seu hardware Firewire estiver causando problemas na inicialização pelo CD.
nogpm
Desabilita o suporte gpm ao mouse no console.
nohotplug
Desabilita a carga dos scripts de inicialização do hotplug e coldplug na inicialização. Isso é útil para fazer depuração de um CD ou driver problemático.
nokeymap
Desabilita a seleção de mapa de caracteres usada para selecionar layouts de teclados não-US.
nolapic
Desabilita o APIC local em kernels uniprocessados.
nosata
Desabilita o carregamento dos módulos Serial ATA. Isso é usando quando o sistema estiver tendo problemas com o subsistema SATA.
nosmp
Desabilita o SMP, ou Multiprocessamento Simétrico, em kernels com o SMP habilitado. Isso é útil para depurar problemas relacionados ao SMP em certos drivers e placas-mãe.
nosound
Desabilita o suporte a som e ajuste de volume. Isso é útil em sistemas onde o suporte a som estiver causando problemas.
nousb
Desabilita o carregamento de módulos USB. É útil para depurar problemas em USB.
slowusb
Adiciona pausa extra no processo de inicialização para CDROMs USB lentos, como no IBM BladeCenter.

Gerenciamento de volume/dispositivo lógico

dolvm
Habilita suporte ao gerenciamento de Volume Lógico do Linux.

Outras opções

debug
Habilita o código de depuração. Isso pode ficar confuso pois mostra uma grande quantidade de dados na tela.
docache
Faz cache de todo o conteúdo do CD na RAM, o que permite ao usuário desmontar o /mnt/cdrom e montar outro CDROM. Esta opção requer que haja pelo menos o dobro de memória RAM disponível que o tamanho do CD.
doload=X
Isso faz com que o disco de RAM inicial carregue qualquer módulo listado, assim como as dependências. Substitua o X pelo nome do módulo. Múltiplos módulos podem ser especificados em uma lista de itens separados por vírgula.
dosshd
Inicia o sshd no boot, o que é útil em instalações remotas.
passwd=foo
Define a senha do root, o que é necessário pelo dosshd uma vez que a senha do root por padrão é "embaralhada".
noload=X
Causa o disco de RAM inicial pular o carregamento de um módulo específico que esteja causando problemas. A sintaxe é a mesma do doload.
nonfs
Desabilita a inicialização do portmap/nfsmount no boot.
nox
Isso faz com que um LiveCD com o X habilitado não inicie automaticamente o X mas, em vez disso, mostre a linha de comando.
scandelay
Faz o CD pausar por 10 segundos durante certas partes do processo de inicialização para permitir que dispositivos lentos inicializem e fiquem prontos para uso.
scandelay=X
Permite ao usuário especificar o atraso, em segundos, a ser adicionado a certas partes do processo de inicialização para permitir que dispositivos lentos inicializem e fiquem prontos para uso. Substitua o X pelo número de segundos para pausar.
Nota
A mídia de boot irá checar as opções no* antes das opções do*, então essas opções podem ser sobrepostas na exata ordem especificada.

Agora inicialize a mídia, selecione um kernel (se o kernel padrão gentoo não for suficiente) e as opções de inicialização. Como exemplo, inicializamos o kernel gentoo, com dopcmcia como parâmetro do kernel.

boot:gentoo dopcmcia

Em seguida o usuário é saudado com uma tela de inicialização e uma barra de progresso. Se a instalação é feita em um sistema com teclado não-EUA, pressione imediatamente Alt + F1 para trocar para o modo verboso e siga as mensagens. Se nenhuma seleção for feita em 10 segundos o padrão (teclado dos EUA) será carregado e o processo de instalação continuará. Uma vez que o processo de inicialização complete, o usuário é automaticamente logado no ambiente "vivo" do Gentoo Linux como usuário "root", o superusuário. Um sinal de pronto é mostrado no console atual, e o usuário pode trocar para outros consoles pressionando Alt + F2, Alt + F3 and Alt + F4. Volte ao console inicial pressionando Alt + F1.



Configuração extra de hardware

Quando a mídia de instalação inicia o sistema, ela tenta detectar todos os dispositivos de hardware e carrega os módulos do kernel apropriados para suportar o hardware. Na grande maioria dos casos, ele faz um ótimo trabalho. Entretanto, em alguns casos ele pode não carregar automaticamente os módulos do kernel que o sistema precisa. Se a auto-detecção PCI não encontrar algum hardware do sistema, os módulos apropriados do kernel precisam ser carregados manualmente.

No exemplo a seguir o módulo 8139too (que dá suporte a certos tipos de interfaces de rede) é carregado:

root #modprobe 8139too

Opcional: Contas de usuários

Se outras pessoas precisarem de acesso ao ambiente de instalação, ou se houver necessidade de executar comandos como usuário não-root na mídia de instalação (tal como conversar usando o irssi (cliente IRC) sem privilégios de root), então uma conta de usuário adicional precisa ser criada e a senha do root trocada para uma senha forte.

Para trocar a senha do root, use o utilitário passwd:

root #passwd
New password: (Digite a nova senha)
Re-enter password: (Re-digite a nova senha)

Para criar uma conta, primeira entre com suas credenciais, seguida da senha da conta. Os comandos useradd e passwd são utilizados para essas tarefas.

No exemplo a seguir, um usuário chamado john é criado:

root #useradd -m -G users john
root #passwd john
New password: (Digite a senha de john)
Re-enter password: (Re-digite a senha de john)

Para trocar do usuário atual (root) para a conta recém-criada, use o comando su:

root #su - john

Opcional: Vendo a documentação enquanto instala

TTYs

Para ver o manual do Gentoo durante a instalação, primeiro crie uma conta de usuário conforme descrito acima. Então tecle Alt + F2 para ir a outro terminal.

Durante a instalação, o comando links pode ser usado para navegar pelo manual do Gentoo - logicamente apenas a partir do momento em que a conexão com a Internet estiver funcionando.

user $links https://wiki.gentoo.org/wiki/Handbook:X86/pt-br

Para voltar ao terminal de origem, tecle Alt + F1.

Dica
When booted to the Gentoo minimal or Gentoo admin environments, seven TTYs will be available. They can be switched by pressing Alt then a function key between F1-F7. It can be useful to switch to a new terminal when waiting for job to complete, to open documentation, etc.

GNU Screen

O utilitário GNU Screen é instalado por default na mídia de instalação oficial do Gentoo. Pode ser mais eficiente para o usuário mais avançado usar o screen para ver as instruções de instalação usando painéis divididos do screen em vez do método de múltiplos TTYs mencionado acima.

Opcional: Iniciar o processo SSH

Para permitir que outros usuários acessem o sistema durante a instalação (talvez para ajudar na instalação, ou mesmo instalar remotamente), uma conta de usuário precisa ser criada (como documentado anteriormente) e o processo ssh precisa ser iniciado.

Para disparar o processo SSH em um sistema de inicialização OpenRC, execute o seguinte comando:

root #rc-service sshd start
Nota
Se usuários se logarem ao sistema remotamente, eles verão uma mensagem dizendo que a chave do hospedeiro (host key) precisa ser confirmada (através do que é chamada impressão digital (fingerprint)). Esse comportamento é típico e é esperado na conexão inicial em um servidor SSH. Entretanto, mais tarde, quando o sistema estiver instalado e alguém acessa remotamente o sistema recém-instalado, o cliente SSH vai avisar que a chave do hospedeiro foi modificada. Isso acontece porque agora o usuário acessa - do ponto de vista do SSH - um servidor diferente (a saber, o sistema Gentoo recém-instalado em vez do ambiente de instalação sendo usado). Siga as instruções na tela para trocar a chave do hospedeiro n sistema cliente.

Para ser capaz de usar o sshd, a rede deve estar funcionando apropriadamente. Continue com a instalação em Configurando a rede.





Detecção automática de rede

Talvez já esteja funcionando?

Se o sistema estiver conectado a uma rede Ethernet com um servidor DHCP, é muito provável que a configuração de rede já tenha sido feita automaticamente. Se for o caso, então os muitos comandos incluidos na mídia de instalação que dependem da rede tais como ssh, scp, ping, irssi, wget e links, entre outros, funcionarão imediatamente.

Usando DHCP

DHCP ("Dynamic Host Configuration Protocol" - Protocolo de Configuração Dinâmica de Host) torna possível obter informações de rede (endereço IP, máscara de rede, endereço de broadcast, servidores de nomes etc). Isso funciona apenas se houver um servidor DHCP na rede (ou se o provedor de Internet provê serviço DHCP). Para que uma interface de rede receba essa informação automaticamente, use dhcpcd:

DHCP requires that a server be running on the same Layer 2 (Ethernet) segment as the client requesting a lease. DHCP is often used on RFC1918 (private) networks, but is also used to acquire public IP information from ISPs.

Dica
Official Gentoo boot media runs dhcpcd automatically at startup. This behavior can be disabled by adding the nodhcp argument to the boot media kernel commandline.

If it is not already running, dhcpcd can be started on enp1s0 with:

root #dhcpcd eth0

Alguns administradores de rede requerem que o nome de host e o nome de domínio providos pelo servidor DHCP sejam usados pelo sistema. Nesse caso, use:

root #dhcpcd -HD eth0

To stop dhcpcd, -x can be used:

root #dhcpcd -x
sending signal Term to pid 10831
waiting for pid 10831 to exit
See also
Dhcpcd usage

Testando a rede

A properly configured default route is a critical component of Internet connectivity, route configuration can be checked with:

root #ip route
default via 192.168.0.1 dev enp1s0

If no default route is defined, Internet connectivity is unavailable, and additional configuration is required.

Basic internet connectivity can be confirmed with a ping:

root #ping -c 3 1.1.1.1
Dica
It's helpful to start by pinging a known IP address instead of a hostname. This can isolate DNS issues from basic Internet connectivity issues.

Outbound HTTPS access and DNS resolution can be confirmed with:

root #curl --location gentoo.org --output /dev/null

Se tudo funcionar, então o restante deste capítulo pode ser pulado para o próximo passo das instruções de instalação (Preparando os discos).

If curl reports an error, but Internet-bound pings work, DNS may need configuration.

If Internet connectivity has not been established, first interface information should be verified, then:

Determine os nomes das interfaces

If networking doesn't work out of the box, additional steps must be taken to enable Internet connectivity. Generally, the first step is to enumerate host network interfaces.

Como alternativa ao ifconfig, o comando ip pode ser usado para se determinar nomes de interfaces. O exemplo a seguir mostra a saída de ip addr (de um outro sistema, assim a informação mostrada é diferente do exemplo anterior):

The link argument can be used to display network interface links:

root #ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff

The address argument can be used to query device address information:

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

The output of this command contains information for each network interface on the system. Entries begin with the device index, followed by the device name: enp1s0.

Dica
Se não for mostrada nenhuma interface quando o comando padrão ifconfig for usado, tente usar o mesmo comando com a opção -a. Essa opção força o comando a mostrar todas as interfaces de rede detectadas pelo sistema independentemente de estarem em estado ativo ou inativo. Se o ifconfig -a não mostrar nenhum resultado então o hardware está com problema ou o driver da interface não foi carregado no kernel. Ambas as situações estão além do escopo deste manual. Contate o canal #gentoo (webchat) para suporte.

No restante deste documento, o manual assumirá que a interface de rede é chamada eth0.

Como resultado de mudanças em favor de nomes de interfaces de rede predizíveis, o nome da interface do sistema pode ser bem diferente do antigo nome eth0. Mídias recentes de instalação pode mostrar nomes de interface de rede como eno0, ens1 ou enp5s0. Procure o nome da interface na saída do comando ifconfig que tem um endereço IP relacionado à rede local.

Optional: Application specific configuration

The following methods are not generally required, but may be helpful in situations where additional configuration is required for Internet connectivity.

Opcional: Configuração de proxy

Se a Internet é acessada através de um proxy, então é necessário entrar com as informações do proxy durante a instalação. É muito fácil definir um proxy: apenas defina uma variável que contém as informações do servidor proxy.

Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.

Na maioria dos casos, é suficiente definir as variáveis usando o nome do servidor. Como exemplo, vamos assumir que o proxy é chamado proxy.gentoo.org e a porta é 8080.

Nota
The # symbol in the following commands is a comment. It has een added for clarity only and does not need to be typed when entering the commands.

Para configurar um proxy HTTP (para tráfego HTTP e HTTPS):

root #export http_proxy="http://proxy.gentoo.org:8080"

Se o proxy requer um nome de usuário e senha, use a seguinte sintaxe para a variável:

CODE Adicionando usuário/senha à variável proxy
http://usuário:senha@proxy.gentoo.org:8080

Start links using the following parameters for proxy support:

user $links -http-proxy ${http_proxy} -https-proxy ${https_proxy}

Para configurar um proxy FTP:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

Start links using the following parameter for a FTP proxy:

user $links -ftp-proxy ${ftp_proxy}

Para configurar um proxy rsync:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

Alternativa: Usando PPP

If PPPoE is required for Internet access, the Gentoo boot media includes the pppoe-setup script to simplify ppp configuration.

During setup, pppoe-setup will ask for:

  • The name of the Ethernet interface connected to the ADSL modem.
  • The PPPoE username and password.
  • DNS server IPs.
  • Whether or not a firewall is needed.
root #pppoe-setup
root #pppoe-start

In the event of failure, credentials in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets should be verified. If credentials are correct, PPPoE Ethernet interface selection should be checked.

Alternativa: Usando PPTP

Se for necessário suporte a PPTP, use pptpclient, que é provido pelos CDs de instalação. Mas primeiro certifique-se que a configuração está correta. Edite /etc/ppp/pap-secrets ou /etc/ppp/chap-secrets de modo que contenha a combinação correta de usuário e senha:

Edit /etc/ppp/pap-secrets or /etc/ppp/chap-secrets so it contains the correct username/password combination:

root #nano -w /etc/ppp/chap-secrets

Depois ajuste o /etc/ppp/options.pptp se necessário:

root #nano -w /etc/ppp/options.pptp

Quando tudo pronto, execute pptp (juntamente com as opções que não puderam ser incluídas em options.pptp) para conectar ao servidor:

root #pptp <endereço ipv4 do servidor>

Preparando para acesso sem fio

Aviso
Do not use WEP unless it is the only option. WEP provides essentially no security over an open network.
Nota
O suporte ao comando iw pode ser específico da arquitetura. Se o comando não estiver disponível, verifique se o pacote net-wireless/iw está disponível para essa arquitetura. O comando iw estará indisponível até que o pacote net-wireless/iw esteja instalado.

Quando usar uma conexão sem fio (802.11), as configurações sem fio precisam ser feitas antes de qualquer coisa. Para ver as configurações atuais da placa usa-se o iw. Executando o iw deve aparecer algo como:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

Para verificar a conexão atual:

root #iw dev wlp9s0 link
Not connected.

ou

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Nota
Algumas interfaces sem fio podem ter o nome de interface tais como wlan0 ou ra0 em vez de eth0. Execute ip link para determinar o nome correto da interface.

Para a maioria dos usuários há apenas dois parâmetros necessários para a conexão, o ESSID (nome da rede sem fio) e, opcionalmente, a chave WEP.

  • Primeiro, certifique-se que a interface está ativa:
root #ip link set dev wlp9s0 up
  • Para conexão com uma rede aberta de nome GentooNode:
root #iw dev wlp9s0 connect -w GentooNode
  • Para conexão usando uma chave WEP em hexadecimal, prefixe a chave com d::
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • Para conexão usando uma chave WEP em ASCII:
root #iw dev wlp9s0 connect -w GentooNode key 0:some-password
Nota
Se a rede sem fio estiver configurada com WPA ou WPA2, então é necessário usar o wpa_supplicant. Para mais informações sobre a configuração de rede sem fio no Gentoo Linux, por favor leia o capítulo sobre rede sem fio do Manual do Gentoo.

Verifique novamente a configuração da rede sem fio usando o iw dev wlp9s0 link. Uma vez que a rede sem fio estiver funcionando, prossiga com a configuração das opções de rede a nível de IP como descrita na próxima seção (Entendendo a terminologia de rede) ou use o comando net-setup como descrito anteriormente.

Configuração automática de rede

In cases where automatic network configuration is unsuccessful, the Gentoo boot media provides scripts to aid in network configuration. net-setup can be used to configure wireless network information and static IPs.

root #net-setup eth0

O net-setup irá fazer algumas perguntas sobre o ambiente de rede. Quando terminar, a conexão de rede deve funcionar. Teste a conexão de rede como descrito anteriormente. Se os testes derem certo, parabéns! Pule o resto desta seção e continue com Preparando os discos.

Importante
Network status should be tested after any configuration steps are taken. In the event that configuration scripts do not work, manual network configuration is required.

Entendendo a terminologia de rede

If all of the above fails, the network must be configured manually. This is not particularly difficult, but should be done with consideration. This section serves to clarify terminology and introduce users to basic networking concepts pertaining to manually configuring an Internet connection.

Dica
Some CPE (Carrier Provided Equipment) combines the functions of a router, access point, modem, DHCP server, and DNS server into one unit. It's important to differentiate the functions of a device from the physical appliance.

Interfaces and addresses

Network interfaces are logical representations of network devices. An interface needs an address to communicate with other devices on the network. While only a single address is required, multiple addresses can be assigned to a single interface. This is especially useful for dual stack (IPv4 + IPv6) configurations.

For consistency, this primer will assume the interface enp1s0 will be using the address 192.168.0.2.

Importante
IP addresses can be set arbitrarily. As a result, it's possible for multiple devices to use the same IP address, resulting in an address conflict. Address conflicts should be avoided by using DHCP or SLAAC.
Dica
IPv6 typically uses StateLess Address AutoConfiguration (SLAAC) for address configuration. In most cases, manually setting IPv6 addresses is a bad practice. If a specific address suffix is preferred, interface identification tokens can be used.

Networks and CIDR

Once an address is chosen, how does a device know how to talk to other devices?

IP addresses are associated with networks. IP networks are contiguous logical ranges of addresses.

Classless Inter-Domain Routing or CIDR notation is used to distinguish network sizes.

  • The CIDR value, often notated starting with a /, represents the size of the network.
    • The formula 2 ^ (32 - CIDR) can be used to calculate network size.
    • Once network size is calculated, usable node count must be reduced by 2.
      • The first IP in a network is the Network address, and the last is typically the Broadcast address. These addresses are special and cannot be used by normal hosts.
Dica
The most common CIDR values are /24, and /32, representing 254 nodes and a single node respectively.

A CIDR of /24 is the de-facto default network size. This corresponds to a subnet mask of 255.255.255.0, where the last 8 bits are reserved for IP addresses for nodes on a network.

The notation: 192.168.0.2/24 can be interpreted as:

  • The address 192.168.0.2
  • On the network 192.168.0.0
  • With a size of 254 (2 ^ (32 - 24) - 2)
    • Usable IPs are in the range 192.168.0.1 - 192.168.0.254
  • With a broadcast address of 192.168.0.255
    • In most cases, the last address on a network is used as the broadcast address, but this can be changed.

Using this configuration, a device should be able to communicate with any host on the same network (192.168.0.0).

The Internet

Once a device is on a network, how does it know how to talk to devices on the Internet?

To communicate with devices outside of local networks, routing must be used. A router is simply a network device that forwards traffic for other devices. The term default route or gateway typically refers to whatever device on the current network is used for external network access.

Dica
It's a standard practice to make the gateway the first or last IP on a network.

If an Internet-connected router is available at 192.168.0.1, it can be used as the default route, granting Internet access.

To summarize:

  • Interfaces must be configured with an address and network information, such as the CIDR value.
  • Local network access is used to access a router on the same network.
  • The default route is configured, so traffic destined for external networks is forwarded to the gateway, providing Internet access.

The Domain Name System

Remembering IPs is hard. The Domain Name System was created to allow mapping between Domain Names and IP addresses.

Linux systems use /etc/resolv.conf to define nameservers to be used for DNS resolution.

Dica
Many routers can also function as a DNS server, and using a local DNS server can augment privacy and speed up queries through caching.

Many ISPs run a DNS server that is generally advertised to the gateway over DHCP. Using a local DNS server tends to improve query latency, but most public DNS servers will return the same results, so server usage is largely based on preference.

Configuração manual de rede

Interface address configuration

Importante
When manually configuring IP addresses, the local network topology must be considered. IP addresses can be set arbitrarily; conflicts may cause network disruption.

To configure enp1s0 with the address 192.168.0.2 and CIDR /24:

root #ip address add 192.168.0.2/24 dev enp1s0
Dica
The start of this command can be shortened to ip a.

Default route configuration

Configuring address and network information for an interface will configure link routes, allowing communication with that network segment:

root #ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
Dica
This command can be shortened to ip r.

The default route can be set to 192.168.0.1 with:

root #ip route add default via 192.168.0.1

DNS configuration

Nameserver info is typically acquired using DHCP, but can be set manually by adding nameserver entries to /etc/resolv.conf.

Aviso
If dhcpcd is running, changes to /etc/resolv.conf will not persist. Status can be checked with ps x | grep dhcpcd.

nano is included in Gentoo boot media and can be used to edit /etc/resolv.conf with:

root #nano -w /etc/resolv.conf

Lines containing the keyword nameserver followed by a DNS server IP address are queried in order of definition:

FILE /etc/resolv.confUse Quad9 DNS.
nameserver 9.9.9.9
nameserver 149.112.112.112
FILE /etc/resolv.confUse Cloudflare DNS.
nameserver 1.1.1.1
nameserver 1.0.0.1

DNS status can be checked by pinging a domain name:

root #ping -c 3 gentoo.org

Once connectivity has been verified, continue with Preparing the disks.





Introdução aos dispositivos de bloco

Dispositivos de bloco

Vamos dar uma boa olhada nos aspectos relacionados a discos do Gentoo Linux e do Linux em geral, incluindo dispositivos de bloco, partições e sistemas de arquivos Linux. Uma vez que os meandros dos discos forem compreendidos, serão configurados as partições e sistemas de arquivos para a instalação do Gentoo Linux.

Para começar, vamos dar uma olhada nos dispositivos de bloco. As unidades SCSI e Serial ATA são rotuladas pelo sistema como: /dev/sda, /dev/sdb, /dev/sdc, etc. Em maquinas modernas, os discos rígidos NVMe baseados em PCI Express são identificados como /dev/nvme0n1, /dev/nvme0n2, etc.

A tabela abaixo ajudará os leitores a determinar onde encontrar um certo tipo de dispositivo de bloco no sistema:

Tipos de dispositivo Identificador de dispositivo padrão Notas do editor e considerações
SATA, SAS, SCSI, ou USB flash /dev/sda Encontrados em hardware por volta de 2007 até os dias atuais, esses dispositivos são geralmente identificados no Linux dessa forma. Esses tipos de dispositivos podem ser conectados pelas entradas SATA, SCSI, USB como armazenamento em bloco. Por exemplo, a primeira partição do primeiro dispositivo SATA device é chamada de /dev/sda1.
NVM Express (NVMe) /dev/nvme0n1 A mais recente tecnologia de disco rigido, NVMe drives são conectados via PCI Express bus e possuem a velocidade de transferência de blocos mais rápida do mercado. Sistemas por volta de 2014 e recentes possuem suporte para NVMe no hardware. A primeira partição no primeiro dispositivo NVMe é chamada de /dev/nvme0n1p1.
MMC, eMMC, e SD /dev/mmcblk0 Dispositivos embutidos MMC, cartões SD, e outros tipos de cartões de memória podem ser uteis para armazenar dados. Dito isso, muitos sistemas talvez não permitam iniciar a partir desses tipos de dispositivo. É sugerido que não se use esses dispositivos para iniciar uma instalação do Linux; em vez disso, considere usá-los com o objetivo de transferir arquivos, no qual eles foram projetados. Alternativamente, eles podem ser úteis para backups de curto prazo.

Os dispositivos de bloco acima representam uma interface abstrata para o disco. Programas de usuários podem usar esses dispositivos de bloco para interagir com o disco sem se preocupar se são SATA, SCSI, ou de outro tipo. O programa pode simplesmente endereçar o armazenamento do disco como um grupo de blocos de 4096-bytes (4K) contínuos e acessíveis aleatoriamente.



Tabelas de partições

Embora seja teoricamente possível usar o disco todo, sem partições para abrigar um sistema Linux (quando criando um RAID btrfs, por exemplo), isso quase nunca é feito na prática. Em vez disso, os dispositivos de blocos são divididos em dispositivos menores, mais gerenciáveis. Em sistemas x86, eles são chamados partições. Há atualmente dois padrões de tecnologias de particionamento em uso: MBR (também chamado de DOS disklabel) e GPT; eles estão relacionados aos dois tipos de processos de inicialização: BIOS legacy e UEFI.

GUID Partition Table (GPT)

O padrão "GUID Partition Table (GPT)" (também chamado de GPT disklabel) usa identificadores de 64 bits para as partições. O local onde é armazenada a informação sobre as partições é muito maior que os 512 bytes das tabelas de partição MBR (partições do tipo DOS) o que significa que praticamente não há limite no número de partições de um disco GPT. Também o tamanho de uma partição tem um limite muito maior (quase 8 ZiB - sim, zebibytes).

Quando a interface do software de sistema entre o sistema operacional e o firmware é a UEFI (em vez da BIOS), o GPT é praticamente mandatório uma vez que surgirão problemas de compatibilidade com o padrão DOS de particionamento.

A GPT também tem a vantagem de usar somas de checagem e redundância. Ele possui somas de checagem CRC32 para detectar erros no cabeçalho e tabelas de partição e tem um backup da GPT no final do disco. Esta tabela de backup pode ser usada para recuperar danos da GPT primária próxima do início do disco.

Importante
Existem algumas ressalvas em relação ao GPT:
  • Você pode usar GPT em computadores BIOS, mas você não pode fazer dual-boot com o Microsoft Windows. A razão é que o Microsoft Windows irá iniciar no modo UEFI caso ele detecte uma partição GPT.
  • Alguns firmwares de placas-mãe bugados (antigos), estão configurados para iniciar no modo BIOS/CSM/legacy no qual pode ter problemas com a inicialização em um disco particionado em GPT.

Master boot record (MBR) ou DOS boot sector

O setor de inicialização Master boot record (também conhecido como DOS boot sector ou DOS Disklabel) foi introduzido pela primeira vez em 1983 no PC DOS 2.x. MBR usa identificadores de 32 bits para o setor de início e o tamanho das partições e suporta três tipos de partições: primária, estendida e lógica. Partições primárias têm suas informações armazenadas no MBR em si - um local muito pequeno (normalmente 512 bytes) bem no começo do disco. Devido a esse espaço pequeno, apenas quatro partições primárias são suportadas (ou seja, de /dev/sda1 a /dev/sda4).

Para suportar mais partições, uma das partições primárias no MBR pode ser marcada como uma partição estendida. Essa partição pode então conter, adicionalmente, partições lógicas (com partições dentro de uma partição).

Importante
Embora ainda suportadas pela maioria dos fabricantes de placas-mãe, o setor de inicialização MBR e suas limitações de particionamento são considerados como sistema legado. A menos que esteja trabalhando com hardware fabricado antes de 2010, é melhor particionar um disco usando Tabela de Partição GUID. Leitores que precisarem usar um sistema desse tipo devem estar cientes do seguinte:
  • A maioria das placas-mãe de depois de 2010 consideram usar o setor de inicialização MBR como modo de boot legado (suportado, porém não ideal).
  • Devido ao uso de identificadores de 32 bits, tabelas de partição MBR não conseguem endereçar espaço em disco maior do que 2 TiBs.
  • A menos que sejam usadas partições estendidas, o MBR suporta um máximo de quatro partições.
  • Essa configuração não provê nenhum setor de inicialização de backup, assim, se uma aplicação sobrescreve a tabela de partição, todas as informações das partições serão perdidas.
Dito isso, MBR e BIOS boot são usados frequentemente em ambientes de nuvem virtualizados, como AWS.

Os autores deste Manual sugerem usar GPT sempre que possível nas instalações do Gentoo.

Armazenamento avançado

Os CDs de instalação para x86 proveem suporte para Gerenciador de Volumes Lógicos (LVM). O LVM aumenta a flexibilidade oferecida pela configuração de particionamento. Isso permite combinar partições e discos em grupos de volumes e definir grupos de RAID ou caches em SSDs rápidos para HDs lentos. As instruções de instalação abaixo focarão em partições "normais", mas mesmo assim é bom saber que o LVM também é suportado se for necessário. Visite o artigo LVM para mais detalhes. Iniciantes estejam avisados: apesar de completamente suportado, LVM está fora do escopo deste guia.

Esquema de particionamento padrão

Ao longo do restante desse manual, nós vamos discutir e explicar dois casos diferentes: 1) Tabela de partições em GPT e UEFI boot, e 2) Tabela de partições em MBR e BIOS boot. Embora seja possível combinar e misturar esses dois tipos, isso está além do escopo desse guia. Como dito já dito acima, instalações feitas em hardwares modernos devem ser feitas utilizando uma tabela de partições em GPT e UEFI boot; uma exceção para essa regra é o uso de MBR com BIOS boot em ambientes virtualizados (cloud), que continua sendo frequentemente utilizado.

  1. UEFI firmware with GUID Partition Table (GPT) disk.
  2. MBR DOS/legacy BIOS firmware with a MBR partition table disk.

While it is possible to mix and match boot types with certain motherboard firmware, mixing goes beyond the intention of the handbook. As previously stated, it is strongly recommended for installations on modern hardware to use UEFI boot with a GPT disklabel disk.

Até o final deste manual, o seguinte esquema de particionamento será usado como um simples layout de exemplo:

Importante
The first row of the following table contains exclusive information for either a GPT disklabel or a MBR DOS/legacy BIOS disklabel. When in doubt, proceed with GPT, since x86 machines manufactured after the year 2010 generally support UEFI firmware and GPT boot sector.
Partição Sistema de arquivo Tamanho Descrição
/dev/sda1 fat32 (UEFI) ou ext4 (BIOS) 256M Partição boot/Sistema EFI
/dev/sda2 (swap) Quantidade de RAM * 2 Partição de swap
/dev/sda3 ext4 Resto do disco Partição root

Se essas informações já forem suficientes, o leitor avançado já pode pular diretamente para o particionamento real.

Ambos o fdisk e o parted são utilitários de particionamento. O fdisk é bem conhecido, estável e recomendado para layout de particionamento MBR. parted foi um dos primeiros utilitários de gerenciamento de dispositivos de blocos do Linux a suportar partições GPT, e provê uma alternativa. Aqui, o fdisk é usado porque tem uma melhor interface de usuário baseada em texto

Antes das instruções para criação das partições, o primeiro conjunto de seções descreverá em mais detalhes como os esquemas de particionamento podem ser criados mencionaremos as dificuldades mais comuns.

Criando um esquema de particionamento

Quantas partições e de que tamanho?

O design do layout de partições é altamente dependente das demandas do sistema e do(s) sistema(s) de arquivos aplicados ao dispositivo. Caso exista muitos usuários, é aconselhável ter o /home/ em uma partição separada pois isso traz segurança e torna o backup e outros tipos de manutenção mais fáceis. Se o Gentoo estiver sendo instalado para ser um pequeno servidor de email, então o diretório /var/ deve ficar separado em uma outra partição pois todos os emails armazenados ficam no /var/. Servidores de jogos podem ter o /opt/ separado em uma outra partição, já que a maioria dos softwares do servidor são instalados lá. A razão dessas recomendações são similares à do diretório /home/: segurança, backups e manutenções.

In most situations on Gentoo, /usr and /var should be kept relatively large in size. /usr hosts the majority of applications available on the system and the Linux kernel sources (under /usr/src). By default, /var hosts the Gentoo ebuild repository (located at /var/db/repos/gentoo) which, depending on the file system, generally consumes around 650 MiB of disk space. This space estimate excludes the /var/cache/distfiles and /var/cache/binpkgs directories, which will gradually fill with source files and (optionally) binary packages respectively as they are added to the system.

A quantidade de partições e os seus tamanhos dependem muito de vários fatores que devem ser considerados para escolher a melhor opção para a circunstância. Separar as partições em volumes têm a seguinte vantagens:

  • Escolha o sistema de arquivos de maior desempenho para cada partição ou volume.
  • O sistema todo não ficará sem espaço se uma aplicação problemática encher todo o espaço de uma partição ou volume.
  • Se necessário, a checagem do sistema de arquivos fica com o tempo reduzido, pois várias checagens podem ser feitas em paralelo (embora essa vantagem é mais percebida com múltiplos discos do que com múltiplas partições).
  • A segurança pode ser aumentada montando algumas partições ou volumes como somente leitura, nosuid (bits setuid são ignorados), noexec (bits de execução são ignorados), etc.


Contudo, múltiplas partições têm algumas desvantagens:

Há também o limite de 15 partições para SCSI e SATA, a menos que sejam utilizadas etiquetas GPT.

Nota
Installations that intend to use systemd as the service and init system must have the /usr directory available at boot, either as part of the root filesystem or mounted via an initramfs.

E o espaço de swap?

Não existe um valor perfeito para o espaço de swap. O propósito da partição de swap é prover armazenamento em disco ao kernel quando a memória interna (RAM) estiver acabando. Um espaço de swap permite ao kernel mover páginas de memória que provavelmente não serão necessárias tão logo para o disco (swap ou page-out), liberando memória na RAM para a tarefa atual. É claro que, se de repente essas páginas forem necessárias, elas serão trazidas de volta para a memória (page-in) o que irá demorar bem mais do que se fossem lidas direto na memória RAM (pois discos são muito lentos comparados com a memória interna).

Se o sistema não for executar aplicações que necessitem de muita memória ou se o sistema tiver uma grande quantidade de memória disponível, então provavelmente ele não vai precisar de muito espaço de swap. Porém, o espaço de swap é também usado para armazenar a memória inteira no caso de hibernação. Se o sistema for precisar de hibernação, então um espaço de swap maior será necessário, pelo menos do tamanho da memória RAM instalada no sistema.


O que é o EFI System Partition (ESP)?

Quando instalando o Gentoo em um sistema que usa UEFI para inicializar o sistema operacional (em vez da BIOS), é importante que uma partição de sistema EFI (ESP) seja criada. As instruções abaixo contém os passos necessários para fazer corretamente essa operação. A partição de sistema EFI não é necessária para inicializar no modo BIOS/Legacy.

A ESP precisa ser uma partição do tipo FAT (algumas vezes mostradas como "vfat" em sistemas Linux). A especificação UEFI oficial denota que os sistemas de arquivos FAT12, FAT16, ou 32 irão ser reconhecidos pela firmware UEFI, apesar de que FAT32 é o recomendado para a ESP. Após o particionamento, formate a ESP adequadamente:

root #mkfs.fat -F 32 /dev/sda1
Importante
Se a ESP não for formatada como uma variante FAT, o firmware do sistema UEFI não será capaz de encontrar o carregador de boot (ou o kernel do Linux) e provavelmente será incapaz de inicializar o sistema!

O que é a partição de boot da BIOS?

A partição de boot da BIOS é apenas necessária caso você utilize o particionamento GPT com o GRUB2 no modo BIOS/Legacy. Não é obrigatório quando inicializado no modo EFI/UEFI, e também não é obrigatório quando estiver utilizando uma tabela MBR. Ela é uma partição muito pequena (de 1 a 2 MB) na qual os gerenciadores de inicialização como o GRUB2 podem gravar dados adicionais que não couberem no espaço alocado. Ela não será utilizada nesse guia.

Particionando o disco com GPT para UEFI

As partes seguintes explicam como criar o layout de partições para uma instalação GPT / UEFI boot usando o comando fdisk. O layout de partições de exemplo foi mostrada anteriormente:

Altere o layout das partições de acordo com suas preferências pessoais.

Partição Descrição
/dev/sda1 Partição de sistema EFI (de inicialização)
/dev/sda2 Partição de swap
/dev/sda3 Partição de root

Visualizando o layout de partições atual

O fdisk é uma ferramenta popular e poderosa para dividir um disco em partições. Dispare o fdisk no disco desejado (em nosso exemplo usamos o /dev/sda):

root #fdisk /dev/sda

Use a tecla p para exibir a configuração atual das partições do disco:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G EFI System /dev/sda2 2099200 10487807 8388608 4G Linux swap /dev/sda3 10487808 1953523711 1943035904 926.5G Linux root (x86-64)

}}

Esse disco em particular foi configurado para abrigar dois sistemas de arquivos Linux (cada uma com uma partição correspondente listada como "Linux") bem como uma partição de swap (listada como "Linux swap").

Criando uma nova tabela de partições / removendo todas as partições

Tecle g para criar uma nova tabela de partições GPT no disco; isso irá remover todas as partições existentes.

Command (m for help):g
Created a new GPT disklabel (GUID: 87EA4497-2722-DF43-A954-368E46AE5C5F).

Para uma tabela de partições GPT existente (veja o retorno ao teclar p acima), alternativamente, considere remover as partições do disco uma por uma. Tecle d para apagar uma partição. Por exemplo, para deletar a partição /dev/sda1:

Command (m for help):d
Partition number (1-4): 1

A partição foi marcada para ser removida. Ela não vai aparecer na lista de partições (usando a tecla p), mas ela não será removida até que as mudanças sejam gravadas. Isso permite que o usuário aborte a operação no caso algum erro ocorra - nesse caso, tecle q imediatamente e tecle Enter e a partição não será apagada.

Tecle p repetidamente para ver a lista das partições e d e o número da partição para apagá-la. No final, a tabela de partições estará vazia:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F

Agora que a tabela de partições na memória está vazia, estamos prontos para criar as partições.

Criando a partição de sistema EFI (ESP)

Nota
A smaller ESP is possible but not recommended, especially given it may be shared with other OSes.

Primeiro, crie uma pequena partição de sistema EFI, que deverá ser montada no diretório /boot. Tecle n para criar uma nova partição, seguida da tecla 1 para selecionar a primeira partição. Quando perguntado pelo primeiro setor, certifique-se que comece em 2048 (o que é necessário para o gerenciador de boot) e tecle Enter. Quando solicitado o último setor, digite +256M para criar uma partição de 256 Mbytes de tamanho:

Command (m for help):n
Partition number (1-128, default 1): 1
First sector (2048-60549086, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549086, default 60549086): +256M
 
Created a new partition 1 of type 'Linux filesystem' and of size 256 MiB.

Do you want to remove the signature? [Y]es/[N]o: Y The signature will be removed by a write command.

}}

Marque a partição como UEFI system partition:

Command (m for help):t
Selected partition 1
Partition type (type L to list all types): 1
Changed type of partition 'Linux filesystem' to 'EFI System'.

Optionally, to have the ESP conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:

Command (m for help):x
Expert command (m for help):u
Selected partition 1
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
New UUID (in 8-4-4-4-12 format): c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Partition UUID changed from 10293DC1-DF6C-4443-8ACF-C756B81B4767 to C12A7328-F81F-11D2-BA4B-00A0C93EC93B.

Press the r key to return to the main menu:

Expert command (m for help):r
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Command (m for help):

Criando a partição de swap

Agora, para criar a partição de swap tecle n para criar uma nova partição, e tecle 2 para criar a segunda partição, /dev/sda2. Quando solicitado o primeiro setor, tecle Enter. Quando solicitado o último setor, digite +4G (ou qualquer outro tamanho necessário para área de swap) para criar uma partição de 4GB de tamanho:

Command (m for help):n
Partition number (2-128, default 2): 
First sector (526336-60549086, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549086, default 60549086): +4G
 
Created a new partition 2 of type 'Linux filesystem' and of size 4 GiB.

Depois de tudo feito, tecle t para configurar o tipo da partição, 2 para selecionar a partição recém criada e então digite "19" para configurar o tipo da partição para "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): 19
 
Changed type of partition 'Linux filesystem' to 'Linux swap'.

Optionally, to have the swap partition conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:

Command (m for help):x
Expert command (m for help):u
Partition number (1,2, default 2): 2
Selected partition 2
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
New UUID (in 8-4-4-4-12 format): 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
Partition UUID changed from 7529CDF6-9482-4497-B021-576745648B2A to 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F..

Press the r key to return to the main menu:

Expert command (m for help):r
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Command (m for help):

Criando a partição de root

Finalmente, para criar a partição root, tecle n para criar uma nova partição. Então tecle 3 para criar a terceira partição, /dev/sda3. Quando perguntado pelo primeiro setor, tecle Enter. Quando perguntado pelo último setor, tecle Enter para criar uma partição que ocupe o restante do espaço disponível do disco. Depois de completar esses passos, teclando p deve ser mostrada uma tabela de partições similar a esta:

Command (m for help):n
Partition number (3-128, default 3): 3
First sector (10487808-1953525134, default 10487808):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (10487808-1953525134, default 1953523711):
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Created a new partition 3 of type 'Linux filesystem' and of size 926.5 GiB..
Nota
Setting the root partition's type to "Linux root (x86-64)" is not required and the system will function normally if it is set to the "Linux filesystem" type. This filesystem type is only necessary for cases where a bootloader that supports it (i.e. systemd-boot) is used and a fstab file is not wanted.

After creating the root partition, press t to set the partition type, 3 to select the partition just created, and then type in 23 to set the partition type to "Linux Root (x86-64)".

Command(m for help):t
Partition number (1-3, default 3): 3
Partition type or alias (type L to list all): 23
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Changed type of partition 'Linux filesystem' to 'Linux root (x86-64)'

Optionally, to have the root partition conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:

Command (m for help):x
Expert command (m for help):u
Partition number (1-3, default 3): 3
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
New UUID (in 8-4-4-4-12 format): 4f68bce3-e8cd-4db1-96e7-fbcaf984b709
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Partition UUID changed from 40465382-FA2A-4846-9827-640821CC001F to 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709.

Press the r key to return to the main menu:

Expert command (m for help):r
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Command (m for help):

After completing these steps, pressing p should display a partition table that looks similar to the following:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F
 
Device       Start      End  Sectors  Size Type
/dev/sda1     2048   526335   524288  256M EFI System
/dev/sda2   526336  8914943  8388608    4G Linux swap
/dev/sda3  8914944 60549086 51634143 24.6G Linux filesystem

Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G Linux filesystem /dev/sda2 2099200 10487807 8388608 4G Linux swap /dev/sda3 10487808 1953523711 1943035904 926.5G Linux root (x86-64)

Filesystem/RAID signature on partition 1 will be wiped.

}}

Salvando o layout de partições

Para salvar o layout de partições e sair do fdisk, tecle w.

Command (m for help):w

Com as partições criadas, é hora de criar sistemas de arquivos nelas.

Particionando o disco com MBR para BIOS / legacy boot

Nesse exemplo a seguir, explicamos como criar um layout de particionamento para uma instalação MBR / BIOS legacy boot. A partir de agora, o layout mencionado anteriormente será:

Partição Descrição
/dev/sda1 Partição de boot
/dev/sda2 Partição de swap
/dev/sda3 Partição de root

Altere o layout de acordo com as suas referencias pessoais.

Visualizando o layout de particionamento atual

Use novamente o comando fdisk no disco (no nosso exemplo, usaremos /dev/sda):

root #fdisk /dev/sda

Tecle p para visualizar a configuração de partições atuais do disco:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 10487807 8388608 4G 82 Linux swap / Solaris /dev/sda3 10487808 1953525167 1943037360 926.5G 83 Linux

}}

Este disco em particular foi até agora configurado para abrigar dois sistemas de arquivos Linux (cada uma com uma partição correspondente listada como "Linux"), bem como uma partição de swap (listada como "Linux swap"), usando uma tabela GPT.

Criando um nova disklabel / removendo todas as partições

Tecle o para criar uma nova MBR disklabel (aqui também chamada de DOS disklabel) no disco; isso irá remover todas as partições existentes.

Command (m for help):o
Created a new DOS disklabel with disk identifier 0xe04e67c4.
The device contains 'gpt' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

Para uma DOS disklabel existente (veja o retorno ao teclar p acima) Alternativamente, considere remover as partições do disco uma por uma. Tecle d para deletar a partição. Por exemplo, para deletar a partição /dev/sda1:

Command (m for help):d
Partition number (1-4): 1

A partição foi marcada para ser removida. Ela não vai aparecer na lista de partições (usando a tecla p), mas ela não será removida até que as mudanças sejam gravadas. Isso permite que o usuário aborte a operação no caso de algum erro - nesse caso, tecle q imediatamente e tecle Enter e a partição não será apagada.

Tecle p repetidamente para ver a lista das partições e d e o número da partição para apagá-la. No final, a tabela de partições estará vazia:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4

Agora nós estamos prontos para criar as partições.

Criando a partição de boot

Primeiro crie uma partição que deverá ser montada no diretório /boot. Tecle n para criar uma nova partição, em seguida tecle 1 para selecionar a primeira partição primaria. Quando perguntado pelo primeiro setor, certifique-se que comece em 2048 (o que é necessário para o gerenciador de boot) e tecle Enter. Quando solicitado o último setor, digite +256M para criar uma partição de 256 Mbytes de tamanho:

Command (m for help):n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-60549119, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549119, default 60549119): +256M
 
Created a new partition 1 of type 'Linux' and of size 256 MiB.

Created a new partition 1 of type 'Linux' and of size 1 GiB.

}}

Mark the partition as bootable by pressing the a key and pressing Enter:

Command (m for help):a
Selected partition 1
The bootable flag on partition 1 is enabled now.

Note: if more than one partition is available on the disk, then the partition to be flagged as bootable will have to be selected.

Criando a partição de swap

Agora, para criar a partição de swap tecle n para criar uma nova partição, e tecle 2 para criar a segunda partição primaria, /dev/sda2. Quando solicitado o primeiro setor, tecle Enter. Quando solicitado o último setor, digite +4G (ou qualquer outro tamanho necessário para área de swap) para criar uma partição de 4GB de tamanho:

Command (m for help):n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (526336-60549119, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549119, default 60549119): +4G
 
Created a new partition 2 of type 'Linux' and of size 4 GiB.

Depois de tudo feito, tecle t para configurar o tipo da partição, 2 para selecionar a partição recém criada e então digite "82" para configurar o tipo da partição para "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Criando a partição de root

Finalmente, para criar a partição root, tecle n para criar uma nova partição. Então tecle 3 para criar a terceira partição primaria, /dev/sda3. Quando perguntado pelo primeiro setor, tecle Enter. Quando perguntado pelo último setor, tecle Enter para criar uma partição que ocupe o restante do espaço disponível do disco. Depois de completar esses passos, teclando p deve ser mostrada uma tabela de partições similar a esta:

Command (m for help):n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (10487808-1953525167, default 10487808):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (10487808-1953525167, default 1953525167):
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Created a new partition 3 of type 'Linux' and of size 926.5 GiB.

After completing these steps, pressing p should display a partition table that looks similar to this:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4
 
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048   526335   524288  256M 83 Linux
/dev/sda2        526336  8914943  8388608    4G 82 Linux swap / Solaris
/dev/sda3       8914944 60549119 51634176 24.6G 83 Linux

Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 10487807 8388608 4G 82 Linux swap / Solaris /dev/sda3 10487808 1953525167 1943037360 926.5G 83 Linux

}}

Salvando o layout de partições

Para salvar o layout de partições e sair do fdisk, tecle w.

Command (m for help):w

Agora é a hora de colocar os sistemas de arquivos nas partições.



Criando sistemas de arquivos

Aviso
When using SSD or NVMe drive, it is wise to check for firmware upgrades. Some Intel SSDs in particular (600p and 6000p) require a firmware upgrade for possible data corruption induced by XFS I/O usage patterns. The problem is at the firmware level and not any fault of the XFS filesystem. The smartctl utility can help check the device model and firmware version.

Introdução

Agora que as partições foram corretamente criadas, é hora de criar um sistema de arquivos nelas. Na próxima seção os diversos sistemas de arquivos suportados pelo Linux são descritos. Leitores que já souberem qual sistema de arquivos irão usar podem continuar em Criando um sistema de arquivos em uma partição.

Sistemas de arquivos

Linux suporta dezenas de sistemas de arquivos. Alguns deles são só aconselháveis usar para fins específicos. Alguns são considerados mais estáveis na arquitetura x86 - é recomendado se informar sobre os sistemas de arquivos e o estado do suporte de cada um antes de selecionar algum mais experimental para partições importantes. Ext4 é o sistema de arquivo recomendado para todos os propósitos e para todas as plataformas. Abaixo está uma lista não exaustiva

btrfs
Um sistema de arquivos de próxima geração que provê vários recursos avançados como instantâneos (snapshots), autocorreção através de checksums, compressão transparente, subvolumes e RAID integrado. Kernels com versão anterior à 5.4.y não garantem segurança ao serem utilizados junto com btrfs em produção porque as correções de sérios problemas só estão presentes em versões mais recentes do branch LTS do kernel. Corrupção de sistema de arquivos são comuns em branches mais antigas do kernel, em qualquer outra versão anterior à 4.4.y é especialmente inseguro e propenso a corrupção. Corrupção de sistemas de arquivo são mais comuns em kernels mais antigos (anteriores à 5.4.y) quando a compressão de arquivos está habilitada. Funcionalidades como RAID 5/6 e quota groups são inseguros em todas as versões do btrfs. Além disso, o btrfs pode falhar contra intuitivamente nas operações de sistema de arquivos retornando ENOSPC quando o comando df reporta espaço livre devido a uma fragmentação interna (espaço livre fixado pelos chunks de DATA + SYSTEM, mas necessário em chunks de METADATA). Além disso, desde uma única referência de 4K até uma extensão de 128M dentro de um btrfs podem causar espaço livre indisponível para alocação. Isso também pode fazer com que o btrfs retorne ENOSPC quando o espaço livre é informado pelo comando df. Instalando o pacote sys-fs/btrfsmaintenance e configurando um script para executar periodicamente pode ajudar a reduzir a possibilidade do erro ENOSPC por rebalancear o btrfs, mas isso não elimina o risco de ENOSPC acontecer quando há espaço livre. Algumas workloads talvez nunca irão se deparar com o erro ENOSPC enquanto outras talvez irão. Se o risco de ENOSPC acontecer em produção for inaceitável, você deve usar algo diferente. Se estiver usando btrfs, certifique-se de evitar configurações conhecidas por terem problemas. Com exceção do ENOSPC, informações sobre os problemas presentes no btrfs nas branches mais recentes do kernel estão disponíveis em btrfs wiki status page.
ext4
Inicialmente criado como uma derivação do ext3, o ext4 traz novos recursos, melhorias de desempenho e remoção de limites de tamanhos com mudanças moderadas no formato em disco. Ele pode cobrir volumes de até 1 EB com limite de tamanho de arquivo de 16TB. Em vez da alocação em bloco de mapa de bits clássico do ext2/3 o ext4 usa extensões, o que melhora o desempenho com arquivos grandes e reduz a fragmentação. O ext4 também provê algoritmos de alocação de blocos mais sofisticados (alocação atrasada e alocação múltipla de blocos), dando ao driver do sistema de arquivos mais formas de otimizar o layout dos dados no disco. O ext4 é o sistema de arquivos recomendado para propósitos gerais e plataformas em geral.
f2fs
O Sistema de Arquivos "Amigável a Flash" (Flash-Friendly File System) foi originalmente criado pela Samsung para uso com memória flash NAND. Ainda hoje (segundo trimestre de 2016), esse sistema de arquivos é considerado imaturo, mas é uma escolha decente quando o Gentoo estiver sendo instalado em cartões microSD, pendrives ou outro tipo de dispositivos baseados em flash.
JFS
Sistema de arquivos com journaling de alto desempenho da IBM. O JFS é um sistema de arquivos baseado em árvore B+ confiável e rápido, com bom desempenho em várias situações.
XFS
Um sistema de arquivos com metadados de journaling que vem com um robusto conjunto de recursos e é otimizado para escalabilidade. O XFS parece ser menos tolerante a vários problemas de hardware, mas foi continuamente atualizado incluindo funcionalidades modernas.
VFAT
Também conhecido como FAT32, é suportado pelo Linux, mas não tem suporte para configurações de permissões padrão UNIX. É mais utilizado para interoperabilidade/intercâmbio com outros sistemas operacionais (como Windows ou macOS) mas é também uma necessidade para alguns sistemas de firmware (como o UEFI). Usuários de sistemas UEFI vão precisar de uma EFI System Partition formatada em VFAT para inicializar o sistema.
NTFS
Este sistema de arquivos com "Nova Tecnologia" ("New Technology Filesystem") é o principal sistema de arquivos do Microsoft Windows desde o Windows NT 3.1. Assim como o vfat, ele não armazena permissões ou atributos estendidos necessários para correto funcionamento de um BSD ou Linux, por isso não deve ser usado como sistema de arquivos na maioria dos casos. Deve ser usado apenas para interoperabilidade/intercâmbio com sistemas Microsoft Windows (note a ênfase no apenas).

More extensive information on filesystems can be found in the community maintained Filesystem article.

Criando um sistema de arquivos em uma partição

Nota
Please make sure to emerge the relevant user space utilities package for the chosen filesystem before rebooting. There will be a reminder to do so near the end of the installation process.

Para criar um sistema de arquivos em uma partição ou volume, há utilitários disponíveis para o usuário para cada possível sistema de arquivos. Clique no nome do sistema de arquivo na tabela abaixo para informações adicionais para cada sistema de arquivo:

Sistema de arquivo Comando para criação Disponível no CD mínimo? Pacote
btrfs mkfs.btrfs Sim sys-fs/btrfs-progs
ext4 mkfs.ext4 Sim sys-fs/e2fsprogs
f2fs mkfs.f2fs Sim sys-fs/f2fs-tools
jfs mkfs.jfs Sim sys-fs/jfsutils
reiserfs mkfs.reiserfs Sim sys-fs/reiserfsprogs
xfs mkfs.xfs Sim sys-fs/xfsprogs
vfat mkfs.vfat Sim sys-fs/dosfstools
NTFS mkfs.ntfs Sim sys-fs/ntfs3g
Importante
The handbook recommends new partitions as part of the installation process, but it is important to note running any mkfs command will erase any data contained within the partition. When necessary, ensure any data that exists within is appropriately backed up before creating a few filesystem.

Por exemplo, para ter a partição de sistema EFI (/dev/sda1) em FAT32 e a partição root (/dev/sda3) em ext4 como usado no exemplo de estrutura de partições, o seguintes comandos seriam usados:

root #mkfs.ext4 /dev/sda3

EFI system partition filesystem

The EFI system partition (/dev/sda1) must be formatted as FAT32:

root #mkfs.vfat -F 32 /dev/sda1

Legacy BIOS boot partition filesystem

Systems booting via legacy BIOS with a MBR/DOS disklabel can use any filesystem format supported by the bootloader.

For example, to format with XFS:

root #mkfs.xfs /dev/sda1

Small ext4 partitions

Se usar o ext4 em uma partição pequena (menor que 8GB), então o sistema de arquivos deve ser criado com opções adequadas para reservar inodes suficientes. Isso pode ser resolvido usando um dos comandos a seguir, respectivamente:

root #mkfs.ext4 -T small /dev/<dispositivo>

Isso normalmente irá quadruplicar o número de inodes de um dado sistema de arquivos já que o número de "bytes por inode" é reduzido de um para cada 16kB para um para cada 4kB.

Ativando a partição de swap

mkswap é o comando que é utilizado para inicializar as partições de swap:

root #mkswap /dev/sda2

Para ativar a partição de swap, use swapon:

root #swapon /dev/sda2

This 'activation' step is only necessary because the swap partition is newly created within the live environment. Once the system has been rebooted, as long as the swap partition is properly defined within fstab or other mount mechanism, swap space will activate automatically.

Montando a partição root

Nota
Installations which were previously started, but did not finish the installation process can resume the installation from this point in the handbook. Use this link as the permalink: Resumed installations start here.
Dica
Usuários que estiverem usando uma media de instalação não-Gentoo vão precisar criar os pontos de montagem com o comando:
root #mkdir --parents /mnt/gentoo
root #mkdir --parents /mnt/gentoo

For EFI installs only, the ESP should be mounted under the root partition location:

root #mkdir --parents /mnt/gentoo/efi

Continue creating additional mount points necessary for any additional (custom) partition(s) created during previous steps by using the mkdir command.

Agora que as partições foram inicializadas e contém um sistema de arquivos, é hora de montar essas partições. Use o comando mount, mas não se esqueça de criar os diretórios de montagem necessários para cada partição criada. Como exemplo montaremos as partições root e boot:

Mount the root partition:

root #mount /dev/sda3 /mnt/gentoo

Continue mounting additional (custom) partitions as necessary using the mount command.

Nota
Se o /tmp/ precisar ficar em uma partição separada, certifique-se de alterar suas permissões depois de montar:
root #chmod 1777 /mnt/gentoo/tmp
Isso também vale para o /var/tmp.

Mais tarde nestas instruções o sistema de arquivos proc (uma interface virtual com o kernel) e também outros pseudo sistemas de arquivos serão montados. Mas antes nós instalamos os arquivos de instalação do Gentoo.




Escolhendo um arquivo tar de stage

Dica
On supported architectures, it is recommended for users targeting a desktop (graphical) operating system environment to use a stage file with the term desktop within the name. These files include packages such as sys-devel/llvm and dev-lang/rust-bin and USE flag tuning which will greatly improve install time.

The stage file acts as the seed of a Gentoo install. Stage files are generated with Catalyst by the Release Engineering Team. Stage files are based on specific profiles, and contain an almost-complete system.

When choosing a stage file, it's important to pick one with profile targets corresponding to the desired system type.

Nota
É possível trocar uma instalação do Gentoo em execução usando OpenRC para systemd e voltar. Porém, isso requer um certo esforço e isso está fora do escopo desse manual. Dependendo do que você quer na sua instalação, por favor tenha certeza de que você escolheu o stage tarball correto.

A maioria dos usuários não deve usar as opções de arquivos tar 'advanced'; elas são específicas para alguma configuração de software ou hardware.

OpenRC

OpenRC é um sistema de inicialização baseado em dependências (responsável por iniciar o sistema uma vez que o kernel foi inicializado) que mantém compatibilidade com o programa init providenciado pelo sistema, normalmente encontrado em /sbin/init. É o sistema de inicialização nativo e original do Gentoo, mas também já foi implementado por algumas distribuições Linux e sistemas BSD.

OpenRC não tem a função de substituir o arquivo /sbin/init por padrão e é 100% compatível com os scripts de init do Gentoo. Isso significa uma solução que pode ser encontrada para rodar as dezenas de daemons do repositório de ebuilds do Gentoo

systemd

systemd é um substituto moderno para os init estilo SysV e dos rc para sistemas Linux. Por enquanto é usado na maioria das distribuições Linux. Systemd é suportado no Gentoo e funciona perfeitamente; é amplamente configurável. Infelizmente, grande parte das seções correspondentes do manual de instalação ainda precisam ser escritas ou estão em andamento.

Multilib (32 e 64 bits)

Nota
Not every architecture has a multilib option. Many only run with native code. Multilib is most commonly applied to amd64.

Escolher um arquivo tar base para o sistema pode economizar uma considerável quantidade de tempo mais tarde no processo de instalação, especificamente quando for o momento de escolher o perfil do sistema. A seleção de um arquivo tar de stage irá impactar a futura configuração do sistema e pode evitar uma dor de cabeça ou duas mais tarde. O arquivo tar multilib usa bibliotecas de 64 bits quando possível e apenas as versões de 32 bits quando necessário para compatibilidade. Essa é uma excelente opção para a maioria das instalações pois provê grande flexibilidade para personalizações no futuro. Quem desejar que seu sistema seja capaz de trocar facilmente de perfil deve baixar o arquivo tar multilib para sua respectiva arquitetura de processador.

Dica
Using multilib targets makes it easier to switch profiles later, compared to no-multilib

No-multilib (64 bits puro)

Aviso
Tome cuidado, migrar de um sistema não-multilib (no-multilib) para um multilib requer um excelente conhecimento do Gentoo e de suas ferramentas de baixo nível (isso pode fazer até nossos Desenvolvedores de ferramentas estremecerem um pouco). Não é uma tarefa para cardíacos e está além do escopo deste manual.

Selecionar um arquivo tar no-multilib como base do sistema provê um completo ambiente de sistema operacional de 64 bits. Isso torna efetivamente a habilidade de se trocar para perfis multilib improvável, mas possível. Aqueles que estão iniciando com o Gentoo não devem escolher um arquivo tar no-multilib a menos que seja absolutamente necessário.

Baixando o arquivo tar do stage

Ajustando a data e a hora

Stage archives are generally obtained using HTTPS which requires relatively accurate system time. Clock skew can prevent downloads from working, and can cause unpredictable errors if the system time is adjusted by any considerable amount after installation.

Verifique a data e a hora atual executando o seguinte comando date:

root #date
Mon Oct  3 13:16:22 PDT 2016

Se a data/hora mostrada estiver errada, atualize-a usando um dos métodos abaixo.

Automático

Using NTP to correct clock skew is typically easier and more reliable than manually setting the system clock.

chronyd, part of net-misc/chrony can be used to update the system clock to UTC with:

root #ntpd -q -g
Importante
Systems without a functioning Real-Time Clock (RTC) must sync the system clock at every system start, and on regular intervals thereafter. This is also beneficial for systems with a RTC, as the battery could fail, and clock skew can accumulate.
Aviso
Standard NTP traffic not authenticated, it is important to verify time data obtained from the network.

Manual

When NTP access is unavailable, date can be used to manually set the system clock.

Hora UTC é recomendada para todos os sistemas Linux. Mais tarde durante a instalação um fuso horário irá ser definido. Isto irá modificar a exibição do relógio para o horário local.

O comando date pode fazer também uma configuração manual do relógio do sistema. Use a sintaxe MMDDhhmmYYYY (Mês, Dia, hora, minuteo e Ano).

Por exemplo, para ajustar a data para 3 de outubro de 2016, 13:16:

root #date 100313162016

Vá para o ponto de montagem do Gentoo onde o sistema de arquivos raiz está montado (provavelmente /mnt/gentoo):

root #cd /mnt/gentoo

Navegadores gráficos

Usuários usando ambientes com navegadores web gráficos não terão problema em copiar a URL do arquivo de stage da seção de download do site web principal. Apenas selecione a aba apropriada, clique com o botão da direita no link do arquivo de stage e então Copie o link para copiar o link para a área de transferência, então cole o link para a o utilitário de linha de comando wget para baixar o arquivo tar de stage:

root #wget <PASTED_STAGE_URL>

Navegadores de linha de comando

Usuários mais tradicionais ou 'das antigas', trabalhando exclusivamente com a linha de comando podem preferir o links, um navegador não gráfico baseado em menus. Para baixar o arquivo de stage, navegue até a lista de espelhos do Gentoo como abaixo:

root #links https://www.gentoo.org/downloads/mirrors/

Para usar um proxy HTTP com o links, passe a URL com a opção -http-proxy:

root #links -http-proxy servidor.proxy.com:8080 https://www.gentoo.org/download/mirrors/

Próximo ao links há também o navegador lynx. Assim como o links ele é um navegador não gráfico mas não baseado em menus.

root #lynx https://www.gentoo.org/downloads/mirrors/

Se for necessário definir um proxy, exporte as variáveis http_proxy e/ou ftp_proxy:

root #export http_proxy{{=}}"http://servidor.proxy.com:porta"
root #export ftp_proxy="http://servidor.proxy.com:porta"

Na lista de espelhos, selecione um espelho próximo. Normalmente os espelhos HTTP são suficientes, mas outros protocolos estão também disponíveis. Mova para o diretório releases/x86/autobuilds/. Lá todos os arquivos de stage são mostrados (eles podem estar localizados dentro de subdiretórios nomeados segundo as sub-arquiteturas individuais). Selecione um e pressione d para baixar.

Depois que o download do arquivo de stage completar, é possível verificar a integridade e validar o conteúdo do arquivo tar de stage. Aqueles interessados em fazê-lo devem proceder à próxima seção.

Aqueles não interessados em verificar e validar o arquivo de stage podem fechar o navegador de linha de comando pressionando q e podem avançar diretamente para a seção Descompactando o arquivo tar de stage.

Verificando e validando

Nota
Most stages are now explicitly suffixed with the init system type (openrc or systemd), although some architectures may still be missing these for now.

Assim como nos CDs mínimos de instalação, estão disponíveis arquivos adicionais para verificar e validar o arquivo de stage. Apesar desses passos poderem ser pulados, esses arquivos são providos para os usuários que se preocupam com a legitimidade dos arquivos baixados.

root #wget https://distfiles.gentoo.org/releases/
  • Um arquivo .CONTENTS que contém a lista de todos os arquivos contidos no arquivo tar do stage.
  • Um arquivo .DIGESTS que contém as somas de checagem do arquivo de stage em diferentes algoritmos.
  • Um arquivo .DIGESTS.asc que, como o arquivo .DIGESTS, contém somas de checagem do arquivo de stage em diferentes algoritmos, mas também assinadas criptograficamente para validar que é provido pelo Projeto Gentoo.

Use o comando openssl e compare a saída com as somas de checagem providas pelos arquivos .DIGESTS ou .DIGESTS.asc.

Por exemplo, para validar a soma de checagem SHA512:

root #openssl dgst -r -sha512 stage3-x86-<release>.tar.?(bz2|xz)

dgst instructs the openssl command to use the Message Digest sub-command, -r prints the digest output in coreutils format, and -sha512 selects the SHA512 digest.

Para validar a soma de checagem Whirlpool:

root #openssl dgst -r -whirlpool stage3-x86-<release>.tar.?(bz2|xz)

Compare a saída desses comandos com o valor registrado nos arquivos .DIGESTS(.asc). Os valores devem bater, senão o arquivo baixado pode estar corrompido (ou o arquivo .DIGESTS está).

Outra forma é usar o comando sha512sum:

root #sha512sum stage3-x86-<release>.tar.?(bz2|xz)

The --check option instructs sha256sum to read a list of expected files and associated hashes, and then print an associated "OK" for each file that calculates correctly or a "FAILED" for files that do not.

Assim como com o arquivo ISO, é possível também verificar a assinatura criptográfica do arquivo .DIGESTS.asc usando o gpg para verificar que as somas de checagem não foram adulteradas.

For official Gentoo live images, the sec-keys/openpgp-keys-gentoo-release package provides PGP signing keys for automated releases. The keys must first be imported into the user's session in order to be used for verification:

root #gpg --import /usr/share/openpgp-keys/gentoo-release.asc

For all non-official live images which offer gpg and wget in the live environment, a bundle containing Gentoo keys can be fetched and imported:

root #wget -O - https://qa-reports.gentoo.org/output/service-keys.gpg | gpg --import

Verify the signature of the tarball and, optionally, associated checksum files:

root #gpg --verify stage3-x86-<release>.tar.?(bz2|xz){.DIGESTS.asc,}

If verification succeeds, "Good signature from" will be in the output of the previous command(s).

As impressões digitais das chaves do OpenGPG usadas para assinar os lançamentos das mídias podem ser encontradas na página de assinaturas de lançamentos de mídias do servidor web Gentoo.

Instalando um arquivo tar de stage

Agora desempacote o stage baixado no sistema. Usamos o tar para isso:

root #tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

Certifique-se que as mesmas opções (xpf e --xattrs-include='*.*') são usadas. O x significa Extrair, o p para "preservar" permissões e o f para indicar que queremos extrair um arquivo ("file"), não da entrada padrão. --xattrs-include='*.*' é para incluir a preservação dos atributos estendidos de todos os arquivos armazenados. Finalmente, --numeric-owner é usado para assegurar que os IDs de usuário e grupo dos arquivos sendo extraídos do arquivo tar permanecerão os mesmos que os pretendidos pela equipe de engenharia de lançamentos do Gentoo (mesmo que usuários aventureiros não estiverem usando a mídia de instalação oficial do Gentoo).

  • x extract, instructs tar to extract the contents of the archive.
  • p preserve permissions.
  • v verbose output.
  • f file, provides tar with the name of the input archive.
  • --xattrs-include='*.*' Preserves extended attributes in all namespaces stored in the archive.
  • --numeric-owner Ensure that the user and group IDs of files being extracted from the tarball remain the same as Gentoo's release engineering team intended (even if adventurous users are not using official Gentoo live environments for the installation process).

Agora que o arquivo de stage está descompactado, proceda com Configurando as opções de compilação.

Configurando as opções de compilação

Introdução

Para otimizar o Gentoo, é possível ajustar algumas variáveis que impactam o comportamento do Portage, o oficialmente suportado gerenciador de pacotes do Gentoo. Todas essas variáveis podem ser ajustadas como variáveis de ambiente (usando export) mas isso não é permanente. Para manter os ajustes, o Portage lê o arquivo /etc/portage/make.conf, que é um arquivo de configuração do Portage.

Nota
Technically variables can be exported via the shell's profile or rc files, however that is not best practice for basic system administration.

Portage reads in the make.conf file when it runs, which will change runtime behavior depending on the values saved in the file. make.conf can be considered the primary configuration file for Portage, so treat its content carefully.

Nota
Uma listagem com comentários de todas as possíveis variáveis pode ser encontrada em /mnt/gentoo/usr/share/portage/config/make.conf.example. Para uma instalação com sucesso do Gentoo, apenas as variáveis mencionadas abaixo precisam ser ajustadas.

For a successful Gentoo installation only the variables that are mentioned below need to be set.}}

Use um editor (neste guia usamos o nano) para alterar as variáveis de otimização que iremos discutir a partir daqui.

root #nano -w /mnt/gentoo/etc/portage/make.conf

Olhando o arquivo make.conf.example fica óbvio como o arquivo deve ser estruturado: linhas de comentário iniciam com "#", outras linhas definem variáveis usando sintaxe VARIAVEL="conteúdo". Diversas dessas variáveis são discutidas a seguir.

CFLAGS e CXXFLAGS

As variáveis CFLAGS e CXXFLAGS definem as flags de otimização para os compiladores C e C++ GCC, respectivamente. Apesar de serem definidas globalmente aqui, para máximo desempenho seria necessário otimizar essas flags para cada programa separadamente. A razão disso é que cada programa é diferente. Entretanto, isso não é viável, por isso a definição dessas flags no arquivo make.conf.

No arquivo make.conf deve-se definir as flags de otimização que fariam o sistema mais responsivo de modo geral. Não coloque ajustes experimentais nessa variável; otimização demais pode fazer com que os programas comportem-se mal (abortem, ou ainda pior, funcionem mal).

Não iremos explicar todas as possíveis opções de otimização. Para compreender todas elas, leia o Manual Online do GCC ou as páginas info do gcc (info gcc -- funciona apenas em um sistema Linux já instalado). O arquivo make.conf.example em si também contém muitos exemplos e informação; não se esqueça de lê-lo também.

Um primeiro ajuste é a flag -march= ou -mtune=, que especifica o nome da arquitetura alvo. As possíveis opções estão descritas no arquivo make.conf.example (como comentários). Um valor comumente usado é "native", que diz ao compilador para selecionar a arquitetura do sistema atual (aquele no qual o Gentoo está sendo instalado).

Em segundo vem a flag -O (um O maiúsculo, não um zero), que especifica a flag da classe de otimização. Valores possíveis são "s" (para otimização por tamanho), 0 (zero - para nenhuma otimização), 1, 2 ou até 3 para flags de otimização para velocidade (cada classe tem as mesmas flags da anterior, mais algumas extras). -O2 é o padrão recomendado. Sabe-se que -O3 causa problemas se usada pelo sistema como um todo, então recomendamos ficar com -O2.

Uma flag de otimização popular é a -pipe (usa pipes em vez de arquivos temporários para comunicação entre os vários estágios da compilação). Ela não tem impacto no código gerado, mas usa mais memória. Em sistemas com pouca memória, o gcc pode ser morto. Nesse caso, não use essa flag.

Usar o -fomit-frame-pointer (que não mantém o ponteiro de frame em um registrador para funções que não precisam de um) pode ter sérias repercussões para depurar aplicações.

Se as variáveis CFLAGS e CXXFLAGS são definidas, combine as várias flags de otimização em uma string. Os valores default contidos no arquivo stage3 que é desempacotado devem ser adequados. Abaixo é apenas um exemplo:

CODE Exemplo de variáveis CFLAGS e CXXFLAGS
# Flags do compilador para todas linguagens
COMMON_FLAGS="-O2 -march=i686 -pipe"
# Use os mesmos valores para ambas variáveis
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Dica
Apesar do artigo Guia de otimização do GCC conter mais informação sobre como as várias opções de compilação podem afetar um sistema, o artigo Safe CFLAGS pode ser uma opção mais prática para iniciantes começarem a otimizar seus sistemas.

MAKEOPTS

A variável MAKEOPTS define quantas compilações paralelas podem ocorrer quando um pacote estiver sendo instalado. Uma boa escolha é o número de CPUs (ou núcleos de CPU) em um sistema mais um, porém essa regra nem sempre é perfeita.

Further, as of Portage 3.0.53[1], if left undefined, Portage's default behavior is to set the MAKEOPTS load-average value to the same number of threads returned by nproc.

A good choice is the smaller of: the number of threads the CPU has, or the total amount of system RAM divided by 2 GiB.

Aviso
Usar muitos jobs pode impactar significantemente o consumo de memória. Uma boa recomendação é ter pelo menos 2 GiB de RAM para cada job em especifico (então, por exemplo. -j6 requer pelo menos 12 GiB). Para evitar ficar sem memória, reduza o número de trabalhos para caber na memória disponível.
Dica
When using parallel emerges (--jobs), the effective number of jobs run can grow exponentially (up to make jobs multiplied by emerge jobs). This can be worked around by running a localhost-only distcc configuration that will limit the number of compiler instances per host.
CODE Exemplo de declaração de MAKEOPTS em make.conf
MAKEOPTS="-j2"

Search for MAKEOPTS in man 5 make.conf for more details.

Pronto, preparar, vai!

Atualize o arquivo /mnt/gentoo/etc/portage/make.conf de acordo com suas preferências pessoais e grave (usuários do nano podem usar Ctrl+x).




Fazendo chroot

Copie as informações de DNS

Resta ainda uma coisa a ser feita antes de entrar no novo ambiente que é copiar sobre a informação de DNS em /etc/resolv.conf. Isso precisa ser feito para assegurar que a rede ainda funciona mesmo após entrar no novo ambiente. O /etc/resolv.conf contém os servidores de nomes da rede.

Para copiar essa informação, é recomendado passar a opção --dereference do comando cp. Isso assegura que, se o /etc/resolv.conf for um link simbólico, que o arquivo alvo é copiado em vez do link simbólico em si. De outra forma, no novo ambiente o link simbólico apontaria para um arquivo não existente (pois é muito provável que o alvo do link não estará disponível dentro do novo ambiente).

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Montando os sistemas de arquivos necessários

Em alguns momentos, a raiz do Linux será alterada para a nova localidade. Para garantir que o novo ambiente funciona corretamente, alguns sistemas de arquivos precisam estar disponíveis lá também.

Os sistemas de arquivos que precisam estar disponíveis são:

  • /proc/ que é um pseudo sistema de arquivos (ele se parece com arquivos normais, mas na verdade é gerado "no voo") do qual o kernel do Linux expõe informação para o ambiente
  • /sys/ que é um pseudo sistema de arquivos, como o /proc/ o qual era para substituir, sendo mais estruturado que o /proc/
  • /dev/ é um sistema de arquivos normal, parcialmente gerenciado pelo gerenciador de dispositivos do Linux (normalmente o udev), que contém todos os arquivos de dispositivos

A localidade /proc/ será montada em /mnt/gentoo/proc/ enquanto as outras duas são montadas como "bind". Isso significa que, por exemplo, /mnt/gentoo/sys/ será, na verdade, /sys/ (sendo na verdade apenas um segundo ponto de entrada para o mesmo sistema de arquivos) enquanto /mnt/gentoo/proc/ é uma nova montagem ("instância", para usar o termo) do sistema de arquivo.

Dica
If using Gentoo's install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.
root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
root #mount --bind /run /mnt/gentoo/run
root #mount --make-slave /mnt/gentoo/run
Nota
As operações --make-rslave são necessárias para o suporte ao systemd mais tarde na instalação.
Aviso
Se usar uma mídia de instalação que não seja do Gentoo, os passos anteriores podem não ser suficientes. Algumas distribuições criam o /dev/shm como um link simbólico para o /run/shm/ que, após o chroot, torna-se inválido. Fazer do /dev/shm/ uma montagem tmpfs apropriada desde já pode corrigir isso:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Assegure-se também de usar o modo 1777:

root # chmod 1777 /dev/shm

Entrando no novo ambiente

Agora que todas as partições estão inicializadas e o ambiente base está instalado, é hora de entrar no novo ambiente de instalação fazendo chroot nele. Isso significa que a sessão irá alterar sua "raiz" (o diretório mais alto que pode ser acessado) do ambiente atual de instalação (CD de instalação ou outra mídia) para o sistema de instalação (as partições inicializadas). Por isso o nome "change root" (trocar a "raiz") ou "chroot".

O chroot é feito em três passos:

  1. A localização raiz é trocada de / (na mídia de instalação) para /mnt/gentoo/ (nas partições) usando o comando chroot
  2. Algumas configurações (aquelas em /etc/profile) são carregadas na memória usando o comando source
  3. O sinal de pronto é trocado para nos ajudar a lembrar que aquela sessão está dentro do ambiente chroot
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

A partir deste ponto, todas as ações feitas afetam imediatamente o novo ambiente de instalação do Gentoo Linux. É claro que a instalação ainda está longe de ser concluída, sendo por isso que ainda temos algumas seções restantes!

Dica
Se a instalação do Gentoo for interrompida a partir deste ponto, deve ser possível 'retomar' a instalação neste ponto. Não há necessidade de reparticionar os discos novamente! Apenas monte a partição root e execute os passos acima iniciando em Copie as informações de DNS para reentrar no ambiente funcional. Isso também é útil para corrigir problemas com o gerenciador de boot. Maiores informações podem ser encontradas no artigo chroot.

Preparing for a bootloader

Now that the new environment has been entered, it is necessary to prepare the new environment for the bootloader. It will be important to have the correct partition mounted when it is time to install the bootloader.

UEFI systems

For UEFI systems, /dev/sda1 was formatted with the FAT32 filesystem and will be used as the EFI System Partition (ESP). Create a new /efi directory (if not yet created), and then mount ESP there:

root #mkdir /efi # May have been created in a previous step
root #mount /dev/sda1 /efi

DOS/Legacy BIOS systems

For DOS/Legacy BIOS systems, the bootloader will be installed into the directory, therefore mount as follows:

root #mount /dev/sda1

Configurando o Portage

Repositório ebuild do Gentoo

Um segundo passo importante na seleção de espelhos é configurar o repositório ebuild do Gentoo através o arquivo /etc/portage/repos.conf/gentoo.conf. Esse arquivo contém as informações para sincronização necessárias para atualizar a árvore do Portage (a coleção de ebuilds e arquivos relacionados contendo toda a informação que o Portage precisa para baixar e instalar pacotes de software).

A configuração do repositório pode ser feita em alguns passos simples. Primeiro, se ele não existir, crie o diretório repos.conf:

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

Depois, copie o arquivo de configuração do repositório fornecido pelo Portage para o recém-criado diretório repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Dê uma olhada com um editor de textos ou usando o comando cat. O arquivo deve estar no formato .ini e se parecer com:

FILE /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4

O valor da variável default sync-uri listada acima irá determinar a localização do espelho baseado em um esquema de rotação. Isso irá ajudar a diminuir o impacto do uso da infraestrutura do Gentoo e prover uma segurança no caso de um espelho específico ficar indisponível. É recomendável que a URI default seja mantida a menos que um espelho local privado do Portage seja usado.

Dica
Para os interessados, a especificação oficial da API de sincronização do plugin do Portage pode ser encontrada no Artigo sobre sincronização do projeto do Portage.

Instalando um instantâneo do repositório ebuild da web

O próximo passo é instalar um instantâneo do repositório principal do ebuild. O instantâneo contém uma coleção de arquivos que informa ao Portage sobre quais softwares estão disponíveis para instalação, quais perfis o administrador do sistema pode selecionar, ítens de notícias específicas de um pacote ou perfil etc.

O uso do comando emerge-webrsync é recomendado para os usuários que estão atrás de firewalls restritivos (porque ele usa os protocolos HTTP/FTP para baixar o instantâneo) e economiza banda de rede. Leitores que não tiverem restrições de rede ou de banda podem tranquilamente pular para a próxima seção.

Isso irá baixar o último instantâneo (que é liberado diariamente) de um dos espelhos do Gentoo e instalá-lo no sistema:

root #emerge-webrsync
Nota
Durante essa operação, o emerge-webrsync pode reclamar que o diretório /var/db/repos/gentoo/ não existe. Isso já é esperado e não é motivo para preocupação - a ferramenta irá criar o diretório.

A partir deste ponto, o Portage pode avisar que sejam executadas algumas atualizações recomendadas. Isso é porque alguns pacotes do sistema instalados através do arquivo stage podem ter novas versões disponíveis; o Portage fica sabendo dos novos pacotes através do instantâneo do repositório. As atualizações de pacotes podem ser ignoradas de forma segura por enquanto; as atualizações podem ser postergadas até que a instalação do Gentoo estiver finalizada.


Opcional: Selecionando espelhos

Para baixar o código fonte rapidamente é recomendado selecionar um espelho rápido. O portage procura no arquivo make.conf pela variável GENTOO_MIRRORS e usa os espelhos configurados lá. É possível navegar pela lista de espelhos do Gentoo e procurar um espelho (ou espelhos) que está perto da sua localização física (pois esses frequentemente são os mais rápidos). Entretanto, nós fornecemos uma boa ferramenta chamada mirrorselect que provê ao usuário uma boa interface para selecionar os espelhos necessários. Simplesmente navegue até os espelhos escolhidos e tecle Espaço para selecionar um ou mais espelhos.

A tool called mirrorselect provides a pretty text interface to more quickly query and select suitable mirrors. Just navigate to the mirrors of choice and press Spacebar to select one or more mirrors.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Alternatively, a list of active mirrors are available online.

Opcional: Atualizando o repositório ebuild

É possível atualizar o repositório ebuild do Gentoo para a última versão. O comando emerge-webrsync anterior instalou um instantâneo do Portage bem recente (normalmente tão recente quanto 24 horas) de modo que este passo é totalmente opcional.

Supondo que há necessidade da última atualização dos pacotes (menos de 1 hora), use emerge --sync. Esse comando irá usar o protocolo rsync para atualizar o repositório ebuild do Gentoo (que foi baixada anteriormente através do emerge-webrsync) ao seu estado mais recente.

root #emerge --sync

Em terminais lentos, tais como alguns "framebuffers" ou consoles seriais, é recomendado usar a opção --quiet para agilizar o processo:

root #emerge --sync --quiet

Lendo itens de notícias

Quando o repositório ebuild do Gentoo é sincronizada com o sistema, o Portage pode mostrar ao usuário mensagens similares a seguinte:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Ítens de notícias foram criados para prover um meio de comunicação para enviar mensagens aos usuários através da árvore do portage. Para gerenciá-las, use eselect news. A aplicação eselect é uma aplicação do Gentoo que provê uma interface de gerenciamento comum voltada para alterações e operações. Nesse caso, o eselect é acionado para usar seu módulo news.

Para o módulo news, três operações são mais utilizadas:

  • Com list, é mostrada uma lista dos itens de notícias disponíveis
  • Com read, os itens de notícias podem ser lidos
  • Com purge, itens de notícias podem ser removidos depois de lidos e não forem ser mais relidos
root #eselect news list
root #eselect news read

Mais informações sobre o leitor de notícias estão disponíveis através de sua página de manual:

root #man news.eselect

Escolhendo o perfil correto

Dica
Desktop profiles are not exclusively for desktop environments. They are also suitable for minimal window managers like i3 or sway.

Um perfil (profile) é uma peça fundamental para qualquer sistema Gentoo. Não apenas ele especifica valores padrões para o USE, CFLAGS e outras variáveis importantes, ele também trava o sistema em um dado conjunto de versões de pacotes. Essas configurações são mantidas pelos desenvolvedores do Portage do Gentoo.

Você pode ver qual perfil o sistema está usando com o eselect, agora usando com o módulo profile:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/x86/23.0 *
  [2]   default/linux/x86/23.0/desktop
  [3]   default/linux/x86/23.0/desktop/gnome
  [4]   default/linux/x86/23.0/desktop/kde
Nota
A saída do comando é apenas um exemplo e evolui com o tempo.

Como pode ser visto, há também subperfis de desktops disponíveis para algumas arquiteturas.

Aviso
Atualizações de perfis não devem ser empreendidas levianamente. Ao selecionar o perfil inicial, certifique-se de usar perfil correspondente a mesma versão que a inicialmente usado pelo stage3 (por ex. 17.0). Cada nova versão de perfil é anunciada através de um novo item de notícia contendo instruções para migração. Tenha certeza de ler e seguir as instruções antes de mudar para um novo perfil.

Depois de visualizar os perfis disponíveis para a arquitetura x86, os usuários podem selecionar um perfil diferente para o sistema:

root #eselect profile set 2

Nota
O subperfil developer (desenvolvedor) é específico para o desenvolvimento do Gentoo Linux e não é destinado para uso por usuários casuais.

Optional: Adding a binary package host

Since December 2023, Gentoo's Release Engineering team has offered an official binary package host (colloquially shorted to just "binhost") for use by the general community to retrieve and install binary packages (binpkgs).[1]

Adding a binary package host allows Portage to install cryptographically signed, compiled packages. In many cases, adding a binary package host will greatly decrease the mean time to package installation and adds much benefit when running Gentoo on older, slower, or low power systems.

Repository configuration

The repository configuration for a binhost is found in Portage's /etc/portage/binrepos.conf/ directory, which functions similarly to the configuration mentioned in the Gentoo ebuild repository section.

When defining a binary host, there are two important aspects to consider:

  1. The architecture and profile targets within the sync-uri value do matter and should align to the respective computer architecture (x86 in this case) and system profile selected in the Choosing the right profile section.
  2. Selecting a fast, geographically close mirror will generally shorten retrieval time. Review the mirrorselect tool mentioned in the Optional: Selecting mirrors section or review the online list of mirrors where URL values can be discovered.

FILE /etc/portage/binrepos.conf/gentoobinhost.confCDN-based binary package host example
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/<arch>/binpackages/<profile>/x86-64/

Installing binary packages

Portage will compile packages from code source by default. It can be instructed to use binary packages in the following ways:

  1. The --getbinpkg option can be passed when invoking the emerge command. This method of for binary package installation is useful to install only a particular binary package.
  2. Changing the system's default via Portage's FEATURES variable, which is exposed through the /etc/portage/make.conf file. Applying this configuration change will cause Portage to query the binary package host for the package(s) to be requested and fall back to compiling locally when no results are found.

For example, to have Portage always install available binary packages:

FILE /etc/portage/make.confConfigure Portage to use binary packages by default
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"

Please also run getuto for Portage to set up the necessary keyring for verification:

root #getuto

Additional Portage features will be discussed in the the next chapter of the handbook.

Configurando as variáveis USE

A USE é uma das mais poderosas variáveis que o Gentoo provê aos seus usuários. Muitos programas podem ser compilados com ou sem suporte para certos itens. Por exemplo, alguns programas podem ser compilados com suporte ao GTK+ ou ao QT. Outros podem ser compilados com ou sem suporte ao SSL. Alguns programas podem até ser compilados com suporte a framebuffer (svgalib) em vez de suporte ao X11 (X-server).

A maioria das distribuições compilam seus pacotes com o máximo possível de suporte, aumentando o tamanho dos programas e o tempo de carga, sem contar o enorme número de dependências. Com o Gentoo, os usuários podem definir com quais opções um pacote deve ser compilado. É aqui que a USE entra em cena.

Na variável USE os usuários definem palavras-chave que serão mapeadas em opções de compilação. Por exemplo, ssl irá compilar suporte ao SSL em programas que o suportam. -X irá remover suporte ao servidor X (note o sinal de menos na frente). gnome gtk -kde -qt5 irá compilar programas com suporte ao GNOME (e GTK+) mas não ao KDE (e Qt), fazendo o sistema ajustado para o GNOME (se a arquitetura o suportar).

Os padrões para as configurações USE estão armazenados nos arquivos make.defaults do perfil do Gentoo usado pelo sistema. O Gentoo usa um (complexo) sistema de herança para seus perfis, no qual ainda não nos aprofundamos neste estágio. O modo mais fácil de checar as configurações USE ativas é executar emerge --info e selecionar a linha que começa com USE:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Nota
O exemplo acima está truncado, a lista real das variáveis USE é muito, muito maior.

Uma descrição completa das flags USE disponíveis pode ser encontrada no sistema em /var/db/repos/gentoo/profiles/use.desc.

root #less /var/db/repos/gentoo/profiles/use.desc

Dentro do comando less, a rolagem pode ser feita usando as teclas e , e sair pressionando q.

Como exemplo, mostramos uma configuração USE para um sistema baseado no KDE com suporte a DVD, ALSA e gravação de CD:

root #nano -w /etc/portage/make.conf
FILE /etc/portage/make.confHabilitando USE para um sistema baseado em KDE com suporte a DVD, ALSA e gravação de CD
USE="-gtk -gnome qt5 kde dvd alsa cdr"

Quando a USE é definida em /etc/portage/make.conf ela é "adicionada" (ou "removida" se a flag iniciar com o sinal -) da lista padrão. Usuários que quiserem ignorar toda a configuração padrão USE e gerenciá-la completamente por conta devem iniciar a definição USE com -*:

FILE /etc/portage/make.confIgnorando as flags USE padrão
USE="-* X acl alsa"
Aviso
Mesmo sendo possível, definir -* (como no exemplo acima) é desencorajado pois USE flags default cuidadosamente escolhidas podem ter sido configuradas em alguns ebuild para evitar conflitos e outros erros.

CPU_FLAGS_*

Some architectures (including AMD64/X86, ARM, PPC) have a USE_EXPAND variable called CPU_FLAGS_<ARCH>, where <ARCH> is replaced with the relevant system architecture name.

Importante
Do not be confused! AMD64 and X86 systems share some common architecture, so the proper variable name for AMD64 systems is CPU_FLAGS_X86.

This is used to configure the build to compile in specific assembly code or other intrinsics, usually hand-written or otherwise extra, and is not the same as asking the compiler to output optimized code for a certain CPU feature (e.g. -march=).

Users should set this variable in addition to configuring their COMMON_FLAGS as desired.

A few steps are needed to set this up:

root #emerge --ask --oneshot app-portage/cpuid2cpuflags

Inspect the output manually if curious:

root #cpuid2cpuflags

Then copy the output into package.use:

root #echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

VIDEO_CARDS

The VIDEO_CARDS USE_EXPAND variable should be configured appropriately depending on the available GPU(s). Setting VIDEO_CARDS is not required for a console only install.

Below is an example of a properly set VIDEO_CARDS variable. Substitute the name of the driver(s) to be used.

FILE /etc/portage/make.conf
VIDEO_CARDS="amdgpu radeonsi"

Details for various GPU(s) can be found at the AMDGPU, Intel, Nouveau (Open Source), or NVIDIA (Proprietary) articles.

Opcional: Configurando a variável ACCEPT_LICENSE

Starting with Gentoo Linux Enhancement Proposal 23 (GLEP 23), a mechanism was created to allow system administrators the ability to "regulate the software they install with regards to licenses... Some want a system free of any software that is not OSI-approved; others are simply curious as to what licenses they are implicitly accepting."[2] With a motivation to have more granular control over the type of software running on a Gentoo system, the ACCEPT_LICENSE variable was born.

O Gentoo vem com um valor predefinido nos perfis, por exemplo:

user $portageq envvar ACCEPT_LICENSE
@FREE

Os grupos de licenças definidos no repositório Gentoo, gerenciados pelo Projeto de Licenças do , são:

Nome do Grupo Descrição
@GPL-COMPATIBLE Licenças compatíveis com a GPL aprovadas pela Fundação Software Livre (FSF - Free Software Foundation) [a_license 1]
@FSF-APPROVED Licenças de software livre aprovadas pela FSF (inclui @GPL-COMPATIBLE)
@OSI-APPROVED Licenças aprovadas pela Iniciativa do Software Aberto (OSI - Open Source Initiative) [a_license 2]
@MISC-FREE Miscelânea de licenças que são provavelmente software livre, isto é, seguem a Definição de Software Livre (Free Software Definition) [a_license 3] mas que não são aprovadas pela FSF ou OSI
@FREE-SOFTWARE Combina @FSF-APPROVED, @OSI-APPROVED e @MISC-FREE
@FSF-APPROVED-OTHER Licenças aprovadas pela FSF para "documentação livre" e "trabalhos de uso prático além de software e documentação" (incluindo fontes)
@MISC-FREE-DOCS Miscelânea de licenças para documentos livres e outros trabalhos (incluindo fontes) que seguem a definição de livre [a_license 4] mas NÃO são listadas em @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Combina @FSF-APPROVED-OTHER e @MISC-FREE-DOCS
@FREE Combina @FREE-SOFTWARE e @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Inclui @FREE e outros softwares livremente distribuíveis de código fechado que não tem um Acordo de Licença para o Usuário Final (EULA - End-User License Agreement)
@EULA Acordos de Licença que tentam tirar seus direitos. São mais restritivas do que "todos os direitos reservados" ou requerem aprovação explícita

Some common license groups include:

A list of software licenses grouped according to their kinds.
Name Description
@GPL-COMPATIBLE GPL compatible licenses approved by the Free Software Foundation [a_license 5]
@FSF-APPROVED Free software licenses approved by the FSF (includes @GPL-COMPATIBLE)
@OSI-APPROVED Licenses approved by the Open Source Initiative [a_license 6]
@MISC-FREE Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 7] but are not approved by either FSF or OSI
@FREE-SOFTWARE Combines @FSF-APPROVED, @OSI-APPROVED, and @MISC-FREE.
@FSF-APPROVED-OTHER FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts)
@MISC-FREE-DOCS Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 8] but are NOT listed in @FSF-APPROVED-OTHER.
@FREE-DOCUMENTS Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS.
@FREE Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS.
@BINARY-REDISTRIBUTABLE Licenses that at least permit free redistribution of the software in binary form. Includes @FREE.
@EULA License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval

Currently set system wide acceptable license values can be viewed via:

user $portageq envvar ACCEPT_LICENSE
@FREE

As visible in the output, the default value is to only allow software which has been grouped into the @FREE category to be installed.

Specific licenses or licenses groups for a system can be defined in the following locations:

  • System wide within the selected profile - this sets the default value.
  • System wide within the /etc/portage/make.conf file. System administrators override the profile's default value within this file.
  • Per-package within a /etc/portage/package.license file.
  • Per-package within a /etc/portage/package.license/ directory of files.

Isso pode ser customizado para todo o sistema alterando o arquivo /etc/portage/make.conf. O valor default irá aceitar licenças aprovadas explicitamente pela Fundação Software Livre (FSF - Free Software Foundation), pela Iniciativa de de Código Aberto (OSI - Open Source Initiative) ou que seguem a Definição de Software Livre (Free Software Definition):

FILE /etc/portage/make.confCustomizing ACCEPT_LICENSE
ACCEPT_LICENSE="-* @FREE"

Configurações por pacote podem ser adicionadas se necessárias ou desejadas, por exemplo:

FILE /etc/portage/package.license/kernelExemplo de aceitação de licença
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
root #mkdir /etc/portage/package.license

Software license details for an individual Gentoo package are stored within the LICENSE variable of the associated ebuild. One package may have one or many software licenses, therefore it be necessary to specify multiple acceptable licenses for a single package.

FILE /etc/portage/package.license/kernelAccepting licenses on a per-package basis
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Importante
A variável LICENSE em uma ebuild é apenas uma indicação para os desenvolvedores e usuários do Gentoo. Ela não tem valor legal e não há garantias de que reflita a realidade. Desse modo, não confie cegamente nela, mas cheque o pacote em si cuidadosamente, incluindo todos os arquivos que usar.

Atualizando o conjunto @world

O passo seguinte é necessário de modo ao sistema poder aplicar atualizações ou mudanças de USE flag que apareceram desde que o stage3 foi criado e de qualquer seleção de perfil:

  1. A profile target different from the stage file has been selected.
  2. Additional USE flags have been set for installed packages.

Readers who are performing an 'install Gentoo speed run' may safely skip @world set updates until after their system has rebooted into the new Gentoo environment.

Readers who are performing a slow run can have Portage perform updates for package, profile, and/or USE flag changes at the present time:

root #emerge --ask --verbose --update --deep --newuse @world

Removing obsolete packages

It is important to always depclean after system upgrades to remove obsolete packages. Review the output carefully with emerge --depclean --pretend to see if any of the to-be-cleaned packages should be kept if personally using them. To keep a package which would otherwise be depcleaned, use emerge --noreplace foo.

root #emerge --ask --pretend --depclean

If happy, then proceed with a real depclean:

root #emerge --ask --depclean
Dica
Se um perfil de ambiente completo de desktop foi selecionado, o tempo necessário para o processo de instalação pode ser bastante longo. Aqueles sem muito tempo para a instalação podem seguir a seguinte 'regra geral': quanto menor o nome do perfil, menos específico o conjunto @world; quanto menos específico o conjunto @world, menos pacotes o sistema irá requerer. Em outras palavras:
  • selecionar default/linux/amd64/13.0 irá requerer bem poucos pacotes para atualizar, enquanto
  • selecionar default/linux/amd64/13.0/desktop/gnome/systemd irá requerer muitos pacotes para a instalação uma vez que o sistema de inicialização será trocado do OpenRC para systemd e o ambiente de trabalho GNOME será instalado.


Fuso horário

Nota
This step does not apply to users of the musl libc. Users who do not know what that means should perform this step.

Por favor evite os fusos horários /usr/share/zoneinfo/Etc/GMT* pois seus nomes não correspondem aos fusos esperados. Por exemplo, GMT-8 é na verdade GMT+8.

Selecione o fuso horário para o sistema. Veja os fusos horários disponíveis em /usr/share/zoneinfo/, e então escreva-o no arquivo /etc/timezone.

root #ls /usr/share/zoneinfo
root #ls -l /usr/share/zoneinfo/Europe/
total 256
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Amsterdam
-rw-r--r-- 1 root root 1742 Dec  3 17:19 Andorra
-rw-r--r-- 1 root root 1151 Dec  3 17:19 Astrakhan
-rw-r--r-- 1 root root 2262 Dec  3 17:19 Athens
-rw-r--r-- 1 root root 3664 Dec  3 17:19 Belfast
-rw-r--r-- 1 root root 1920 Dec  3 17:19 Belgrade
-rw-r--r-- 1 root root 2298 Dec  3 17:19 Berlin
-rw-r--r-- 1 root root 2301 Dec  3 17:19 Bratislava
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Brussels
...

Suppose the timezone of choice is Europe/Brussels.

OpenRC

The desired timezone name can be written to /etc/timezone:

root #echo "Brazil/East" > /etc/timezone

A seguir, reconfigure o pacote sys-libs/timezone-data, o que irá atualizar o arquivo /etc/localtime para nós, baseado no /etc/timezone. O arquivo /etc/localtime é usado pela biblioteca C do sistema para saber em qual fuso horário o sistema está.

root #emerge --config sys-libs/timezone-data
Nota
The /etc/localtime file is used by the system C library to know the timezone the system is in.

systemd

A slightly different approach is employed when using systemd. A symbolic link is generated:

root #ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime

Later, when systemd is running, the timezone and related settings can be configured with the timedatectl command.

Configurando locais

Nota
This step does not apply to users of the musl libc. Users who do not know what that means should perform this step.

Locale generation

A maioria dos usuários irá querer usar apenas um ou dois locais em seus sistemas.

Locais especificam não apenas a língua que o sistema deve usar para interagir com o usuário, mas também as regras para ordenar strings, mostrar data e hora etc.

Os locais que um sistema deve suportar devem ser entrados em /etc/locale.gen.

root #nano -w /etc/locale.gen

Os seguintes locais são um exemplo para se obter inglês (Estados Unidos) e alemão (Alemanha) com os correspondentes formatos de caracteres (como o UTF-8).

FILE /etc/locale.genHabilitando os locais US e DE com os formatos de caracteres apropriados
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Aviso
Sugerimos fortemente usar pelo menos um local UTF-8 pois algumas aplicações podem requerê-lo.

O próximo passo é executar locale-gen. Isso irá regerar todos os locais especificados no arquivo /etc/locale.gen.

root #locale-gen

Para verificar que os locais selecionados estão agora disponíveis, execute locale -a.

On systemd installs, localectl can be used, e.g. localectl set-locale ... or localectl list-locales.

Locale selection

Uma vez feito, é agora hora de ajustar a configuração geral de local do sistema. Novamente usamos o eselect para isso, agora com o módulo locale.

Com o eselect locale list, os alvos disponíveis são mostrados.

root #eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] POSIX
  [3] en_US
  [4] en_US.iso88591
  [5] en_US.utf8
  [6] de_DE
  [7] de_DE.iso88591
  [8] de_DE.iso885915
  [9] de_DE.utf8
  [ ] (free form)

Com eselect locale set VALOR o local correto pode ser ajustado:

root #eselect locale set 9

Manualmente, isso pode ser conseguido através do arquivo /etc/env.d/02locale:

FILE /etc/env.d/02localeAjustando manualmente as definições de locais do sistema
LANG="de_DE.UTF-8"
LC_COLLATE="C"

Certifique-se que um local foi configurado, ou o sistema irá mostrar mensagens de aviso e erro durante a construção do kernel e outras implantações de software mais tarde na instalação.

Agora recarregue o ambiente:

root #env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

Nós fizemos um Guia de localização completo para ajudar o usuário através do processo. Outro artigo interessante é o guia UTF-8 com informações muito específicas para habilitar o UTF-8 no sistema.




Opcional: Instalando firmware

Firmware

Linux Firmware

Alguns drivers requerem que firmware adicionais sejam instalados no sistema antes para funcionarem. Isso ocorre normalmente com interfaces de rede, especialmente as interfaces de rede sem fio. Também placas de vídeo modernas de fabricantes como AMD, NVidia e Intel, quando usando drivers open source, frequentemente precisam de arquivos de firmware externos. A maioria dos firmwares estão empacotados em sys-kernel/linux-firmware:

It is recommended to have the sys-kernel/linux-firmware package installed before the initial system reboot in order to have the firmware available in the event that it is necessary:

root #emerge --ask sys-kernel/linux-firmware
Nota
Installing certain firmware packages often requires accepting the associated firmware licenses. If necessary, visit the license handling section of the Handbook for help on accepting licenses.

It is important to note that kernel symbols that are built as modules (M) will load their associated firmware files from the filesystem when they are loaded by the kernel. It is not necessary to include the device's firmware files into the kernel's binary image for symbols loaded as modules.

Microcode

In addition to discrete graphics hardware and network interfaces, CPUs also can require firmware updates. Typically this kind of firmware is referred to as microcode. Newer revisions of microcode are sometimes necessary to patch instability, security concerns, or other miscellaneous bugs in CPU hardware.

Microcode updates for AMD CPUs are distributed within the aforementioned sys-kernel/linux-firmware package. Microcode for Intel CPUs can be found within the sys-firmware/intel-microcode package, which will need to be installed separately. See the Microcode article for more information on how to apply microcode updates.

Kernel configuration and compilation

É chegada a hora de configurar e compilar os fontes do kernel. Há duas formas de se fazer isso:

Ranked from least involved to most involved:

  1. O kernel é manualmente configurado e compilado, ou
  2. é usada uma ferramenta chamada genkernel para automaticamente compilar e instalar o kernel Linux

O núcleo em torno do qual todas as distribuições são criadas é o kernel Linux. Ele é a camada entre os programas de usuários e o hardware do sistema. O Gentoo provê aos seus usuários diversos possíveis fontes do kernel. Uma listagem completa está disponível na Página de visão geral do kernel.

Dica
Kernel installation tasks such as, copying the kernel image to /boot or the EFI System Partition, generating an initramfs and/or Unified Kernel Image, updating bootloader configuration, can be automated with installkernel. Users may wish to configure and install sys-kernel/installkernel before proceeding. See the Kernel installation section below for more more information.

Distribution kernels

Distribution Kernels are ebuilds that cover the complete process of unpacking, configuring, compiling, and installing the kernel. The primary advantage of this method is that the kernels are updated to new versions by the package manager as part of @world upgrade. This requires no more involvement than running an emerge command. Distribution kernels default to a configuration supporting the majority of hardware, however two mechanisms are offered for customization: savedconfig and config snippets. See the project page for more details on configuration.

Installing a distribution kernel

Before installing the kernel package the dracut USE flag needs to be added for the package sys-kernel/installkernel in /etc/portage/package.use:

FILE /etc/portage/package.use/installkernelEnable dracut support
sys-kernel/installkernel dracut

Users may also wish to enable additional sys-kernel/installkernel USE flags at this stage. See the Installation/Kernel#Installkernel section for details.

To build a kernel with Gentoo patches from source, type:

root #emerge --ask sys-kernel/gentoo-kernel

System administrators who want to avoid compiling the kernel sources locally can instead use precompiled kernel images:

root #emerge --ask sys-kernel/gentoo-kernel-bin
Optional: Signed kernel modules

The kernel modules in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) are already signed. To sign the modules of kernels built from source enable the modules-sign USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf:

FILE /etc/portage/make.confEnable module signing
USE="modules-sign"

# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.

If MODULES_SIGN_KEY is not specified the kernel build system will generate a key, it will be stored in /usr/src/linux-x.y.z/certs. It is recommended to manually generate a key to ensure that it will be the same for each kernel release. A key may be generated with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
Nota
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
Optional: Signing the kernel image (Secure Boot)

The kernel image in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) is already signed for use with Secure Boot. To sign the kernel image of kernels built from source enable the secureboot USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf. Note that signing the kernel image for use with secureboot requires that the kernel modules are also signed, the same key may be used to sign both the kernel image and the kernel modules:

FILE /etc/portage/make.confEnable custom signing keys
USE="modules-sign secureboot"

# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.

# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
Nota
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
Nota
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second separate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

See the above section for instructions on generating a new key, the steps may be repeated if a separate key should be used to sign the kernel image.

To successfully boot with Secure Boot enabled, the used bootloader must also be signed and the certificate must be accepted by the UEFI firmware or Shim. This will be explained later in the handbook.

Upgrading and cleaning up

Once the kernel is installed, the package manager will automatically update it to newer versions. The previous versions will be kept until the package manager is requested to clean up stale packages. To reclaim disk space, stale packages can be trimmed by periodically running emerge with the --depclean option:

root #emerge --depclean

Alternatively, to specifically clean up old kernel versions:

root #emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin

Post-install/upgrade tasks

Distribution kernels are capable of rebuilding kernel modules installed by other packages. linux-mod-r1.eclass provides the dist-kernel USE flag which controls a subslot dependency on virtual/dist-kernel.

Enabling this USE flag on packages like sys-fs/zfs and sys-fs/zfs-kmod allows them to automatically be rebuilt against a newly updated kernel and, if applicable, will re-generate the initramfs accordingly.

Manually rebuilding the initramfs or Unified Kernel Image

If required, manually trigger such rebuilds by, after a kernel upgrade, executing:

root #emerge --ask @module-rebuild

If any kernel modules (e.g. ZFS) are needed at early boot, rebuild the initramfs afterward via:

root #emerge --config sys-kernel/gentoo-kernel
root #emerge --config sys-kernel/gentoo-kernel-bin

Instalando os fontes

Nota
This section is only relevant when using the following genkernel (hybrid) or manual kernel management approach.

The use of sys-kernel/installkernel is not strictly required, but highly recommended. When this package is installed, the kernel installation process will be delegated to installkernel. This allows for installing several different kernel versions side-by-side as well as managing and automating several tasks relating to kernel installation described later in the handbook. Install it now with:

root #emerge --ask sys-kernel/installkernel

When installing and compiling the kernel for x86-based systems, Gentoo recommends the sys-kernel/gentoo-sources package.

Choose an appropriate kernel source and install it using emerge:

root #emerge --ask sys-kernel/gentoo-sources

Isso irá instalar os fontes do kernel Linux em /usr/src/ no qual um link simbólico chamado linux estará apontando para o fonte do kernel instalado:

It is conventional for a /usr/src/linux symlink to be maintained, such that it refers to whichever sources correspond with the currently running kernel. However, this symbolic link will not be created by default. An easy way to create the symbolic link is to utilize eselect's kernel module.

For further information regarding the purpose of the symlink, and how to manage it, please refer to Kernel/Upgrade.

First, list all installed kernels:

root #eselect kernel list
Available kernel symlink targets:
  [1]   linux-6.6.21-gentoo

In order to create a symbolic link called linux, use:

root #eselect kernel set 1
root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-6.6.21-gentoo

Alternativa: Usando o genkernel

Nota
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

Se a configuração manual parecer muito difícil, então é recomendado o uso do genkernel. Ele irá configurar e construir o kernel automaticamente.

Genkernel provides a generic kernel configuration file and will compile the kernel and initramfs, then install the resulting binaries to the appropriate locations. This results in minimal and generic hardware support for the system's first boot, and allows for additional update control and customization of the kernel's configuration in the future.

Be informed: while using genkernel to maintain the kernel provides system administrators with more update control over the system's kernel, initramfs, and other options, it will require a time and effort commitment to perform future kernel updates as new sources are released. Those looking for a hands-off approach to kernel maintenance should use a distribution kernel.

For additional clarity, it is a misconception to believe genkernel automatically generates a custom kernel configuration for the hardware on which it is run; it uses a predetermined kernel configuration that supports most generic hardware and automatically handles the make commands necessary to assemble and install the kernel, the associate modules, and the initramfs file.

Binary redistributable software license group

If the linux-firmware package has been previously installed, then skip onward to the to the installation section.

As a prerequisite, due to the firwmare USE flag being enabled by default for the sys-kernel/genkernel package, the package manager will also attempt to pull in the sys-kernel/linux-firmware package. The binary redistributable software licenses are required to be accepted before the linux-firmware will install.

This license group can be accepted system-wide for any package by adding the @BINARY-REDISTRIBUTABLE as an ACCEPT_LICENSE value in the /etc/portage/make.conf file. It can be exclusively accepted for the linux-firmware package by adding a specific inclusion via a /etc/portage/package.license/linux-firmware file.

If necessary, review the methods of accepting software licenses available in the Installing the base system chapter of the handbook, then make some changes for acceptable software licenses.

If in analysis paralysis, the following will do the trick:

root #mkdir /etc/portage/package.license
FILE /etc/portage/package.license/linux-firmwareAccept binary redistributable licenses for the linux-firmware package
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE

Installation

Agora vamos ver como usar o genkernel. Primeiro faça emerge do pacote sys-kernel/genkernel:

root #emerge --ask sys-kernel/genkernel

Generation

Agora, compile os fontes do kernel executando genkernel all. Note que, como genkernel all compila um kernel com suporte para quase todo tipo de hardware, a compilação pode demorar para terminar!

Nota
Se a partição de boot não usa ext2 ou ext3 como sistema de arquivos, pode ser necessário configurar manualmente o kernel usando genkernel --menuconfig all e adicionar suporte para esse sistema de arquivo em particular no kernel (não como módulo). Usuários de LVM2 provavelmente irão querer adicionar --lvm como argumento também.
Nota
Users of LVM2 should add --lvm as an argument to the genkernel command below.
root #genkernel all

Quando o genkernel terminar, estarão criados um kernel, um conjunto completo de módulos e um ramdisk inicial (initrd). Usaremos o kernel e o initrd quando configurarmos o gerenciador de boot mais tarde neste documento. Anote os nomes do kernel e do initrd pois essas informações são utilizadas quando o arquivo de configuração do gerenciador de boot for editado. O initrd será executado imediatamente após o boot para fazer a autodetecção de hardware (como no CD de instalação) antes do sistema "real" inicializar.

root #ls /boot/kernel* /boot/initramfs*

Padrão: Configuração manual

Introdução

Nota
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

Configurar manualmente um kernel é geralmente visto como o procedimento mais difícil que um usuário Linux pode fazer. Nada mais falso -- depois de configurar algumas vezes o kernel ninguém irá se lembrar que era difícil.

Porém, uma coisa é verdade: é vital conhecer o sistema quando um kernel é configurado manualmente. A maioria das informações pode ser coletada fazendo emerge no sys-apps/pciutils que contém o comando lspci:

root #emerge --ask sys-apps/pciutils
Nota
Dentro do chroot, é seguro ignorar qualquer aviso da pcilib (como pcilib: cannot open /sys/bus/pci/devices) que o lspci possa emitir.

Uma outra fonte de informação do sistema é executar o lsmod para ver quais módulos do kernel o CD de instalação usa pois isso pode dar dicas sobre o que habilitar.

Agora vá para o diretório dos fontes do kernel e execute make menuconfig. Isso irá mostrar uma tela de configuração baseada em menus.

root #cd /usr/src/linux
root #make menuconfig

A configuração do kernel do Linux tem muitas, muitas seções. Vamos primeiro mostrar algumas opções que devem ser ativadas (ou senão o Gentoo não irá funcionar, ou não funcionar adequadamente sem alguns ajustes). Existe também o Guia de configuração do kernel do Gentoo no wiki do Gentoo que poderá também ajudar.

Ativando as opções necessárias

When using sys-kernel/gentoo-sources, it is strongly recommend the Gentoo-specific configuration options be enabled. These ensure that a minimum of kernel features required for proper functioning is available:

KERNEL Enabling Gentoo-specific options
Gentoo Linux --->
  Generic Driver Options --->
    [*] Gentoo Linux support
    [*]   Linux dynamic and persistent device naming (userspace devfs) support
    [*]   Select options required by Portage features
        Support for init systems, system and service managers  --->
          [*] OpenRC, runit and other script based systems and managers
          [*] systemd

Naturally the choice in the last two lines depends on the selected init system (OpenRC vs. systemd). It does not hurt to have support for both init systems enabled.

When using sys-kernel/vanilla-sources, the additional selections for init systems will be unavailable. Enabling support is possible, but goes beyond the scope of the handbook.

Enabling support for typical system components

Certifique-se de que todos os drivers que forem vitais para a inicialização do sistema (tais como controladores SCSI etc) são compilados no kernel e não como módulos, ou senão o sistema não será capaz de inicializar completamente.

Em seguida selecione o tipo exato do processador. É também recomendado habilitar os recursos MCE (se disponíveis) de modo que os usuários possam ser notificados sobre quaisquer problemas de hardware. Em algumas arquiteturas (tais como a x86_64), esses erros não são impressos pelo dmesg, mas em /dev/mcelog. Isso requer o pacote app-admin/mcelog.

Selecione também Maintain a devtmpfs file system to mount at /dev assim os arquivos de dispositivos críticos estarão disponíveis logo durante o processo de inicialização (CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT):

KERNEL Habilitando suporte ao devtmpfs
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Verifique se o suporte a discos SCSI foi ativado (CONFIG_BLK_DEV_SD):

KERNEL Habilitando suporte a discos SCSI
Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support
KERNEL Enabling basic SATA and PATA support (CONFIG_ATA_ACPI, CONFIG_SATA_PMP, CONFIG_SATA_AHCI, CONFIG_ATA_BMDMA, CONFIG_ATA_SFF, CONFIG_ATA_PIIX)
Device Drivers --->
  <*> Serial ATA and Parallel ATA drivers (libata)  --->
    [*] ATA ACPI Support
    [*] SATA Port Multiplier support
    <*> AHCI SATA support (ahci)
    [*] ATA BMDMA support
    [*] ATA SFF support (for legacy IDE and PATA)
    <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)

Verify basic NVMe support has been enabled:

KERNEL Enable basic NVMe support for Linux 4.4.x (CONFIG_BLK_DEV_NVME)
Device Drivers  --->
  <*> NVM Express block device
KERNEL Enable basic NVMe support for Linux 5.x.x (CONFIG_DEVTMPFS)
Device Drivers --->
  NVME Support --->
    <*> NVM Express block device

It does not hurt to enable the following additional NVMe support:

KERNEL Enabling additional NVMe support (CONFIG_NVME_MULTIPATH, CONFIG_NVME_MULTIPATH, CONFIG_NVME_HWMON, CONFIG_NVME_FC, CONFIG_NVME_TCP, CONFIG_NVME_TARGET, CONFIG_NVME_TARGET_PASSTHRU, CONFIG_NVME_TARGET_LOOP, CONFIG_NVME_TARGET_FC, CONFIG_NVME_TARGET_FCLOOP, CONFIG_NVME_TARGET_TCP
[*] NVMe multipath support
[*] NVMe hardware monitoring
<M> NVM Express over Fabrics FC host driver
<M> NVM Express over Fabrics TCP host driver
<M> NVMe Target support
  [*]   NVMe Target Passthrough support
  <M>   NVMe loopback device support
  <M>   NVMe over Fabrics FC target driver
  < >     NVMe over Fabrics FC Transport Loopback Test driver (NEW)
  <M>   NVMe over Fabrics TCP target support

Vá agora para File Systems (Sistemas de Arquivos) e selecione suporte para os sistemas de arquivos que você usa. Não compile o sistema de arquivo que é usado como sistema de arquivo raiz como módulo, ou senão o sistema Gentoo não será capaz de montar a partição. Selecione também "Virtual memory" (Memória virtual) e "/proc file system" (sistema de arquivo /proc). Selecione uma ou mais das seguintes opções segundo as necessidades do sistema: (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS, and CONFIG_TMPFS):

KERNEL Selecionando os sistemas de arquivos necessários
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
   <*> MSDOS fs support
   <*> VFAT (Windows-95) fs support

  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

Se for usado PPPoE para conectar à Internet, ou um modem com discagem foi usado, então habilite as seguintes opções (CONFIG_PPP, CONFIG_PPP_ASYNC, e CONFIG_PPP_SYNC_TTY):

KERNEL Selecionando os drivers PPPoE necessários
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

As duas opções de compactação não vão atrapalhar mas definitivamente não são necessárias, assim como a opção de PPP sobre Ethernet (PPP over Ethernet), que pode apenas ser usada pelo ppp quando configurado para usar PPPoE em modo kernel.

Não se esqueça de incluir suporte no kernel para as placas de rede (ethernet ou sem fio).

A maioria dos sistemas tem múltiplos núcleos à disposição, então é importante ativar a opção "Symmetric multi-processing support" (suporte a multi-processamento simétrico) (CONFIG_SMP):

KERNEL Ativando suporte a SMP
Processor type and features  --->
  [*] Symmetric multi-processing support
Nota
Em sistemas com vários núcleos, cada núcleo conta como um processador.

Se forem usados dispositivos de entrada USB (como teclado ou mouse) ou outros dispositivos USB, não se esqueça de habilitá-los também (CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):

KERNEL Ativando suporte a dispositivos de entrada USB
Device Drivers --->
  HID support  --->
  -*- HID bus support
  <*>  Generic HID driver
  [*]  Battery level reporting for HID devices
     USB HID support --->
        <*> USB HID transport layer
  [*] USB support  --->
  <*>    xHCI HCD (USB 3.0) support
  <*>    EHCI HCD (USB 2.0) support
  <*>    OHCI HCD (USB 1.1) support

Optional: Signed kernel modules

To automatically sign the kernel modules enable CONFIG_MODULE_SIG_ALL:

KERNEL Sign kernel modules CONFIG_MODULE_SIG_ALL
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Automatically sign all modules    
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

Optionally change the hash algorithm if desired.

To enforce that all modules are signed with a valid signature, enable CONFIG_MODULE_SIG_FORCE as well:

KERNEL Enforce signed kernel modules CONFIG_MODULE_SIG_FORCE
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

To use a custom key, specify the location of this key in CONFIG_MODULE_SIG_KEY, if unspecified the kernel build system will generate a key. It is recommended to generate one manually instead. This can be done with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
KERNEL Specify signing key CONFIG_MODULE_SIG_KEY
-*- Cryptographic API  ---> 
  Certificates for signature checking  --->  
    (/path/to/kernel_key.pem) File name or PKCS#11 URI of module signing key

To also sign external kernel modules installed by other packages via linux-mod-r1.eclass, enable the modules-sign USE flag globally:

FILE /etc/portage/make.confEnable module signing
USE="modules-sign"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, when using custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate
MODULES_SIGN_HASH="sha512" # Defaults to sha512
Nota
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

Optional: Signing the kernel image (Secure Boot)

When signing the kernel image (for use on systems with Secure Boot enabled) it is recommended to set the following kernel config options:

KERNEL Lockdown for secureboot
General setup  --->
  Kexec and crash features  --->   
    [*] Enable kexec system call                                                                                          
    [*] Enable kexec file based system call                                                                               
    [*]   Verify kernel signature during kexec_file_load() syscall                                                        
    [*]     Require a valid signature in kexec_file_load() syscall                                                        
    [*]     Enable ""image"" signature verification support
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
Security options  ---> 
[*] Integrity subsystem   
  [*] Basic module for enforcing kernel lockdown                                                                       
  [*]   Enable lockdown LSM early in init                                                                       
        Kernel default lockdown mode (Integrity)  --->
</div>            

  <div lang="en" dir="ltr" class="mw-content-ltr">
[*]   Digital signature verification using multiple keyrings                                                            
  [*]     Enable asymmetric keys support                                                                                     
  -*-       Require all keys on the integrity keyrings be signed                                                              
  [*]       Provide keyring for platform/firmware trusted keys                                                                
  [*]       Provide a keyring to which Machine Owner Keys may be added                                                        
  [ ]         Enforce Machine Keyring CA Restrictions

Where ""image"" is a placeholder for the architecture specific image name. These options, from the top to the bottom: enforces that the kernel image in a kexec call must be signed (kexec allows replacing the kernel in-place), enforces that kernel modules are signed, enables lockdown integrity mode (prevents modifying the kernel at runtime), and enables various keychains.

On arches that do not natively support decompressing the kernel (e.g. arm64 and riscv), the kernel must be built with its own decompressor (zboot):

KERNEL zboot CONFIG_EFI_ZBOOT
Device Drivers --->                                                                                                                           
  Firmware Drivers --->                                                                                                                       
    EFI (Extensible Firmware Interface) Support --->                                                                                               
      [*] Enable the generic EFI decompressor

After compilation of the kernel, as explained in the next section, the kernel image must be signed. First install app-crypt/sbsigntools and then sign the kernel image:

root #emerge --ask app-crypt/sbsigntools
root #sbsign /usr/src/linux-x.y.z/path/to/kernel-image --cert /path/to/kernel_key.pem --key /path/to/kernel_key.pem --out /usr/src/linux-x.y.z/path/to/kernel-image
Nota
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second sperate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

Then proceed with the installation.

To automatically sign EFI executables installed by other packages, enable the secureboot USE flag globally:

FILE /etc/portage/make.confEnable Secure Boot
USE="modules-sign secureboot"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
Nota
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
Nota
When generating an Unified Kernel Image with systemd's ukify the kernel image will be signed automatically before inclusion in the unified kernel image and it is not necessary to sign it manually.


For x86 architectures, verify the 64-bit kernel option is unset/deactivated (CONFIG_64BIT=N), and then select the processor family as appropriate for the system's processor(s).

The processor family can be determined by reviewing output from the following two commands:

user $cat /proc/cpuinfo | grep -i vendor | uniq
user $cat /proc/cpuinfo | grep -i 'model name' | uniq
KERNEL Unset the 64-bit kernel and select processor family
[ ] 64-bit kernel
Processor type and features  --->
    Processor family (Core 2/newer Xeon)  --->
        ( ) 486
        ( ) 586/K5/5x86/6x86/6x86MX
        ( ) Pentium-Classic
        ( ) Pentium-MMX
        ( ) Pentium-Pro
        ( ) Pentium-II/Celeron(pre-Coppermine)
        ( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
        ( ) Pentium M
        ( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
        ( ) K6/K6-II/K6-III
        ( ) Athlon/Duron/K7
        ( ) Opteron/Athlon64/Hammer/K8
        ( ) Crusoe
        ( ) Efficeon
        ( ) Winchip-C6
        ( ) Winchip-2/Winchip-2A/Winchip-3
        ( ) AMD Elan
        ( ) GeodeGX1
        ( ) Geode GX/LX
        ( ) CyrixIII/VIA-C3
        ( ) VIA C3-2 (Nehemiah)
        ( ) VIA C7
        (*) Core 2/newer Xeon
        ( ) Intel Atom

Compiling and installing

With the configuration now done, it is time to compile and install the kernel. Exit the configuration and start the compilation process:

root #make && make modules_install
Nota
It is possible to enable parallel builds using make -jX with X being an integer number of parallel tasks that the build process is allowed to launch. This is similar to the instructions about /etc/portage/make.conf earlier, with the MAKEOPTS variable.

When the kernel has finished compiling, copy the kernel image to /boot/. This is handled by the make install command:

root #make install

This will copy the kernel image into /boot/ together with the System.map file and the kernel configuration file.


Kernel installation

Installkernel

Installkernel may be used to automate, the kernel installation, initramfs generation, unified kernel image generation and/or bootloader configuration among other things. sys-kernel/installkernel implements two paths of achieving this: the traditional installkernel originating from Debian and systemd's kernel-install. Which one to choose depends, among other things, on the system's bootloader. By default systemd's kernel-install is used on systemd profiles, while the traditional installkernel is the default for other profiles.

If unsure, follow the 'Traditional layout' subsection below.

systemd-boot

When using systemd-boot (formerly gummiboot) as the bootloader, systemd's kernel-install must be used. Therefore ensure the systemd and the systemd-boot USE flags are enabled on sys-kernel/installkernel, and then install the relevant package for systemd-boot.

On OpenRC systems:

FILE /etc/portage/package.use/systemd-boot
sys-apps/systemd-utils boot kernel-install
sys-kernel/installkernel systemd systemd-boot
root #emerge --ask sys-apps/systemd-utils

On systemd systems:

FILE /etc/portage/package.use/systemd
sys-apps/systemd boot
sys-kernel/installkernel systemd-boot
root #emerge --ask sys-apps/systemd

GRUB

Users of GRUB can use either systemd's kernel-install or the traditional Debian installkernel. The systemd USE flag switches between these implementations. To automatically run grub-mkconfig when installing the kernel, enable the grub USE flag.

FILE /etc/portage/package.use/installkernel
sys-kernel/installkernel grub
root #emerge --ask sys-kernel/installkernel

Traditional layout, other bootloaders (e.g. lilo, etc.)

The traditional /boot layout (for e.g. LILO, etc.) is used by default if the grub, systemd-boot and uki USE flags are not enabled. No further action is required.


Building an initramfs

In certain cases it is necessary to build an initramfs - an initial ram-based file system. The most common reason is when important file system locations (like /usr/ or /var/) are on separate partitions. With an initramfs, these partitions can be mounted using the tools available inside the initramfs. The default configuration of the Project:Distribution Kernel requires an initramfs.

Without an initramfs, there is a risk that the system will not boot properly as the tools that are responsible for mounting the file systems require information that resides on unmounted file systems. An initramfs will pull in the necessary files into an archive which is used right after the kernel boots, but before the control is handed over to the init tool. Scripts on the initramfs will then make sure that the partitions are properly mounted before the system continues booting.

Importante
If using genkernel, it should be used for both building the kernel and the initramfs. When using genkernel only for generating an initramfs, it is crucial to pass --kernel-config=/path/to/kernel.config to genkernel or the generated initramfs may not work with a manually built kernel. Note that manually built kernels go beyond the scope of support for the handbook. See the kernel configuration article for more information.

Installkernel can automatically generate an initramfs when installing the kernel if the dracut USE flag is enabled:

FILE /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut

Alternatively, dracut may be called manually to generate an initramfs. Install sys-kernel/dracut first, then have it generate an initramfs:

root #emerge --ask sys-kernel/dracut
root #dracut --kver=6.6.21-gentoo

The initramfs will be stored in /boot/. The resulting file can be found by simply listing the files starting with initramfs:

root #ls /boot/initramfs*

Optional: Building an Unified Kernel Image

An Unified Kernel Image (UKI) combines, among other things, the kernel, the initramfs and the kernel command line into a single executable. Since the kernel command line is embedded into the unified kernel image it should be specified before generating the unified kernel image (see below). Note that any kernel command line arguments supplied by the bootloader or firmware at boot are ignored when booting with secure boot enabled.

An unified kernel image requires a stub loader, currently the only one available is systemd-stub. To enable it:

For systemd systems:

FILE /etc/portage/package.use/systemd
sys-apps/systemd boot

For OpenRC systems:

FILE /etc/portage/package.use/systemd-utils
sys-apps/systemd-utils boot kernel-install

Installkernel can automatically generate an unified kernel image using either dracut or ukify, by enabling the respective flag. The uki USE flag should be enabled as well to install the generated unified kernel image to the $ESP/EFI/Linux directory on the EFI system partition (ESP).

For dracut:

FILE /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut uki
FILE /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"

For ukify:

FILE /etc/portage/package.use/installkernel
sys-apps/systemd ukify          # For systemd systems
sys-apps/systemd-utils ukify    # For OpenRC systems
sys-kernel/installkernel dracut ukify uki
FILE /etc/kernel/cmdline
some-kernel-command-line-arguments

Note that while dracut can generate both an initramfs and an unified kernel image, ukify can only generate the latter and therefore the initramfs must be generated separately with dracut.

Generic Unified Kernel Image

The prebuilt sys-kernel/gentoo-kernel-bin can optionally install a prebuilt generic unified kernel image containing a generic initramfs that is able to boot most systemd based systems. It can be installed by enabling the generic-uki USE flag, and configuring installkernel to not generate a custom initramfs or unified kernel image:

FILE /etc/portage/package.use/generic-uki
sys-kernel/gentoo-kernel-bin generic-uki
sys-kernel/installkernel -dracut -ukify uki

Secure Boot

The generic Unified Kernel Image optionally distributed by sys-kernel/gentoo-kernel-bin is already pre-signed. How to sign a locally generated unified kernel image depends on whether dracut or ukify is used. Note that the location of the key and certificate should be the same as the SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT as specified in /etc/portage/make.conf.

For dracut:

FILE /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"
uefi_secureboot_key="/path/to/kernel_key.pem"
uefi_secureboot_cert="/path/to/kernel_key.pem"

For ukify:

FILE /etc/kernel/uki.conf
[UKI]
SecureBootPrivateKey=/path/to/kernel_key.pem
SecureBootCertificate=/path/to/kernel_key.pem

Rebuilding external kernel modules

External kernel modules installed by other packages via linux-mod-r1.eclass must be rebuilt for each new kernel version. When the distribution kernels are used this may be automated by enabling the dist-kernel flag globally.

FILE /etc/portage/package.use/module-rebuild
*/* dist-kernel

External kernel modules may also be rebuilt manually with:

root #emerge --ask @module-rebuild

Módulos do kernel

Configurando os módulos

Nota
É opcional listar manualmente os módulos de hardware. udev irá normalmente carregar todos os módulos de hardware que forem detectados ou conectados na maioria dos casos. Entretanto, não causa problema que módulos carregados automaticamente sejam listados. As vezes, algum hardware mais exótico requer alguma ajuda para carregar seus drivers.

Liste os módulos que precisem ser carregados no arquivo /etc/modules-load.d/*.conf, um módulo por linha. Opções extra para os módulos, se necessárias, devem ser configuradas nos arquivos /etc/modprobe.d/*.conf.

Para visualizar todos os módulos disponíveis, execute o seguinte comando find. Não se esqueça de substituir "<kernel version>" pela versão do kernel recém compilada:

root #find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

Force loading particular kernel modules

Por exemplo, para carregar automaticamente o módulo 3c59x.ko (que é o driver para uma placa de rede específica da família 3Com), edite o arquivo /etc/modules-load.d/network.conf e entre com o nome do módulo nele. O nome real do arquivo não é significativo para o carregador.

root #mkdir -p /etc/modules-load.d
root #nano -w /etc/modules-load.d/network.conf

Note that the module's .ko file suffix is insignificant to the loading mechanism and left out of the configuration file:

FILE /etc/modules-load.d/network.confForçar o carregamento do módulo 3c59x
3c59x

Continue a instalação em Configurando o sistema.




Informação do sistema de arquivos

Nomes de sistemas de arquivos e UUIDs

Tanto o MBR (BIOS) quanto o GPT incluem suporte para nomes e UUIDs do tipo "sistema de arquivo". Esses atributos podem ser definidos em /etc/fstab como alternativa para o comando mount usar quanto tentar encontrar e montar dispositivos de blocos. Nomes de sistemas de arquivos e UUIDs são identificados pelos prefixos LABEL e UUID e podem ser vistos com o comando blkid.

root #blkid
Aviso
Se o sistema de arquivo em uma partição é eliminado, o nome do sistema de arquivos os valores UUID serão alterados ou removidos.

Por sua unicidade, leitores usando tabelas de partição do tipo MBR são recomendados usar UUIDs em vez de nomes para definir os volumes a serem montados em /etc/fstab.

Importante
UUIDs of the filesystem on a LVM volume and its LVM snapshots are identical, therefore using UUIDs to mount LVM volumes should be avoided.

Nomes de partição e UUIDs

Usuários que tomaram a rota GPT tem algumas opções mais 'robustas' disponíveis para definir as partições em /etc/fstab. Nomes de partições e UUIDs podem ser usados em dispositivos formatados com GPT para identificar de forma única as partições dos dispositivos de bloco, independentemente de qual sistema de arquivos foi escolhida para a partição em si. Nomes e UUIDs são identificados pelos prefixos PARTLABEL e PARTUUID respectivamete e podem ser facilmente visualizados no terminal executando o comando blkid:

Output for an amd64 EFI system using the Discoverable Partition Specification UUIDs may like the following:

root #blkid

Enquanto nem sempre seja verdade para nomes de partições, usar uma UUID para identificar uma partição em fstab provê uma garantia que o carregador de boot não irá se confundir quando procurar um dado volume, mesmo se o dispositivo de arquivo de bloco mudar no futuro. Usar os velhos padrões de arquivos de dispositivos de bloco (/dev/sd*N) para definir partições no fstab é arriscado para sistemas que são reiniciados frequentemente e tem dispositivos de blocos SATA adicionados e removidos regularmente.

A nomeação de dispositivos de arquivo de bloco depende de um número de fatores incluindo como e em qual ordem os discos estão conectados ao sistema. Eles podem também aparecer em ordem diferente dependendo de quais dispositivos são detectados pelo kernel durante os estágios iniciais de boot. Com isto em mente, a não ser que alguém tenha intenção de constantemente ajustar a ordem dos discos, usar os dispositivos de arquivos de bloco padrão é uma abordagem simples e direta.

Sobre o fstab

No Linux todas as partições usadas pelo sistema devem ser listadas em /etc/fstab. Esse arquivo contém os pontos de montagem das partições (onde elas se encontram na estrutura do sistema de arquivos), como elas devem ser montadas, quais opções especiais (automáticas ou não, se os usuários podem montá-las ou não, etc.)

Criando o arquivo fstab

O arquivo /etc/fstab usa uma sintaxe do tipo tabela. Cada linha consiste de seis campos separados por espaço (espaço, tabulação ou ambos). Cada campo tem seu próprio significado:

  1. O primeiro campo mostra o dispositivo especial de bloco ou sistema de arquivo remoto a ser montado. Diversos tipos de identificadores de dispositivos para nós de dispositivos especiais de bloco, incluindo o caminho para os arquivos de dispositivos, nomes e UUIDs de sistemas de arquivos, nomes de partição e UUIDs.
  2. O segundo campo mostra o ponto de montagem no qual a partição deve ser montada;
  3. O terceiro campo mostra o tipo de sistema de arquivo usado pela partição;
  4. O quarto campo mostra as opções de montagem usadas pelo mount quando ele montar a partição. Como cada tipo de sistema de arquivos tem suas opções de montagem próprias, os usuários são encorajados a ler a página de manual do mount (man mount) para uma listagem completa. Opções múltiplas são separadas por vírgulas;
  5. O quinto campo é usado pelo dump para determinar se ele deve checar a necessidade de backup. É normalmente deixado como 0 (zero);
  6. O sexto campo é usado pelo fsck para determinar a ordem na qual os sistemas de arquivos devem ser checados se o sistema de arquivo foi desativado adequadamente. O sistema de arquivo raiz deve conter 1 enquanto os demais devem conter 2 (ou 0 se a checagem não for necessária).
Importante
O arquivo /etc/fstab default fornecido pelo Gentoo não é um arquivo fstab válido mas apenas um modelo.
root #nano -w /etc/fstab

DOS/Legacy BIOS systems

Vamos dar uma olhada em como criar as opções para a partição /boot/. Isto é apenas um exemplo, e deve ser modificado de acordo com as decisões de particionamento feitas anteriormente na instalação. Em nosso exemplo de particionamento para x86, o /boot/ é normalmente a partição /dev/sda1, com um sistema de arquivos ext2. Ela precisa ser checada durante o boot, então poderíamos escrever:

FILE /etc/fstabUma linha /boot de exemplo para /etc/fstab
/dev/sda1   /boot     ext2    defaults        0 2

Alguns usuários podem não querer sua partição /boot/ montada automaticamente para aumentar a segurança do sistema. Essas pessoas devem substituir defaults por noauto. Isso significa que esses usuários precisarão montar manualmente essa partição toda vez que precisarem usá-la.

Adicione regras que correspondam ao esquema de particionamento decidido anteriormente e acrescente regras para dispositivos como drives de CD-ROM e, é claro, se forem usadas outras partições ou drives, para esses também.

Abaixo é mostrado um exemplo mais elaborado de um arquivo /etc/fstab:

FILE /etc/fstabUm exemplo de /etc/fstab completo
/dev/sda1    /boot        ext2    defaults,noatime     0 2
/dev/sda2    none         swap    sw                   0 0
/dev/sda3    /            ext4    noatime              0 1
/dev/cdrom   /mnt/cdrom   auto    noauto,user          0 0

/dev/cdrom /mnt/cdrom auto noauto,user 0 0 }}

UEFI systems

Below is an example of an /etc/fstab file for a system that will boot via UEFI firmware:

FILE /etc/fstabA full /etc/fstab example for an UEFI system
# Adjust for any formatting differences and/or additional partitions created from the "Preparing the disks" step
/dev/sda1   /efi        vfat    umask=0077     0 2
/dev/sda2   none             sw                   0 0
/dev/sda3   /            xfs    defaults,noatime              0 1
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

DPS UEFI PARTUUID

Below is an example of an /etc/fstab file for a disk formatted with a GPT disklabel and Discoverable Partition Specification (DPS) UUIDs set for UEFI firmware:

FILE /etc/fstabGPT disklabel DPS PARTUUID fstab example
# Adjust any formatting difference and additional partitions created from the "Preparing the disks" step.
# This example shows a GPT disklabel with Discoverable Partition Specification (DSP) UUID set:
PARTUUID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b   /efi        vfat    umask=0077                   0 2
PARTUUID=0657fd6d-a4ab-43c4-84e5-0933c84b4f4f   none            sw                           0 0
PARTUUID=44479540-f297-41b2-9af7-d131d5f0458a   /           xfs    defaults,noatime              0 1

Quando auto é usado no terceiro campo, ele faz com que o comando mount tente reconhecer o tipo de sistema de arquivo. Isso é recomendado para mídias removíveis uma vez que podem ser formatadas com algum sistema de arquivo qualquer. A opção user no quarto campo faz possível a montagem do CD para usuários não root.

To improve performance, most users would want to add the noatime mount option, which results in a faster system since access times are not registered (those are not needed generally anyway). This is also recommended for systems with solid state drives (SSDs). Users may wish to consider lazytime instead.

Dica
Due to degradation in performance, defining the discard mount option in /etc/fstab is not recommended. It is generally better to schedule block discards on a periodic basis using a job scheduler such as cron or a timer (systemd). See Periodic fstrim jobs for more information.

Certifique-se que o arquivo /etc/fstab está correto, salve-o e saia do editor para continuar.

Informação de rede

It is important to note the following sections are provided to help the reader quickly setup their system to partake in a local area network.

For systems running OpenRC, a more detailed reference for network setup is available in the advanced network configuration section, which is covered near the end of the handbook. Systems with more specific network needs may need to skip ahead, then return here to continue with the rest of the installation.

For more specific systemd network setup, please review see the networking portion of the systemd article.

Informação de host e domínio

Uma das escolhas que o usuário deve fazer é dar nome ao seu PC. Isso parece bem fácil, mas muitos usuários têm dificuldades em encontrar um nome apropriado para seu PC com Linux. Para acelerar as coisas, saiba que essa decisão não é definitiva - ela pode ser alterada mais tarde. Nos exemplos abaixo, é usado o nome de host "tux" dentro do domínio "homenetwork".

Set the hostname (OpenRC or systemd)

root #echo tux > /etc/hostname

systemd

To set the system hostname for a system currently running systemd, the hostnamectl utility may be used. During the installation process however, systemd-firstboot command must be used instead (see later on in handbook).

For setting the hostname to "tux", one would run:

root #hostnamectl hostname tux

View help by running hostnamectl --help or man 1 hostnamectl.

Network

There are many options available for configuring network interfaces. This section covers a only a few methods. Choose the one which seems best suited to the setup needed.

DHCP via dhcpcd (any init system)

Most LAN networks operate a DHCP server. If this is the case, then using the dhcpcd program to obtain an IP address is recommended.

To install:

root #emerge --ask net-misc/dhcpcd

To enable and then start the service on OpenRC systems:

root #rc-update add dhcpcd default
root #rc-service dhcpcd start

To enable the service on systemd systems:

root #systemctl enable dhcpcd

With these steps completed, next time the system boots, dhcpcd should obtain an IP address from the DHCP server. See the Dhcpcd article for more details.

netifrc (OpenRC)

Dica
This is one particular way of setting up the network using Netifrc on OpenRC. Other methods exist for simpler setups like Dhcpcd.

Configurando a rede

Durante a instalação do Gentoo Linux, a rede já foi configurada. Porém, a configuração foi para o CD de instalação e não para o ambiente instalado. Agora a configuração de rede será feita para o sistema Gentoo Linux instalado.

Nota
Informações mais detalhadas sobre configuração de rede, incluindo tópicos avançados como bonding, bridging, 802.1Q VLANs e redes sem fio são cobertas na seção de Configuração de Rede no Gentoo.

Toda a configuração de rede está reunida no arquivo /etc/conf.d/net. Ele usa uma sintaxe direta mas talvez não muito intuitiva. Mas não tema, tudo está explicado abaixo. Um exemplo completamente comentado que cobre muitas configurações diferentes está disponível em /usr/share/doc/netifrc-*/net.example.bz2.

Primeiro instale o pacote net-misc/netifrc:

root #emerge --ask --noreplace net-misc/netifrc

O DHCP é usado por default. Para o DHCP funcionar, é necessário instalar um cliente DHCP. Isso é descrito adiante em Ferramentas do Sistema Necessárias.

Se a conexão de rede precisa ser configurada por causa de opções específicas do DHCP ou porque o DHCP não é utilizado, então edite /etc/conf.d/net:

root #nano -w /etc/conf.d/net

Configure ambas as variáveis config_eth0 e routes_eth0 para entrar com a informação de endereço IP e de roteamente:

Nota
É assumido que a interface de rede é chamada eth0. Isso, porém, é muito dependente do sistema. É recomendado assumir que a interface é nomeada da mesma forma que quando o sistema foi inicializado pela mídia de instalação se a mídia de instalação for razoavelmente recente. Mais informações podem ser encontradas em Nomes de Interface de Rede.
FILE /etc/conf.d/netStatic IP definition
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

Para usar DHCP, defina config_eth0:

FILE /etc/conf.d/netDefinindo DHCP
config_eth0="dhcp"

Por favor veja os arquivos /usr/share/doc/netifrc-*/net.example.bz2 para uma lista de todas as opções disponíveis. Certifique-se de também ler a página de manual (man page) se opções específicas do DHCP precisarem ser configuradas.

Se o sistema tem várias interfaces de rede, então repita os passos acima para config_eth1, config_eth2, etc.

Agora salve a configuração e saia para continuar.

Iniciando automaticamente a rede durante o boot

Para que as interfaces de rede sejam ativadas durante o boot, elas precisam ser adicionadas no runlevel default.

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

Se o sistema tem várias interfaces de rede, então os arquivos net.* precisam ser criados assim como fizemos com o net.eth0.

Se após a inicialização do sistema descobrirmos que o nome que usamos para a interface de rede (que está atualmente documentada como eth0) está errado, então execute os seguintes passos para corrigir isso:

  1. Corrija o arquivo /etc/conf.d/net com o nome correto da interface de rede (tal como enp3s0 em vez de eth0).
  2. Crie um novo link simbólico (como /etc/init.d/net.enp3s0).
  3. Remova o link simbólico antigo (rm /etc/init.d/net.eth0).
  4. Adicione o novo ao runlevel default.
  5. Remova o antigo usando rc-update del net.eth0 default.

O arquivo hosts

Agora informe ao Linux sobre seu ambiente de rede. Isso é definido no arquivo /etc/hosts e é utilizado na resolução de nomes de hosts em endereços IP para os hosts que não são resolvidos pelo servidor de nomes.

root #nano -w /etc/hosts
FILE /etc/hostsPreenchendo as informações de rede
# This defines the current system and must be set
127.0.0.1     tux.homenetwork tux localhost
  
# Optional definition of extra systems on the network
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

Salve e saia do editor para continuar.

Opcional: Fazendo o PCMCIA funcionar

Usuários de PCMCIA devem agora instalar o pacote sys-apps/pcmciautils.

root #emerge --ask sys-apps/pcmciautils

Informações do sistema

Senha do root

Configure a senha do root usando o comando passwd.

root #passwd

A conta de root é uma toda poderosa, então escolha uma senha forte. Depois uma conta de usuário comum será criada para operações diárias.

Configuração de início e boot

OpenRC

Gentoo (ao menos quando usa OpenRC) usa /etc/rc.conf para configurar os serviços, início, desligamento do sistema. Abra /etc/rc.conf e aproveite todos os comentários no arquivo. Reveja as configurações e mude onde for necessário.

root #nano -w /etc/rc.conf

Em seguida, abra /etc/conf.d/keymaps para manipular a configuração de teclado. Edite-o para configurar e escolher o teclado correto.

root #nano -w /etc/conf.d/keymaps

Tenha um cuidado especial com a variável keymap. Se o mapa de teclado errado for selecionado, resultados estranhos aparecerão durante a digitação.

Finalmente, edite /etc/conf.d/hwclock para definir as opções de relógio. Edite-o de acordo com suas preferências.

root #nano -w /etc/conf.d/hwclock

Se o relógio de hardware não estiver usando UTC é necessário incluir clock="local" no arquivo. Senão o sistema pode apresentar comportamento errático do relógio.

systemd

First, it is recommended to run systemd-machine-id-setup and then systemd-firstboot which will prepare various components of the system are set correctly for the first boot into the new systemd environment. The passing the following options will include a prompt for the user to set a locale, timezone, hostname, root password, and root shell values. It will also assign a random machine ID to the installation:

root #systemd-machine-id-setup
root #systemd-firstboot --prompt

Next users should run systemctl to reset all installed unit files to the preset policy values:

root #systemctl preset-all --preset-mode=enable-only

It's possible to run the full preset changes but this may reset any services which were already configured during the process:

root #systemctl preset-all

These two steps will help ensure a smooth transition from the live environment to the installation's first boot.




Sistema de log

OpenRC

Algumas ferramentas estão ausentes do arquivo stage3 porque diversos outros pacotes fornecem a mesma funcionalidade. Agora depende do usuário escolher quais instalar.

A primeira ferramente sobre a qual precisamos nos decidir é a que provê serviço de log para o sistema. Unix e Linux tem uma história excelente de capacidade de serviço de log - se necessário, tudo o que acontece no sistema pode ser logado nos arquivos de log. Isso acontece através do serviço de log.

O Gentoo oferece vários utilitários de logs do sistema. Entre eles estão incluídos:

  • app-admin/sysklogd - Oferece o conjunto tradicional de serviços de log do sistema. É o sistema de log default e funciona bem sem precisar de configuração, o que faz deste pacote uma boa opção para iniciantes.
  • app-admin/syslog-ng - Um sistema de log avançado. Requer configurações adicionais para qualquer coisa além de gerar log para um arquivo. Usuários mais avançados podem escolher este pacote baseados no seu potencial de registro de logs; entretanto, configurações adicionais são necessárias para qualquer tipo de registro inteligente de log.
  • app-admin/metalog - Um sistema de log altamente configurável.

Outros também estão disponíveis através do Portage - o número de pacotes disponíveis aumenta diariamente.

Dica
Se for usado o sysklogd ou syslog-ng, é recomendado instalar e configurar o pacote logrotate em seguida uma vez que esses sistemas de log não oferece nenhum mecanismo de rotação dos arquivos de log.

Para instalar o sistema de log de sua escolha, faça emerge dele e o adicione ao runlevel default usando rc-update. O exemplo a seguir instala o pacote app-admin/sysklogd.

root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default

systemd

While a selection of logging mechanisms are presented for OpenRC-based systems, systemd includes a built-in logger called the systemd-journald service. The systemd-journald service is capable of handling most of the logging functionality outlined in the previous system logger section. That is to say, the majority of installations that will run systemd as the system and service manager can safely skip adding a additional syslog utilities.

See man journalctl for more details on using journalctl to query and review the systems logs.

For a number of reasons, such as the case of forwarding logs to a central host, it may be important to include redundant system logging mechanisms on a systemd-based system. This is a irregular occurrence for the handbook's typical audience and considered an advanced use case. It is therefore not covered by the handbook.

Opcional: Cron daemon

OpenRC

Em seguida o cron daemon. Embora ele seja opcional e não requerido em todo sistema, é prudente instalar um.

Um cron daemon executa comandos agendados. É muito útil se algum comando necessita ser executado regularmente (por exemplo, diária, semanal ou mensalmente).

All cron daemons support high levels of granularity for scheduled tasks, and generally include the ability to send an email or other form of notification if a scheduled task does not complete as expected.

O Gentoo oferece diversos crons daemons possíveis, incluindo o sys-process/bcron, o sys-process/dcron, o sys-process/fcron e o sys-process/cronie. Instalar um desses é similar a instalar o sistema de log. O exemplo abaixo usa o pacote sys-process/cronie:

  • sys-process/cronie - cronie is based on the original cron and has security and configuration enhancements like the ability to use PAM and SELinux.
  • sys-process/dcron - This lightweight cron daemon aims to be simple and secure, with just enough features to stay useful.
  • sys-process/fcron - A command scheduler with extended capabilities over cron and anacron.
  • sys-process/bcron - A younger cron system designed with secure operations in mind. To do this, the system is divided into several separate programs, each responsible for a separate task, with strictly controlled communications between parts.

cronie

The following example uses sys-process/cronie:

root #emerge --ask sys-process/cronie
root #rc-update add cronie default
root #rc-update add cronie default

Alternative: dcron

root #emerge --ask sys-process/dcron

Se o dcron ou o fcron for usado, um comando adicional de inicialização precisa ser executado:

root #crontab /etc/crontab

Alternative: fcron

root #emerge --ask sys-process/fcron

If fcron is the selected scheduled task handler, an additional emerge step is required:

root #emerge --config sys-process/fcron

Alternative: bcron

bcron is a younger cron agent with built-in privilege separation.

root #emerge --ask sys-process/bcron

systemd

Similar to system logging, systemd-based systems include support for scheduled tasks out-of-the-box in the form of timers. systemd timers can run at a system-level or a user-level and include the same functionality that a traditional cron daemon would provide. Unless redundant capabilities are necessary, installing an additional task scheduler such as a cron daemon is generally unnecessary and can be safely skipped.

Opcional: Indexação de arquivos

De modo a indexar o sistema de arquivos para obter a capacidade de localizar arquivos rapidamente, instale o pacote sys-apps/mlocate.

root #emerge --ask sys-apps/mlocate

Opcional: Acesso remoto

Dica
opensshd's default configuration does not allow root to login as a remote user. Please create a non-root user and configure it appropriately to allow access post-installation if required, or adjust /etc/ssh/sshd_config to allow root.

Para ser capaz de acessar o sistema remotamente após a instalação, adicione o script de inicialização sshd o runlevel default:

OpenRC

root #rc-update add sshd default

Se for necessário acesso ao console serial (o que é possível em caso de servidores remotos), descomente a seção de console serial em /etc/inittab:

Uncomment the serial console section in /etc/inittab:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

systemd

To enable the SSH server, run:

root #systemctl enable sshd

To enable serial console support, run:

root #systemctl enable getty@tty1.service

Optional: Shell completion

Bash

Bash is the default shell for Gentoo systems, and therefore installing completion extensions can aid in efficiency and convenience to managing the system. The app-shells/bash-completion package will install completions available for Gentoo specific commands, as well as many other common commands and utilities:

root #emerge --ask app-shells/bash-completion

Post installation, bash completion for specific commands can managed through eselect. See the Shell completion integrations section of the bash article for more details.

Time synchronization

It is important to use some method of synchronizing the system clock. This is usually done via the NTP protocol and software. Other implementations using the NTP protocol exist, like Chrony.

To set up Chrony, for example:

root #emerge --ask net-misc/chrony

OpenRC

On OpenRC, run:

root #rc-update add chronyd default

systemd

On systemd, run:

root #systemctl enable chronyd.service

Alternatively, systemd users may wish to use the simpler systemd-timesyncd SNTP client which is installed by default.

root #systemctl enable systemd-timesyncd.service

Ferramentas de sistemas de arquivos

Dependendo dos sistemas de arquivos usados, é necessário instalar os utilitários de sistemas de arquivos (para checagem da integridade do sistema de arquivos, criar sistemas de arquivos adicionais etc). Note que as ferramentas para gerenciar os sistemas de arquivos ext2, ext3 ou ext4 (sys-fs/e2fsprogs) já foram instaladas como parte conjunto @system.

A tabela seguinte lista as ferramentas para instalar se um dado sistema de arquivo for usado:

Sistema de arquivo Pacote
Ext2, 3 e 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs

It's recommended that sys-block/io-scheduler-udev-rules is installed for the correct scheduler behavior with e.g. nvme devices:

root #emerge --ask sys-block/io-scheduler-udev-rules
Dica
Para mais informações sobre sistemas de arquivos no Gentoo, veja o artigo Sistemas de Arquivos.

Utilitários de rede

Se não houver necessidade de nenhum utilitário adicional de rede, continue imediatamente na seção Configurando um gerenciador de boot.

Instalando um cliente DHCP

Importante
Embora opcional, a maioria dos usuários irá precisar de um cliente DHCP para usar o servidor DHCP em suas redes. Aproveite esta oportunidade para instalar um cliente DHCP. Se este passo for esquecido, o sistema pode não ser capaz de usar a rede tornando impossível baixar o cliente DHCP mais tarde.

De modo ao sistema automaticamente obter um endereço IP para uma ou mais interfaces usando os scripts netifrc, é necessário instalar um cliente DHCP. Recomendamos o uso do net-misc/dhcpcd embora muitos outros clientes DHCP estejam disponíveis no repositório do Gentoo:

root #emerge --ask net-misc/dhcpcd

Opcional: Instalando um cliente PPPoE

Se for usado PPP para conexão à Internet, instale o pacote net-dialup/ppp:

root #emerge --ask net-dialup/ppp

Opcional: Instalar utilitários para a rede sem fio

Se o sistema for se conectar em redes sem fio, instale o pacote net-wireless/iw para redes abertas ou com WEP e/ou o pacote net-wireless/wpa_supplicant para redes WPA ou WPA2. O pacote iw também é uma ferramenta básica de diagnóstico para pesquisa de redes sem fio.

root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant





Mesmo a instalação sendo para uma CPU de 32 bits, quase todas as placas-mãe x86 (iniciando por volta de 2006-2007 até o presente) que foram produzidas com suporte a UEFI tem "firmware UEFI de 64 bits". Alguns usuário podem notar o "64" nos nomes das opções e arquivos de configuração nas seções abaixo. Isso é esperado em praticamente todos os casos.

Existem algumas poucas pequenas exceções para essa regra do firmware UEFI, a saber alguns dos primeiros Apple Macs e alguns Dell tablet PCs com Intel Atom tinham suporte para firmware UEFI de 32 bits. A grande maioria dos leitores nunca irá encontrar firmware UEFI de 32 bits em uso. Por essa razão, firmware UEFI de 32 bits não é explicado no manual da arquitetura x86.


Selecionando um gerenciador de boot

Com o kernel do Linux configurado, as ferramentas do sistema instaladas e os arquivos de configuração editados, é hora de instalar a última parte importante de uma instalação Linux: o gerenciador de boot.

O gerenciador de boot é responsável por carregar o kernel do Linux no momento do boot - sem ele, o sistema não saberia como proceder quando fosse apertado o botão de ligar.

Para o x86, documentamos como configurar o GRUB2 ou LILO para sistemas baseados em BIOS e o GRUB2 ou efibootmgr para sistemas UEFI.

Nesta seção do Manual foi feita uma separação entre "fazer o emerge" do pacote do carregador de boot e "instalar" um carregador de boot em um disco do sistema. Aqui o termo "emerge" será usado para solicitar ao Portage tornar o pacote de software disponível ao sistema. O termo "instalar" irá significar fazer a cópia dos arquivos do carregador de boot ou fisicamente modificar as seções apropriadas do drive de disco do sistema de maneira a tornar o carregador de boot "ativo e pronto para operação" no na próxima reinicialização.

Default: GRUB2

Por padrão, a maioria dos sistemas Gentoo agora tende a usar GRUB2 (encontrado no pacote sys-boot/grub), que é o sucessor direto do GRUB Legacy. Com nenhuma configuração adicional, o GRUB2 felizmente suporta sistemas mais antigos com BIOS ("pc"). Com um pouco de configuração, necessário antes da compilação, o GRUB2 pode suportar mais de meia dúzia de plataformas adicionais. Para mais informação, consulte a Seção de prerequisitos do artigo GRUB2.

Emerge

Quando usando um sistema de BIOS antiga que suporta apenas tabelas de partições MBR, nenhuma configuração adicional é necessária para emerge o GRUB:

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

Uma nota para os usuários UEFI: executar o comando acima irá mostrar os valores GRUB_PLATFORMS habilitados antes de se fazer o emerge. Quando usarem sistemas UEFI, os usuários irão precisar ter certeza que GRUB_PLATFORMS="efi-64" está habilitado (como é o caso por padrão). Se isso não for necessário para a configuração, GRUB_PLATFORMS="efi-64" precisa ser adicionado ao arquivo /etc/portage/make.conf antes de fazer o emerge do GRUB2 para que este pacote seja compilado com a funcionalidade EFI:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2

Se por alguma razão foi feito emerge do GRUB2 sem habilitar GRUB_PLATFORMS="efi-64", a linha (como mostrada acima) pode ser adicionada ao make.conf e então as dependências do conjunto de pacotes world recalculadas passando-se as opções --update --newuse ao emerge:

root #emerge --ask --update --newuse --verbose sys-boot/grub:2

O software GRUB2 está agora adicionado ao sistema, mas não está instalado ainda.

Instale

Em seguida, instale os arquivos do GRUB2 necessários no diretório /boot/grub/ com o comando grub-install. Assumindo que o primeiro disco (aquele do qual o sistema dá boot) é /dev/sda, um dos seguintes comandos fará isso:

  • Se usar BIOS:
root #grub-install /dev/sda

For DOS/Legacy BIOS systems:

root #grub-install /dev/sda
  • Se usar UEFI:
Importante
Certifique-se que a partição do sistema EFI tenha sido montada antes de rodar o grub-install. É possível que o grub-install instale o arquivo do GRUB EFI (grubx64.efi) no diretório errado sem prover nenhuma indicação de que o diretório errado foi usado.

For UEFI systems:

root #grub-install --target=x86_64-efi --efi-directory=/boot

Upon successful installation, the output should match the output of the previous command. If the output does not match exactly, then proceed to Debugging GRUB, otherwise jump to the Configure step.

Optional: Secure Boot

The sys-boot/grub package does not recognize the secureboot USE flag, this is because the GRUB EFI executable is not installed by the package but is instead built and installed by the grub-install command. GRUB must therefore be manually signed after installation to the boot partition. Additionally, GRUB is a modular bootloader but loading modules is prohibited when Secure Boot is enabled. Therefore all necessary modules must be compiled into the GRUB EFI executable, below an example is shown including some basic modules, this may have to be adjusted for more advanced configurations:

root #emerge --noreplace sbsigntools
root #export GRUB_MODULES="all_video boot btrfs cat chain configfile echo efifwsetup efinet ext2 fat font gettext gfxmenu gfxterm gfxterm_background gzio halt help hfsplus iso9660 jpeg keystatus loadenv loopback linux ls lsefi lsefimmap lsefisystab lssal memdisk minicmd normal ntfs part_apple part_msdos part_gpt password_pbkdf2 png probe reboot regexp search search_fs_uuid search_fs_file search_label sleep smbios squash4 test true video xfs zfs zfscrypt zfsinfo"
root #grub-install --target=x86_64-efi --efi-directory=/efi --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
root #sbsign /efi/EFI/GRUB/grubx64.efi --key /path/to/kernel_key.pem --cert /path/to/kernel_key.pem --out /efi/EFI/GRUB/grubx64.efi

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. Below is shown how to setup shim instead:

root #emerge sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /efi/EFI/GRUB/shimx64.efi
root #cp /usr/share/shim/mmx64.efi /efi/EFI/GRUB/mmx64.efi

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Nota
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\GRUB\shimx64.efi' --label 'shim' --unicode
Debugging GRUB

When debugging GRUB, there are a couple of quick fixes that may result in a bootable installation without having to reboot to a new live image environment.

In the event that "EFI variables are not supported on this system" is displayed somewhere in the output, it is likely the live image was not booted in EFI mode and is presently in Legacy BIOS boot mode. The solution is to try the removable GRUB step mentioned below. This will overwrite the executable EFI file located at /EFI/BOOT/BOOTX64.EFI. Upon rebooting in EFI mode, the motherboard firmware may execute this default boot entry and execute GRUB.

Importante
Se o comando grub-install returnar erro como Could not prepare Boot variable: Read-only file system, pode ser necessário remontar o ponto de montagem especial efivars como de leitura e escrita de modo que o comando tenha sucesso:
root #mount -o remount,rw /sys/firmware/efi/efivars
root #mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars

This is caused by certain non-official Gentoo environments not mounting the special EFI filesystem by default. If the previous command does not run, then reboot using an official Gentoo live image environment in EFI mode.

Alguns fabricantes de placas-mãe parecem suportar apenas o diretório /efi/boot/ como local para o arquivo .EFI na partição de Sistema EFI (ESP). O instalador do GRUB pode executar essa operação automaticamente através da opção --removable. Verifique se a partição ESP está montada antes de executar os comandos a seguir. Presumindo que a ESP está montada em /boot/efi (como sugerido anteriormente), execute:

root #grub-install --target=x86_64-efi --efi-directory=/boot --removable

Isso cria o diretório default definido pela especificação UEFI e então copia o arquivo grubx64.efi para a localização EFI 'default' definida por essa especificação.

Configure

Em seguida, gere a configuração do GRUB2 baseada na configuração do usuário especificada no arquivo /etc/default/grub e nos scripts /etc/grub.d. Na maioria dos casos, nenhuma configuração é necessária pois o GRUB2 irá detectar automaticamente qual kernel dar boot (o mais recente disponível em /boot/) e qual é o sistema de arquivos raiz. É possível também acrescentar parâmetros para o kernel em /etc/default/grub usando a variável GRUB_CMDLINE_LINUX.

Para gerar a configuração final do GRUB2, execute o comando grub-mkconfig:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-6.6.21-gentoo
Found initrd image: /boot/initramfs-genkernel-x86-6.6.21-gentoo
done

A saída do comando deve mostrar que pelo menos uma imagem do Linux foi encontrada, já que são necessárias para inicializar o sistema. Se foi criado um initramfs ou o genkernel foi usado para criar o kernel, a imagem correta do initrd deve ser detectada também. Se não for o caso, vá para o diretório /boot/ e cheque seu conteúdo usando ls. Se os arquivos estiverem realmente ausentes, retorne às instruções de configuração e instalação do kernel.

Dica
O utilitário os-prober pode ser usado em conjunto com o GRUB2 para detectar outros sistemas operacionais no drives conectados. Windows 7, 8.1, 10 e outras distribuições Linux são detectáveis. Quem desejar sistemas dual boot devem fazer emerge do pacote sys-boot/os-prober e então executar novamente o comando grub-mkconfig (como visto acima). Se problemas de detecção forem encontrados tenha certeza de ler o artigo GRUB2 inteiramente antes de procurar suporte da comunidade Gentoo.

Alternativa 1: LILO

Emerge

LILO, o LInuxLOader, é o mais testado e verdadeiro "cavalo puxador de arado" dos gerenciadores de boot. Entretanto, lhe faltam alguns recursos comparado ao GRUB. O LILO ainda é usado porque, em alguns sistemas, o GRUB não funciona e o LILO sim. É claro, ele também é usado porque algumas pessoas conhecem o LILO e querem continuar com ele. De qualquer forma, o Gentoo suporta ambos.

Instalar o LILO é muito fácil; apenas use o emerge.

root #emerge --ask sys-boot/lilo

Configure

Para configurar o LILO, primeiro crie o arquivo /etc/lilo.conf:

root #nano -w /etc/lilo.conf

No arquivo de configuração são usadas seções para fazer referência ao kernel inicializável. Certifique-se que os arquivos do kernel (com a versão do kernel) e os arquivos initramfs são conhecidos pois eles serão referenciados no arquivo de configuração.

Nota
Se o sistema de arquivo raiz for JFS, adicione uma linha append="ro" depois de cada item de boot uma vez que o JFS precisa refazer seu log antes de permitir a montagem com leitura e escrita.
FILE /etc/lilo.confExemplo de configuração do LILO
'"`UNIQ--pre-00000135-QINU`"'
Nota
Se for usado um esquema de particionamento diferente e/ou imagem de kernel, ajuste de acordo.

Se um initramfs é necessário, mude a configuração fazendo referência a esse initramfs e dizendo ao initramfs onde o dispositivo real da partição root se encontra:

FILE /etc/lilo.confAdicionando informação do initramfs à entrada de boot
'"`UNIQ--pre-00000138-QINU`"'

Se opções adicionais precisarem ser passadas ao kernel, use uma declaração append. Por exemplo, para adicionar uma declaração video para habilitar o framebuffer:

FILE /etc/lilo.confAdicionando o parâmetro video às opções de boot
'"`UNIQ--pre-0000013B-QINU`"'

Usuários que usaram o genkernel devem saber que seus kernels usam as mesmas opções de boot que o CD de instalação. Por exemplo, se for necessário suporte a dispositivos SCSI, adicione doscsi como uma opção do kernel.

Agora salve o arquivo e saia.

Instale

Para terminar, execute o /sbin/lilo de modo que o LILO possa aplicar as configurações em /etc/lilo.conf ao sistema (isto é, instalar a si mesmo no disco). Tenha em mente que o /sbin/lilo deve ser executado cada vez que um novo kernel é instalado ou forem feitas mudanças no arquivo lilo.conf de modo a fazer o sistema dar boot se o nome de arquivo do kernel foi alterado.

root #/sbin/lilo

Alternativa 2: Usando o efibootmgr

Em sistemas baseados em UEFI, o firmware UEFI no sistema (ou seja, o gerenciador de boot primário) pode ser instruído diretamente para procurar entradas de boot UEFI. Tais sistemas não precisam de gerenciadores de boot adicionais (também conhecidos como secundários) tais como o GRUB2 para ajudar a inicializar o sistema. Dito isso, a razão para existirem gerenciadores de boot baseados em EFI tais como o GRUB2 é "estender" as funcionalidades dos sistemas UEFI durante o processo de boot. Usar o efibootmgr é na verdade para aqueles que desejam usar uma abordagem minimalista (e mais rígida) para dar boot no sistema; usar o GRUB2 (ver acima) é mais fácil para a maioria dos usuários porque oferece uma forma mais flexível de dar boot em sistemas UEFI.

System administrators who desire to take a minimalist, although more rigid, approach to booting the system can avoid secondary bootloaders and boot the Linux kernel as an EFI stub.

Lembre-se que o pacote sys-boot/efibootmgr não é um gerenciador de boot, mas uma ferramenta para interagir com o firmware UEFI e atualizar suas configurações, assim o kernel Linux que foi previamente instalado pode ser inicializado com opções adicionais (se necessário), ou para permitir múltiplas entradas de boot. Essa interação é feita através das variáveis EFI (por isso a necessidade do suporte do kernel às variáveis EFI).

Certifique-se de ler completamente o artigo EFI stub kernel antes de continuar. O kernel deve ter habilitadas opções específicas para ser bootável pelo firmware UEFI do sistema. Pode ser necessário recompilar o kernel. É também uma boa ideia dar uma olhada no artigo sobre o efibootmgr.

It is also a good idea to take a look at the efibootmgr article for additional information.

Nota
Reiterando, o efibootmgr não é requerido para inicializar um sistema UEFI. O kernel do Linux pode (e é) inicializado imediatamente, e opções de linha de comando do kernel adicionais podem ser embutidas pelo kernel do Linux em si (existe uma configuração do kernel que permite ao usuário especificar os parâmetros de boot). Mesmo um initramfs pode ser feito parte do próprio kernel.

Aqueles que decidiram por seguir este caminho necessitam instalar o software:

root #emerge --ask sys-boot/efibootmgr

Depois, crie o diretório /boot/efi/boot/ e então copie o kernel nesse local, chamando-o bootx64.efi:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi
Nota
O uso da \ como separador de diretórios é obrigatório quando usamos as definições UEFI.

Depois, diga ao firmware UEFI que uma entrada de boot chamada "Gentoo" deve ser criada, que contém o pseudo kernel EFI recém instalado:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"

Se um sistema de arquivo inicial em RAM (initramfs) deve ser usado, adicione a opção de boot apropriada para ele:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-x86-6.6.21-gentoo'

Note that the above command presumes an initramfs file was copied into the ESP inside the same directory as the bootx64.efi file.

Com essas alterações feitas, quando o sistema reiniciar, uma entrada de boot chamada "Gentoo" estará disponível.

Unified Kernel Image

If installkernel was configured to build and install unified kernel images. The unified kernel image should already be installed to the EFI/Linux directory on the EFI system partition, if this is not the case ensure the directory exists and then run the kernel installation again as described earlier in the handbook.

To add a direct boot entry for the installed unified kernel image:

root #efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader /efi/EFI/Linux/gentoo-x.y.z.efi

Alternativa 3: Syslinux

O syslinux é mais uma alternativa de gerenciador de boot para a arquitetura x86. Ele suporta MBR e, a partir da versão 6.00, suporta também boot EFI. Boot de rede (PXE) e outras opções menos conhecidas são também suportadas. Apenas do syslinux ser um gerenciador de boot popular para muitos usuários, ele não é suportado por este manual. Leitores podem encontrar informações para fazer emerge e instalar este gerenciador de boot no artigo Syslinux.

Alternative 4: systemd-boot

Another option is systemd-boot, which works on both OpenRC and systemd machines. It is a thin chainloader and works well with secure boot.

To install systemd-boot:

root #bootctl install
Importante
Make sure the EFI system partition has been mounted before running bootctl install.

When using this bootloader, before rebooting, verify that a new bootable entry exists using:

root #bootctl list

If no new entry exists, ensure the sys-kernel/installkernel package has been installed with the systemd-boot USE flag enabled, and re-run the kernel installation.

For the distribution kernels:

root #emerge --ask --config sys-kernel/gentoo-kernel

For a manually configured and compiled kernel:

root #make install
Importante
When installing kernels for systemd-boot, no root= kernel command line argument is added by default. On systemd systems that are using an initramfs users may rely instead on systemd-gpt-auto-generator to automatically find the root partition at boot. Otherwise users should manually specify the location of the root partition by setting root= in /etc/kernel/cmdline as well as any other kernel command line arguments that should be used. And then reinstalling the kernel as described above.

Optional: Secure Boot

When the secureboot USE flag is enabled, the systemd-boot EFI executable will be signed automatically. bootctl install will automatically install the signed version.

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. A postinst hook to automatically update systemd-boot and set it up with shim instead is provided on the systemd-boot wiki page. However the first time this should be done manually by following the steps below:

root #emerge --ask sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /efi/EFI/BOOT/BOOTX64.EFI
root #cp /usr/share/shim/mmx64.efi /efi/EFI/BOOT/mmx64.efi
root #cp /efi/EFI/systemd/systemd-bootx64.efi /efi/EFI/BOOT/grubx64.efi
Nota
Shim is hardcoded to load grubx64.efi. As such the systemd-boot bootloader must be named as if it were GRUB.

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Nota
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\BOOT\BOOTX64.EFI' --label 'shim' --unicode




Reiniciando o sistema

Saia do ambiente chroot e desmonte todas as partições montadas. Então digite o comando mágico que dá início ao verdadeiro teste final: reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount /mnt/gentoo{/boot,/sys,/proc,}
cdimage ~#reboot

Claro, não esqueça de remover o CD de boot ou o sistema irá reinicializar pelo CD em vez do novo sistema Gentoo.

Uma vez reiniciado o sistema no ambiente recém-instalado finalize com Finalizando a instalação do Gentoo.




Administração de usuários

Adicionando um usuário para uso do dia-a-dia

Trabalhar como usuário root em um sistema Unix/Linux é perigoso e deve ser evitado o máximo possível. Assim, é muito recomendado adicionar um usuário para uso no dia-a-dia.

Os grupos que o usuário é membro definem quais atividades o usuário pode fazer. A tabela seguinte lista um número de grupos importantes:

Grupo Descrição
audio Ser capaz de acessar dispositivos de audio.
cdrom Ser capaz de acessar diretamente dispositivos óticos.
floppy Ser capaz de acessar drives de disquetes.
games Ser capaz de jogar jogos.
portage Ser capaz de acessar os recursos restritos do Portage.
usb Ser capaz de acessar dispositivos USB.
video Ser capaz de acessar dispositivos de captura de video ou usar aceleração de hardware.
wheel Ser capaz de usar su.

Por exemplo, para criar um usuário chamado larry que é membro dos grupos wheel, users, e audio, faça login como root (apenas o root pode criar usuários) e execute useradd:

Login:root
Password: (Enter the root password)

When setting passwords for standard user accounts, it is good security practice to avoid using the same or a similar password as set for the root user.

Handbook authors recommended to use a password at least 16 characters in length, with a value fully unique from every other user on the system.

root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (Enter the password for larry)
Re-enter password: (Re-enter the password to verify)

Se um usuário precisar realizar alguma tarefa como root, ele pode usar su - para ter temporariamente privilégios de root. Outra forma é usar o pacote sudo que é, se configurado corretamente, muito seguro.

Limpeza do disco

Removendo os arquivos tar

Com a instalação do sistema Gentoo terminada e o sistema reiniciado, se tudo deu certo, podemos agora remover do disco os arquivos tar stage3 baixados. Lembre-se que eles foram baixados no diretório /.

The files are located in the / directory and can be removed with the following command:

root #rm /stage3-*.tar.*

Aonde ir a partir daqui

Para onde ir a partir daqui? Há muitos caminhos a explorar... O Gentoo provê a seus usuários muitas possibilidades e também muitos recursos documentados (e outros nem tanto) a explorar aqui no wiki e outros subdomínios relacionados ao Gentoo (veja a seção Gentoo online abaixo).

Documentação

It is important to note that, due to the number of choices available in Gentoo, the documentation provided by the handbook is limited in scope - it mainly focuses on the basics of getting a Gentoo system up and running and basic system management activities. The handbook intentionally excludes instructions on graphical environments, details on hardening, and other important administrative tasks. That being stated, there are more sections of the handbook to assist readers with more basic functions.

Leitores devem com certeza dar uma olhada na próxima parte do Manual do Gentoo entitulada Trabalhando com o Gentoo que explica como manter seu sistema atualizado, como instalar pacotes de software adicionais, detalhes sobre as USE flags, o sistema de inicialização OpenRC etc, e vários outros tópicos informativos relacionados ao gerenciamento de um sistema Gentoo após a instalação.

Além do manual, o leitor também é encorajado a explorar outros cantos do Gentoo wiki para encontrar documentação adicional provida pela comunidade. A equipe do wiki do Gentoo oferece também uma Visão geral da documentação que lista uma seleção de artigos do wiki por categoria. Por exemplo, ela faz referência ao Guia de localização para fazer um sistema sentir-se mais em casa (particularmente útil para usuários que falam Inglês como segunda língua).

The majority of users with desktop use cases will setup graphical environments in which to work natively. There are many community maintained 'meta' articles for supported desktop environments (DEs) and window managers (WMs). Readers should be aware that each DE will require slightly different setup steps, which will lengthen add complexity to bootstrapping.

Many other Meta articles exist to provide our readers with high level overviews of available software within Gentoo.

Gentoo online

Importante
Os leitores devem notar que todos os sites online do Gentoo são governados pelo código de conduta do Gentoo. Ser ativo na comunidade Gentoo é um privilégio, não um direito, e os usuários devem estar cientes que o código de conduta existe por uma razão.

Com a exceção da rede IRC (Internet Relay Chat) hospedada pelo Freenode a as listas de discussão, a maioria dos sites web requerem uma conta para cada site de modo a fazer perguntas, abrir uma discussão ou reportar um bug.

Fóruns e IRC

Todos usuários são bem-vindos em nossos Fóruns do Gentoo ou em um dos nossos canais IRC. É fácil pesquisar nos fóruns se problemas encontrados em uma nova instalação do Gentoo foram encontrados anteriormente e resolvidos. É muito grande a probabilidade de outros usuários iniciantes no Gentoo terem os mesmos problemas. É recomendado pesquisar nos fóruns e no wiki antes de pedir ajuda nos canais de suporte do Gentoo.

Listas de discussão

Diversas listas de discussão estão disponíveis aos membros da comunidade que preferem solicitar ajuda ou informações por email em vez de criar uma conta de usuário nos fóruns ou IRC. O usuário deve seguir as instruções de movo a se inscrever em uma lista específica.

Bugs

É possível que depois de algum tempo pesquisando no wiki, fóruns e solicitando suporte por IRC e listas de discussão, não se encontre a solução para algum problema. Normalmente isso é um sinal para abrir um bug no site do Bugzilla.

Guia de desenvolvimento

Usuários que desejarem aprender mais sobre como desenvolver o Gentoo podem ver o Guia de desenvolvimento. Esse guia provê instruções sobre escrever ebuilds, trabalhar com eclasses e fornece definições para diversos conceitos gerais por trás do desenvolvimento do Gentoo.

Considerações finais

O Gentoo é uma distribuição robusta, flexível e excelentemente mantida. A comunidade de desenvolvedores fica feliz em receber sugestões sobre como fazer do Gentoo uma distribuição ainda melhor.

Como lembrete, qualquer sugestão sobre este manual deve seguir as diretrizes detalhadas na seção Como posso ajudar a melhorar o Manual? no início do manual.

Estamos ansiosos para saber como nossos usuários utilizam o Gentoo!



Warning: Display title "Gentoo Linux x86 Handbook: Installing Gentoo" overrides earlier display title "Manual:X86/Completo/Instalação".