[Tuto] Instalação manual do Arch em BTRFS com subvolumes - revisado e testado 23/09/2025

Tutorial de instalação manual em BTRFS com subvolumes e backup feito por timeshift

Vou tentar simplificar, mas links de informações serão adicionados para outros tipos de instalação.

. systemd-boot - ArchWiki
. GRUB - ArchWiki
. Snapper - ArchWiki

Apoś iniciar o boot do cd.

1- Configure o layout do teclado ( padrão US )

loadkeys br-abnt2

Ou você pode usar o novo padrão:

localectl set-x11-keymap br abnt2

Opcional: Caso tenha problema com a fonte.

setfont lat0-16

Opcional: Por padrão, a lingua setada como padrão é o Inglês. Se quiser modificar:
Edite o arquivo locale.gen e descomente o que for pt_BR.

nano /etc/locale.gen

pt_BR.UTF-8 UTF-8

Depois execute os comandos

locale-gen

Para mofificar para português brasileiro, execute o comando:

export LANG=pt_BR.UTF-8

ou

LANG=pt_BR.UTF-8

2- Conexão com a internet.

DHCP
Conexão de rede com fio e acesso a um servidor
DHCP (ex. roteador) (Está opção é iniciada automaticamente) dhcpcd

WI-FI
Entre no iwctl

iwctl

Vamos listar os dispositivos disponíveis:

[iwd]# device list

Para escanear as redes:

[iwd]# station device scan

Para listar todas as redes disponíveis:

[iwd]# station device get-networks

Finalmente, conecte-se a rede ao seu SSID:

[iwd]# station device connect SSID

Sair do iwd

[iwd]# exit

3- Prepare o disco rígido

Se já estiver particionado. Você pode utilizar o lsblk.

lsblk -f /dev/sda (este é equivalente a -o NAME,FSTYPE,LABEL,MOUNTPOINT)

Ferramentas para particionar os discos

parted: GPT and MBR
fdisk, cfdisk, sfdisk: GPT and MBR
gdisk, cgdisk, sgdisk: GPT
Recomendo utilizar uma dessas ferramentas: gdisk
e cgdisk
Pode utilizar também o fdisk e cfdisk

CFDISK e CGDISK talvez sejam mais fáceis de
configurar.

O uso do cfdisk é melhor e tem suporte ao gpt.

Exemplo:

Crie um partição de 300M para efi
Crie uma partição de 1G para o /boot
Crie uma partiçào de 40G a 100G para /root
Crie o restante para /homea

Exemplo:
/dev/sda1 /boot/efi
/dev/sda2 /boot
/dev/sda3 /
/dev/sda4 /home

OBS:
Se você estiver usando um SSD, é recomendado deixar de 10% a 25% de espaço não alocado.

mkfs.fat -F32 /dev/sda1
mkfs.ext4  /dev/sda2
mkfs.btrfs /dev/sda3
mkfs.xfs   /dev/sda4

Para swap podemos usar swapfile ou zram

. zram - ArchWiki
. Swap - ArchWiki

4- Monte as partições
Montar a partição root na pasta /mnt.

mount /dev/sda2 /mnt

Entre no diretório mnt

cd /mnt

Crie os subvolumes. Há distros que criam volumes de particões temporárias como, tmp e srv. Como o Arch por padão usa o tmpfs, não vou adicionar no exemplo, mas fica ao seu critério usar ou não. Aqui estou utilizando tudo numa partição só. Por isso vou adicionar home e var. Mas caso seja criado com outro sistema de arquivo, não adicione. E desmontamos no fim.

btrfs su cr @
btrfs su cr @root
btrfs su cr @log
btrfs su cr @pkg
btrfs su cr @timeshift

@ - Este é o subvolume raiz principal no topo do qual todos os subvolumes serão montados.
@log - Contém logs.
@pkg - Contém cache de pacotes do pacman
@root - Contém o direório root

@.snapshots - Diretório para armazenar instantâneos para o pacote snapper
@timeshift - Contém os snashots do programa.

Criando subvolumes.
Nao iremos criar os subvolumes na pasta /mnt, iremos criar outra pasta e trabalhar nela.
O nome você pode escolher, exemplo: alvo,montagem,target.etc…

Aqui vamos usar /montagem

mkdir -p /montagem

Vamos criar o subvolume do root.

mount -o rw,relatime,subvol=@  /dev/sda3 /montagem

Se usa SSD

mount -o rw,relatime,ssd,subvol=@  /dev/sda3 /montagem

Vamos agora criar as pastas para as montagens

mkdir -p /montagem/boot
mkdir -p /montagem/root
mkdir -p /montagem/var/log
mkdir -p /montagem/var/cache/pacman/pkg
mkdir -p /montagem/home
mkdir -p /montagem/run/timeshift

A pasta EFI criaremos depois.

Vamos montar os subvolumes:

mount -o rw,relatime,subvol=@root  /dev/sda3 /montagem/root
mount -o rw,relatime,subvol=@log  /dev/sda3 /montagem/var/log
mount -o rw,relatime,subvol=@pkg  /dev/sda3 /montagem/var/cache/pacman/pkg
mount -o rw,relatime,subvol=@timeshift  /dev/sda3 /montagem/run/timeshift

Agora criaremos o que falta: /boot, /boot/efi e home

mount /dev/sda2 /montagem/boot
mount /dev/sda4 /montagem/home

Falta o efi. Vamos criar a pasta.

mkdir -p /montagem/boot/efi

Agora vamos montar

mount /dev/sda1 /montagem/boot/efi

Recomendo fazeer um revisão para ver se está tudo montado.

ls -l /montagem

Tudo OK? Vamos seguir.

5- Selecione o espelho (mirror) para a instalação

Primeiro ative a função downloads paralelos do pacman. Para isso descomente no arquivo /etc/pacman.conf o ParallelDownloads.

nano  /etc/pacman.conf

E mude para o valor que achar melhor

ParallelDownloads = 5

A imagem do Arch já vem com o pacote reflector, que serve para buscar os melhores espelhos (mirros) para você baixar os pacotes.Utilizaremos o comando com as seguintes opções

-c para falar o pais
-f busca um número de espelhos mais rápidos
–save aonde salvar o arquivo mirrorlist

reflector -c brazil -f 5 --save /etc/pacman.d/mirrorlist

6- Instale o sistema base
Nota: Um sistema mínimo exige o pacote do grupo base, também a instalação do grupo de pacote base-devel neste momento é altamente recomendado.

pacstrap /montagem base base-devel linux linux-firmware linux-headers vim nano man-db pacman-contrib btrfs-progs sudo

7-Gerar o fstab
Gere o fstab com o script genfstab(se preferir adicione a opção -U (UUIDs) ou -L (labels), respectivamente).

genfstab -U /montagem >> /montagem/etc/fstab

Verifique com cat

cat /montagem/etc/fstab

8- Chroot no sistema
Faremos um chroot dentro de nosso sistema recém-instalado.

arch-chroot /montagem

9- Configure o sistema

# pacman -S reflector

Atualize a mirror.

-c para falar o pais
-f busca um número de espelhos mais rápidos
–save aonde salvar o arquivo mirrorlist
reflector -c br -c se -f 5 --save /etc/pacman.d/mirrorlist

[ IDIOMA ]
nano /etc/locale.gen
Descomente

 pt_BR.UTF-8 UTF-8
 pt_BR ISO-8859-1

nano /etc/locale.conf

LANG=pt_BR.UTF-8

Execute o comando

locale-gen

Para modificar agora o idioma

export LANG=pt_BR.UTF-8

ou

LANG=pt_BR.UTF-8

[ TECLADO ]

nano /etc/vconsole.conf

 KEYMAP=br-abnt2
 FONT=lat0-16
 FONT_MAP=

[ HORA ]

Definindo uso horário e defindo hora

$ timedatectl list-timezones
$ timedatectl set-timezone America/Sao_Paulo
$ timedatectl set-timezone UTC

[ NOME DA MÁQUINA E HOSTS ]
nano /etc/hostname

myhostname

nano /etc/hosts
Adicione o hostname no arquivo hosts
Alguns programas utilizam o 127.0.1.1, por isso é recomendado adicionar

127.0.0.1 localhost
127.0.1.1 myhostname.localdomain myhostname`
::1 localhost

10- Crie um ambiente ramdisk inicial

mkinitcpio -P

11- Instalação do GRUB

Instale o grub

pacman -S grub

Instale o efibootmgr

pacman -S efibootmgr

Instale no disco rígido contendo a sua partição de boot. Instalação automática.

grub-install /dev/sda

Para verificar se o arquivo efi foi instalado na pasta grub ou arch

ls /boot/EFI/arch/

Deverá aparecer o arquivo o arquivo grubx64.efi

Atenção: Se você está instalando via virtualbox, terá que mudar o nome de pasta e arquivo porque o
virtualbox não salva a NVRAM.
Por exemplo:
Se o caminho do arquivo efi estiver assim:
/boot/EFI/arch/grubx64.efi

Atera o nome da pasta arch para BOOT e o nome do arquivo para bootx64.efi
Ficará assim:
/boot/EFI/BOOT/bootx64.efi

Crie o arquivo grub.cfg.

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

12- Definir a senha root

passwd

13- configuração do SUDO

Caso queira usar o editor nano

EDITOR=nano visudo

Descomente a opção

## Uncomment to allow members of group wheel to execute any command`
 # %wheel ALL=(ALL) ALL
 %wheel ALL=(ALL) ALL

14- Crie o usuário

Opções do useradd
-d diretório_home : caminho completo do diretório home do usuário.
-m : Cria o diretório home fornecido pela opção “-d” com os arquivos e estrutura definidas na configuração de /etc/skell
-G grupos : lista de grupos separados por uma virgula
-g grupo padrão

useradd -m -g users -G wheel swatquest

Crie a senha - passwd usuário

passwd swatquest

15- Instalando ambiente gráfico - Instalando o Gnome

Instalando gnome

pacman -S gnome gnome-extra networkmanager xorg-server xorg-xinit

pacman -S unzip unace p7zip unrar

E por fim, coloque para iniciar junto com sistema o serviço de rede e gerenciador de login

 systemctl enable NetworkManager gdm

Para finalizar, crie o arquivo .xinitrc no pasta do usuário na home e adicione

nano /home/usuário/.xinitrc

exec gnome-session

16- Instalando o Timeshift e cronie para agendamento do programa

# pacman -S timeshift cronie

Coloque o cronie para iniciar junto com sistema

 systemctl enable cronie

Habilite também ajuste da hora

systemctl enable systemd-timesyncd.service

17- Sair do chroot

Saia do chroot, digite “exit”, ou Ctrl + D

18- Desmonte todas as particões

Primeiro sai da pasta /mnt

cd ..

Depois desmonte

umount -R /mnt
umount -R /montagem

Ao iniciar o sistema, para ver se está tudo ok com os subvolumes.

Excute o comando lsblk -f

Exempplo:


├─sda3 btrfs              1935b92a-d4a3-4886-8ba0-a0d1a7ea6248   15,4G    22% /var/cache/pacman/pkg
│                                                                             /var/log
│                                                                             /root
│                                                                             /
1 curtida