Esta página é melhor visualizada com o JavaScript habilitado

Instalando Arch Linux com Btrfs

 ·  ‚ėē 6 min. de leitura

Instalação do sistema

Neste tutorial assumo que você já tenha uma mídia de instalação pronta e sabe como inicializar o sistema por ela.

1. Configuração do ambiente

Mapeamento de teclas

O mapa de teclas padrão do console é US, mas ele pode ser facilmente alterado de com o comando loadkeys. Para alterar o mapa de teclas para o padrão brasileiro podemos utilizar o seguinte comando:

1
loadkeys br-abnt2

Para saber quais mapas de teclas estão disponíveis no seu sistema:

1
localectl list-keymaps

2. Parti√ß√Ķes do disco

Listar discos

O comando lsblk retornar√° os discos e parti√ß√Ķes com dados extras, como tamanho e ponto de montagem.

Criar parti√ß√Ķes

Nesse ponto temos duas op√ß√Ķes, que eu conhe√ßo, de comandos que podem ser utilizados: fdisk e cfdisk. Dentre essas duas op√ß√Ķes cfdisk √© mais amig√°vel a novatos, j√° que √© uma aplica√ß√£o com interface gr√°fica.
Uma vez que tenha escolhido o disco que irá utilizar para instalar o archlinux é só utilizar um dos comandos acima seguido pelo nome do disco. Ex.:

1
cfdisk /dev/sda

O objetivo √© termos duas parti√ß√Ķes, primeiro a parti√ß√£o de boot com 512MB, a segunda com o resto do espa√ßo dispon√≠vel.
No resto deste guia irei considerar que o nome da parti√ß√£o de boot √© /dev/sda1 e o da parti√ß√£o raiz √© /dev/sda2, voc√™ deve substituir pelos nomes das parti√ß√Ķes do seu sistema.

Formatar parti√ß√Ķes

1
2
mkfs.fat -F32 /dev/sda1 # Formata a partição de boot com Fat32
mkfs.btrfs /dev/sda2 # Formate a partição raiz com btrfs

Criando subvolumes

Uma das principais raz√Ķes para se utilizar btrfs √© a facilidade para fazer o backup e restaurar o sistema, funcionalidade essa que s√≥ pode ser utilizada se tivermos subvolumes. Nessa estapa o nosso objetivo √© criar os seguintes subvolumes:

Subvolume Descrição
@root Raiz do sistema
@home Pasta dos usu√°rios
@var (Opcional) ser√° montada em /var
@tmp (Opcional) ser√° montada em /tmp
@snapshots Aqui é onde será salvo os snapshots do sistema
@swap Aqui ser√° onde criaremos o nosso swapfile

Com os seguintes comandos:

1
2
3
4
5
6
7
8
mount /dev/sda2 /mnt # Monta a partição para podermos criar os subvolumes
btrfs subvolume create /mnt/@root # Criar o subvolume @root
btrfs subvolume create /mnt/@home # Criar o subvolume @home
btrfs subvolume create /mnt/@var # Criar o subvolume @var
btrfs subvolume create /mnt/@tmp # Criar o subvolume @tmp
btrfs subvolume create /mnt/@snapshots # Criar o subvolume @snapshots
btrfs subvolume create /mnt/@swap # Criar o subvolume @swap
umount /mnt # Desmonta a partição para podermos utilizar os subvolumes que acabamos de criar

Agora precisamos montar os subvolumes:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
mount -o defaults,noatime,compress=zstd:2,subvol=@root /dev/sda2 /mnt # Monta a raiz do sistema
# Se o sistema n√£o for efi mude boot/efi,... para boot...
mkdir -p /mnt/{boot/efi,var,home,tmp,.snapshots,.swap} # Cria todos os diretórios especificados recursivament
mount -o defaults,noatime,compress=zstd:2,subvol=@home /dev/sda2 /mnt/home # Monta a pasta do usu√°rio
mount -o defaults,noatime,compress=zstd:2,subvol=@var /dev/sda2 /mnt/var
mount -o defaults,noatime,compress=zstd:2,subvol=@tmp /dev/sda2 /mnt/tmp
mount -o defaults,noatime,compress=zstd:2,subvol=@snapshots /dev/sda2 /mnt/.snapshots
mount -o defaults,noatime,compress=zstd:2,subvol=@swap /dev/sda2 /mnt/.swap
# Se o sistema n√£o for efi mude /mnt/boot/efi para /mnt/boot
mount /dev/sda1 /mnt/boot/efi

Explica√ß√£o: compress=zstd:2 define o algoritmo e o n√≠vel de compress√£o do sistema de arquivos, utilize compress=none se quiser optar por n√£o utilizar isso. noatime sinaliza para o sistema n√£o escrever no arquivo quando ele for lido isso pode melhorar a vida √ļtil de ssds j√° que tem que fazer menos escritas mas pode fazer com que aplica√ß√Ķes que dependam disso n√£o funcionem direito.
Nesse passo, se o sistema for BIOS e n√£o UEFI, mude todas as men√ß√Ķes acima de boot/efi para boot.

3. Instalação

1
pacstrap /mnt base base-devel linux linux-firmware nano # ou vim depende de sua preferência

4. Configurar o sistema

Configurar swapfile

1
2
3
4
5
6
7
truncate -s 0 /mnt/.swap/swapfile # Cria o swapfile com tamanho 0
chattr +C /mnt/.swap/swapfile # Desabilita COW no arquivo
btrfs property set /mnt/.swap/swapfile compression none # For√ßa o arquivo a n√£o ser compressado, o comando acima deve fazer com que esse n√£o seja necess√°rio, mas est√° aqui por via das d√ļvidas
fallocate -l 9G /mnt/.swap/swapfile # aloca 9G de espaço para o swapfile, esse tamanho só é necessário, na maior parte dos casos, se quisermos hibernar nossa máquina.
chmod 600 /mnt/.swap/swapfile # Define permiss√Ķes de forma que apenas o usuario root possa acessar o arquivo
mkswap /mnt/.swap/swapfile # Cria swap no arquivo
swapon /mnt/.swap/swapfile # Monta o swap 

Gerar fstab

fstab √© o arquivo respons√°vel por definir como as parti√ß√Ķes ser√£o montadas durante a inicializa√ß√£o do sistema. Esse arquivo pode ser gerado de acordo com as parti√ß√Ķes montadas em um determinado diret√≥rio da seguinte forma:

1
genfstab -U /mnt >> /mnt/etc/fstab

Chroot, mude a raiz para o sistema instalado

1
arch-chroot /mnt # Muda a raiz do sistema, ou seja, altera√ß√Ķes aqui ser√£o feitas no sistema instalado, at√© sair desse bash.

A partir daqui estaremos configurando o sistema instalado, portanto tenha certeza de não sair do bash acima até que tenhamos terminado tudo.

Fuso Hor√°rio

1
2
3
# ln -sf /usr/share/zoneinfo/Regi√£o/Cidade /etc/localtime
ln -sf /usr/share/zoneinfo/America/Recife /etc/localtime # Define o fuso hor√°rio para o da cidade de Recife
hwclock --systohc # Gera /etc/adjtime

Localização

Locales ou localiza√ß√Ķes s√£o utilizados por programas e bibliotecas conscientes dos locales para definir como renderizar corretamente textos, valores, hor√°rio, etc…
Para gerar locales é preciso editar o arquivo /etc/locale.gen e descomentar as linhas com locales desejados, no nosso caso pt_BR.UTF-8 UTF-8 (e em alguns casos en_US.UTF-8 UTF-8 também já que já tive problemas por não ter esse locale gerado no sistema).

1
2
3
locale-gen # gera locales de linhas descomentados no arquivo /etc/locale.gen 
echo "LANG=pt_BR.UTF-8" > /etc/locale.conf # Escreve a lingua que vai ser utilizada pelo sistema no arquivo /etc/locale.conf
echo "KEYMAP=br-abnt2" > /etc/vconsole.conf # Define o mapa de teclas que vai ser utilizado pelos consoles virtuais do sistema 

Rede

1
echo "meu-nome-de-host" > /etc/hostname # Define o nome do host

Segurança

Altere a senha do usu√°rio root

1
passwd # vai lhe ajudar a definir a senha do usu√°rio atual (root)

Adicione o seu usu√°rio, afinal n√£o se deve ficar utilizando o sistema como root

1
2
useradd -m -g users -G wheel,storage,power,audio -s /bin/bash seunomedeusuario
passwd seunomedeusuario # define a senha do seu usu√°rio

5. Configurar Inicialização do sistema

1
2
3
4
5
6
7
8
# Instalando um gerenciador de boot e dependencias necess√°rias
# efibootmgr só é necessário se estiver em um sistema EFI
pacman -S grub grub-btrfs efibootmgr dosfstools mtools ntfs-3g
# Se o sistema for EFI use o comando abaixo para installar o grub (gerenciador de boot)
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB 
# Se n√£o, utilize:
# grub-install /dev/sda # ou qualquer que seja o nome do disco onde está a partição raiz do seu sistema
grub-mkconfig -o /boot/grub/grub.cfg # gera o arquivo de configuração de boot

6. Instalar ambiente desktop Plasma e rede

1
2
3
pacman -S sddm plasma networkmanager # Instala ambiente desktop plasma, gerenciador de display e gerenciador de rede
systemctl enable sddm # habilita o sddm a ser inicializado junto com o sistema
systemctl enable NetworkManager # habilita o gerenciador de rede a ser inicializado junto com o sistema

7. Finalização

Pronto. Você instalou o Arch Linux.
Agora:

1
2
3
exit # para sair do chroot
umount -a # desmonta todas as parti√ß√Ķes montadas
reboot # reinicia o sistema.

Referências

Copy-on-Write
Instalação Archlinux com BTRFS (medium.com)
Instalação Archlinux (archlinux.org)
Instalando btrfs com pop_os

Compartilhar em

Daniel B. Sales
Escrito por
Daniel B. Sales