29 de jun. de 2022

Instalação do Gentoo em HD Externo para dual boot com Windows

Este artigo é um resumo para consulta, que remove grande parte da informação do manual para atender a um caso específico: instalação do Gentoo em HD externo, para dualboot com Windows, usando sistema de arquivos ext4, GRUB, GPT/UFI. Há risco de que fique desatualizado em alguns meses, caso surja alguma alteração no Gentoo.

Manual de instalação: https://wiki.gentoo.org/wiki/Handbook:AMD64

Para começar, baixe a ISO mínima de instalação do Gentoo ou use outra distro como SystemRescue.
A vantagem do SystemRescue é que você terá um ambiente gráfico, navegador e várias ferramentas.

Grave a ISO em um dispositivo USB e inicie por ele.

FORMATAÇÃO

Como root, observe as partições disponíveis com:

# fdisk -l

Identifique aquela referente ao HD externo. Cuidado para não confundir com a partição do Windows.

Para o objetivo desse artigo suporemos que o dispositivo do HD externo seja "/dev/sdb".

Formate-o com os comandos:

# gdisk /dev/sdb

Crie a tabela de partição GPT:

Command: o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Crie a partição 1 (UEFI ESP):

Command: n
Partition Number: 1
First sector: ↵
Last sector: +512M
Hex Code: ef00

Crie a partição 2 (raiz):

Command: n
Partition Number: 2
First sector: ↵
Last sector: ↵
Hex Code: ↵

Escreva a tabela de partição no disco:

Command: w
Do you want to proceed? (Y/N): Y

Obs.: não criaremos partição de swap, pois ela poderá ser criada em arquivo posteriormente.

Formate as partições:

# mkfs.ext4 /dev/sdb2
# mkfs.vfat -F 32 /dev/sdb1

Monte as partições:

# mkdir -p /mnt/gentoo
# mount /dev/sdb2 /mnt/gentoo
# mkdir -p /mnt/gentoo/boot/efi
# mount /dev/sdb1 /mnt/gentoo/boot/efi

STAGE 3

Para baixar e extrair o stage3 prossiga com:

# cd /mnt/gentoo

Acesse: https://www.gentoo.org/downloads/

Baixe o stage3 com systemd para desktop.
Exemplo:

# wget -c [link do stage3]

Extraia com as permissões corretas:

# tar --xattrs-include='*.*' --numeric-owner -xpf stage3*

CHROOT

Agora vamos ao chroot:

# cd /mnt/gentoo
# mount --types proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev
# mount --bind /run /mnt/gentoo/run
# mount --make-slave /mnt/gentoo/run
# cp /etc/resolv.conf etc && chroot . /bin/bash
# source /etc/profile

Em uma linha:

# cd /mnt/gentoo; mount --types proc /proc /mnt/gentoo/proc; mount --rbind /sys /mnt/gentoo/sys; mount --make-rslave /mnt/gentoo/sys; mount --rbind /dev /mnt/gentoo/dev; mount --make-rslave /mnt/gentoo/dev; mount --bind /run /mnt/gentoo/run; mount --make-slave /mnt/gentoo/run; cp /etc/resolv.conf etc && chroot . /bin/bash; source /etc/profile

SINCRONIA E CRIAÇÃO DE USUÁRIO

Sincronize com o repositório Gentoo:

# emerge-webrsync

Crie a senha do root e um novo usuário.

A linha abaixo é opcional e serve para que o Gentoo aceite senhas fracas.

# sed -i s/everyone/none/ /etc/security/passwdqc.conf

Senha de root:

# passwd

Criação do seu usuário. Exemplo com usuário "xerxes":

# useradd -g users -G wheel,portage,audio,video,usb,cdrom -m xerxes
# passwd xerxes

CONFIGURAÇÃO DO FSTAB

Verifique o UUID do HD externo.

# blkid

E copie.

Edite o fstab:

# nano /etc/fstab

Adicione a linha referente ao HD Externo com base no UUID. Exemplo:

UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx / ext4 noatime 0 1

Opcionalmente, se tiver muita RAM sobrando, pode colocar uma linha para montar o /tmp na RAM. Pode ser útil para compilar pacotes na RAM. No exemplo a seguir, coloquei 20GB:

tmpfs /tmp tmpfs noatime,nodev,nosuid,size=20G 0 0

Salve e feche.

EDIÇÃO DO MAKE.CONF

Edite o make.conf:

# nano /etc/portage/make.conf

Exemplo:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
VIDEO_CARDS="radeon r600"
PORTAGE_TMPDIR="/tmp"
ACCEPT_LICENSE="*"
MAKEOPTS="-j14"
USE="pulseaudio"

O mais importante aqui é:

COMMON_FLAGS="-march=native -O2 -pipe"

O sinalizador "-march" instruirá o compilador a produzir um código específico para a CPU do sistema, com todos os seus recursos, conjuntos de instruções, peculiaridades etc.

VIDEO_CARDS="radeon r600"

Instrui o sistema a utilizar o driver correto para sua placa de vídeo. Veja qual é a sua em: https://wiki.gentoo.org/wiki/Category:Video_cards

PORTAGE_TMPDIR="/tmp"

É opcional, mas serve para compilar programas na RAM caso tenha colocado no fstab o ponto de montagem correto. Recomendo apenas se tiver muita memória RAM sobrando.

ACCEPT_LICENSE="*"

Para o Portage aceitar licenças de softwares automaticamente.

MAKEOPTS="-j14"

MAKEOPTS é uma variável que define quantos trabalhos em paralelos podem ser iniciados pelo Portage. Depende da quantidade de núcleos. Veja mais em: https://wiki.gentoo.org/wiki/MAKEOPTS

USE="pulseaudio"

PulseAudio é um servidor de som. É importante para permitir controlar o volume no KDE Plasma.

Após editar o make.conf, salve e feche.

LOCALIZAÇÃO

Edite o locale.gen:

# nano /etc/locale.gen

Descomente a linha que deseja ou então acrescente. Exemplo:

pt_BR.UTF8 UTF-8

Salve e feche. Execute:

# locale-gen
# eselect locale list
# eselect locale set [número]

Fuso-horário:

# ln -sf /usr/share/zoneinfo/America/Recife /etc/localtime

Obs.: troque "America/Recife" para sua capital.

# emerge --config sys-libs/timezone-data

KERNEL

Instale o kernel e firmwares:

# emerge sys-kernel/gentoo-kernel-bin sys-kernel/linux-firmware x11-drivers/xf86-input-evdev

INICIALIZADOR

GRUB com OS-PROBER para detectar o Windows:

# emerge --ask os-prober

O os-prober vai puxar o GRUB.

Instale o GRUB e configure:

# grub-install --target=x86_64-efi --efi-directory=/boot/efi

Execute o seguinte comando para adicionar:

GRUB_DISABLE_OS_PROBER="false"

Ao arquivo do grub:

# echo 'GRUB_DISABLE_OS_PROBER="false"' >> /etc/default/grub

Continue:

# grub-mkconfig -o /boot/grub/grub.cfg

PERFIL DESKTOP

Mude o perfil para "desktop/plasma/systemd (stable)":

# eselect profile list
# eselect profile set [número]

REDE

Se pretende reiniciar em modo texto e continuar de lá, instale as ferramentas de rede com:

# emerge --ask sys-apps/iproute2 net-misc/dhcpcd

Habilite o dhcpcd:

# systemctl enable dhcpcd

Obs.: caso venha a utilizar o networkmanager, precisará desabilitar o dhcpcd para não dar conflito.

Se pretende continuar a instalação de onde está, em chroot, passe para o seguinte.

UTILIDADES

Aplicativos úteis:

# emerge --ask gentoolkit eix flaggie layman genlop

Pesquise sobre cada um na wiki do Gentoo caso não saiba para que servem.

AMBIENTE E NAVEGADOR

KDE Plasma completo e Firefox:

# emerge kde-plasma/plasma-meta kde-apps/kde-apps-meta www-client/firefox-bin

Habilite o SDDM:

# systemctl enable sddm

Se quiser mudar o nome do computador:

# hostnamectl hostname [novo nome]

REINICIANDO

Finalizando:

# exit
# cd /mnt
# umount -lR gentoo
# reboot

Quando o computador ligar, pressione o atalho para a seleção de inicialização e escolha Gentoo. No GRUB verá a opção para iniciar pelo Windows também.

Mural de Recados