Esta instalação combina GPT, UEFI, LVM e dois sistemas de arquivos Btrfs para construir um desktop Arch Linux com KDE Plasma. A partição EFI é montada em /efi, enquanto /boot permanece como uma pasta do Btrfs raiz para manter kernel e initramfs no mesmo escopo dos snapshots.
Os comandos usam o disco /dev/sda, o grupo de volumes vgarch, swap de 8 GiB, root de 80 GiB e o restante do espaço para home. Ajuste os valores e identificadores conforme o computador de destino.
Arquitetura final
A tabela GPT contém uma ESP FAT32 e uma segunda partição dedicada ao volume físico do LVM. Dentro do grupo vgarch, crie volumes lógicos independentes para swap, root e home. Root e home recebem sistemas Btrfs separados, portanto não compartilham o mesmo conjunto de subvolumes.
/dev/sda
├── /dev/sda1 ESP FAT32 ───────────────→ /efi
└── /dev/sda2 LVM PV
└── vgarch
├── swap 8 GiB ────────────────→ swap
├── root 80 GiB, Btrfs
│ ├── @ ──────────────────────→ /
│ ├── @snapshots ─────────────→ /.snapshots
│ ├── @cache ─────────────────→ /var/cache
│ └── @log ───────────────────→ /var/log
└── home espaço restante, Btrfs
└── @home ──────────────────→ /home
/boot é uma pasta normal dentro do subvolume @.
| Camada | Estrutura | Responsabilidade |
|---|---|---|
| Firmware | UEFI | Carrega o GRUB instalado na ESP. |
| Particionamento | GPT com ESP e partição LVM | Separa os arquivos EFI do armazenamento gerenciado pelo LVM. |
| Volumes | swap, root e home |
Permite dimensionar root e home independentemente. |
| Sistema de arquivos | Um Btrfs para root e outro para home | Isola os snapshots do sistema dos dados pessoais. |
| Inicialização | /efi em FAT32 e /boot no Btrfs |
Mantém kernel e initramfs dentro do root versionado. |
Escopo dos snapshots
Um snapshot de @ inclui /boot, mas não inclui os pontos montados separadamente: /efi, /home, /.snapshots, /var/cache e /var/log. Isso reduz o snapshot do sistema, mas também define o que precisa ser recuperado por outros meios.
1. Preparar o ambiente live
No menu do pendrive, selecione Arch Linux install medium (x86_64, UEFI). A existência do diretório de variáveis EFI confirma que a mídia foi inicializada em modo UEFI.
ls /sys/firmware/efi/efivars
loadkeys br-abnt2
Antes do particionamento, confira os discos, capacidades, sistemas de arquivos e pontos de montagem. Os comandos usam /dev/sda; substitua esse caminho caso o disco tenha outro identificador.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
Rede por cabo
enp3s0 é apenas o nome usado no exemplo. Consulte ip link e substitua-o pela interface exibida no computador.
ip link
ip link set enp3s0 up
dhcpcd enp3s0
ping archlinux.org
Rede Wi-Fi com iwctl
No shell interativo do iwd, wlan0 também deve ser trocado pelo dispositivo retornado por device list.
iwctl
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "NOME_DA_REDE"
exit
ping archlinux.org
Se a interface sem fio não receber endereço automaticamente, tente:
dhcpcd wlan0
DNS e IPv6 como diagnóstico temporário
Se a conectividade da sessão live apresentar problemas de DNS, desative temporariamente o IPv6 e substitua o resolv.conf por servidores DNS explícitos.
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
rm -f /etc/resolv.conf
cat > /etc/resolv.conf << EOF
nameserver 8.8.8.8
nameserver 1.1.1.1
EOF
2. Criar GPT, EFI e LVM
Limpe as assinaturas existentes e crie uma tabela GPT, uma ESP de 512 MiB e uma segunda partição ocupando o restante do disco.
sgdisk --zap-all /dev/sda
wipefs -af /dev/sda
partprobe /dev/sda
parted /dev/sda mklabel gpt
parted /dev/sda mkpart ESP fat32 1MiB 513MiB
parted /dev/sda set 1 esp on
parted /dev/sda mkpart primary 513MiB 100%
partprobe /dev/sda
mkfs.fat -F32 /dev/sda1
Transforme a segunda partição em um physical volume. Em seguida, crie o volume group vgarch e os logical volumes de swap, root e home.
pvcreate /dev/sda2
vgcreate vgarch /dev/sda2
lvcreate -L 8G vgarch -n swap
lvcreate -L 80G vgarch -n root
lvcreate -l 100%FREE vgarch -n home
vgchange -ay
| Volume lógico | Tamanho | Destino |
|---|---|---|
vgarch/swap | 8 GiB | Área de swap |
vgarch/root | 80 GiB | Sistema, aplicações e snapshots de root |
vgarch/home | Todo o espaço livre | Dados dos usuários |
Ajuste esses tamanhos de acordo com a quantidade de RAM, o uso de hibernação, o volume de pacotes e a retenção planejada para os snapshots.
3. Formatar Btrfs e montar subvolumes
Root e home são formatados separadamente. A swap recebe um rótulo e é ativada ainda no ambiente live.
mkfs.btrfs -L ArchRoot /dev/vgarch/root
mkfs.btrfs -L ArchHome /dev/vgarch/home
mkswap -L ArchSwap /dev/vgarch/swap
swapon /dev/vgarch/swap
Subvolumes do root
O root recebe quatro subvolumes. Além do sistema em @, snapshots, cache e logs ganham áreas próprias. Como snapshots Btrfs não atravessam outros subvolumes, cache e logs ficam fora das versões do root.
mount /dev/vgarch/root /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@snapshots
btrfs subvolume create /mnt/@cache
btrfs subvolume create /mnt/@log
umount /mnt
Subvolume do home
mount /dev/vgarch/home /mnt
btrfs subvolume create /mnt/@home
umount /mnt
Montagem do root e do home
As opções de montagem ativam compressão Zstandard no nível 3, detecção de SSD, descarte assíncrono e cache de espaço v2. Root e home usam os respectivos subvolumes como raiz lógica.
mount -o rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=@ /dev/vgarch/root /mnt
mkdir -p /mnt/home
mount -o rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=@home /dev/vgarch/home /mnt/home
Snapshots, cache e logs
mkdir -p /mnt/.snapshots
mount -o rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=@snapshots /dev/vgarch/root /mnt/.snapshots
mkdir -p /mnt/var/cache
mount -o rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=@cache /dev/vgarch/root /mnt/var/cache
mkdir -p /mnt/var/log
mount -o rw,relatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvol=@log /dev/vgarch/root /mnt/var/log
EFI em /efi e boot dentro do Btrfs
Monte a ESP em /mnt/efi. Crie /mnt/boot somente como um diretório do root e não monte nenhuma partição nesse caminho.
mkdir -p /mnt/efi
mount /dev/sda1 /mnt/efi
mkdir -p /mnt/boot
4. Instalar a base e gerar o fstab
O pacstrap instala o sistema base, kernel, suporte a Btrfs e LVM, rede, GRUB e o conjunto de ferramentas usado posteriormente para snapshots.
pacstrap -K /mnt base base-devel linux linux-firmware \
btrfs-progs lvm2 sudo nano vim networkmanager \
grub efibootmgr git wget curl \
snapper grub-btrfs snap-pac inotify-tools
Depois da instalação, o fstab é gerado a partir das montagens atuais. A revisão manual é essencial: home deve apontar para o Btrfs de vgarch-home, a ESP deve estar em /efi e não deve existir uma montagem vfat em /boot.
genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
| Verificação | Condição esperada |
|---|---|
/ | Subvolume @ do vgarch-root |
/home | Subvolume @home do vgarch-home |
/.snapshots | Subvolume @snapshots do root |
/efi | ESP FAT32 |
/boot | Sem linha própria de montagem |
Com a estrutura confirmada, o restante da configuração acontece dentro do novo sistema:
arch-chroot /mnt
5. Configurar sistema, initramfs e GRUB
Fuso horário, locale e teclado
ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
hwclock --systohc
nano /etc/locale.gen
No arquivo, descomente os dois locales:
en_US.UTF-8 UTF-8
pt_BR.UTF-8 UTF-8
locale-gen
echo "LANG=pt_BR.UTF-8" > /etc/locale.conf
echo "KEYMAP=br-abnt2" > /etc/vconsole.conf
Hostname e senha administrativa
echo "archlinux" > /etc/hostname
passwd
mkinitcpio com suporte ao LVM
Defina a linha HOOKS de /etc/mkinitcpio.conf com suporte ao LVM e recrie todas as imagens initramfs.
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block lvm2 filesystems fsck)
mkinitcpio -P
GRUB em modo EFI
Como a ESP está em /efi, esse é o diretório informado ao instalador. O arquivo de configuração, por outro lado, fica no diretório /boot/grub armazenado no Btrfs raiz.
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Validar os pontos de montagem
findmnt /efi
findmnt /boot
ls /boot
ls /efi
Verifique o seguinte estado:
/efi → vfat
/boot → sem saída no findmnt
/boot:
grub
initramfs-linux.img
vmlinuz-linux
/efi:
EFI
Kernel e initramfs não devem aparecer diretamente na ESP. Em seguida, o NetworkManager é habilitado para o sistema instalado.
systemctl enable NetworkManager
6. Criar usuário e instalar o KDE Plasma
Crie o usuário anderson no grupo wheel, defina sua senha e libere o uso do sudo pelo visudo. Substitua o nome de usuário se desejar.
useradd -m -G wheel -s /bin/bash anderson
passwd anderson
EDITOR=nano visudo
Dentro do arquivo sudoers, descomente:
%wheel ALL=(ALL:ALL) ALL
Para um desktop mais enxuto, instale:
pacman -S plasma-desktop plasma-workspace sddm dolphin konsole firefox
Para uma instalação mais completa com KDE Applications, use:
pacman -S plasma kde-applications sddm dolphin konsole firefox
Depois da escolha, habilite o display manager e encerre a fase do chroot:
systemctl enable sddm
exit
umount -R /mnt
reboot
7. Integrar Snapper e grub-btrfs
O subvolume @snapshots já está descrito no fstab, mas o Snapper tenta criar sua própria estrutura ao executar create-config. Desmonte o ponto existente, crie a configuração, remova o subvolume temporário e restaure a montagem planejada.
sudo umount /.snapshots
findmnt /.snapshots
Depois da desmontagem, findmnt /.snapshots deve ficar sem saída. Continue com a criação da configuração:
sudo rm -rf /.snapshots
sudo snapper -c root create-config /
sudo btrfs subvolume delete /.snapshots
sudo mkdir /.snapshots
sudo mount -a
findmnt /.snapshots
Os timers do Snapper criam snapshots de linha do tempo e aplicam a política de limpeza. O pacote snap-pac, instalado com a base, integra snapshots às operações do pacman quando a configuração root está disponível.
sudo systemctl enable --now snapper-timeline.timer
sudo systemctl enable --now snapper-cleanup.timer
O daemon do grub-btrfs acompanha mudanças no diretório de snapshots. Habilite o serviço, recrie a configuração do GRUB e registre um primeiro ponto chamado Sistema-estavel.
sudo systemctl enable --now grub-btrfsd.service
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo snapper create --description "Sistema-estavel"
8. Finalizar SSD, áudio e desktop
TRIM periódico
sudo systemctl enable --now fstrim.timer
Além do discard=async definido nas montagens Btrfs, habilite o timer de TRIM periódico.
PipeWire
sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber pavucontrol
Flatpak e Flathub
sudo pacman -S flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Ferramentas visuais para o KDE
sudo pacman -S kvantum qt5ct qt6ct papirus-icon-theme
Os efeitos são habilitados graficamente em:
Configurações do Sistema
→ Efeitos da Área de Trabalho
Blur
Transparência
Fade
Sliding Popups
Fallback gráfico com Mesa
Instale os componentes Mesa para o fallback gráfico:
sudo pacman -S mesa vulkan-swrast lib32-mesa
9. Fluxo de recuperação pelo pendrive
Para reinstalar kernel e GRUB, inicialize novamente pela mídia do Arch, ative o grupo LVM e monte root, home, snapshots e EFI nos pontos esperados.
vgchange -ay
mount -o subvol=@ /dev/vgarch/root /mnt
mkdir -p /mnt/home
mount -o subvol=@home /dev/vgarch/home /mnt/home
mkdir -p /mnt/.snapshots
mount -o subvol=@snapshots /dev/vgarch/root /mnt/.snapshots
mkdir -p /mnt/efi
mount /dev/sda1 /mnt/efi
arch-chroot /mnt
Dentro do sistema, reinstale os componentes de boot:
pacman -S linux linux-firmware mkinitcpio
mkinitcpio -P
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Saia, desmonte a árvore e reinicie:
exit
umount -R /mnt
reboot
A instalação torna explícita cada camada: firmware, partições, volumes, subvolumes, pontos de montagem, boot, desktop, snapshots e recuperação.
Ao concluir todas as etapas, o sistema terá Arch Linux com KDE Plasma, ESP em /efi, /boot dentro do Btrfs raiz, root e home separados, Snapper, snap-pac, grub-btrfs, snapshots automáticos, PipeWire, Flatpak e manutenção de SSD. A separação dos pontos de montagem torna previsível o que entra em cada snapshot e simplifica a montagem manual durante uma recuperação.