Linux e Infraestrutura

Arch Linux com KDE Plasma, Btrfs, LVM e Snapper: instalação passo a passo

Uma instalação completa de um desktop Arch em UEFI, com root e home separados por LVM e Btrfs, kernel dentro dos snapshots, Snapper, grub-btrfs e um fluxo de recuperação.

Anderson B Silva Anderson B Silva Desenvolvimento, automação e observabilidade
20 min de leitura

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.

Ver repositório no GitHub

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/swap8 GiBÁrea de swap
vgarch/root80 GiBSistema, aplicações e snapshots de root
vgarch/homeTodo o espaço livreDados 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
/homeSubvolume @home do vgarch-home
/.snapshotsSubvolume @snapshots do root
/efiESP FAT32
/bootSem 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.

Acessar o Arch_install
Anderson B Silva
Anderson B Silva

Desenvolvedor focado em automação, observabilidade e soluções que simplificam operações complexas.

Voltar ao Blog