Instalação do Gentoo em HD Externo para dual boot com Windows
Resumo da instalação de Gentoo com Systemd, perfil desktop, com KDE Plasma em HD externo em dualboot com Windows, em modo GPT/UEFI.
Introdução
Como sempre deixo avisado: a melhor documentação de instalação é o manual de instalação oficial do Gentoo, de preferência em inglês, sempre atualizado.
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.
# 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
# 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*
# 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
# 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
# blkid
E copie.
Edite o fstab:
# nano /etc/fstab
Adicione a linha referente ao HD Externo com base no UUID. Exemplo:
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:
Salve e feche.
# nano /etc/portage/make.conf
Exemplo:
O mais importante aqui é:
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.
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
É 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.
Para o Portage aceitar licenças de softwares automaticamente.
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
PulseAudio é um servidor de som. É importante para permitir controlar o volume no KDE Plasma.
Após editar o make.conf, salve e feche.
# nano /etc/locale.gen
Descomente a linha que deseja ou então acrescente. Exemplo:
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
# emerge sys-kernel/gentoo-kernel-bin
# emerge sys-kernel/linux-firmware x11-drivers/xf86-input-evdev
# 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
# eselect profile list
# eselect profile set [número]
# 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.
# emerge --ask gentoolkit eix flaggie layman genlop
Pesquise sobre cada um na wiki do Gentoo caso não saiba para que servem.
# 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]
# 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.
Na próxima página, veja alguns passos extras.
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.
# 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"
# 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
# emerge 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.
Na próxima página, veja alguns passos extras.
Gentoo em HD Externo. Interessante.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10