Aprenda como deixar seu sistema aprova de fogo.
Este guia descreve um processo confiável para instalar o Arch Linux em laptops ou desktops, focando em segurança, simplicidade e estabilidade.
Baixe a imagem mais recente do Arch Linux e crie um USB bootável conforme as instruções oficiais.
lsblk -o +LABEL,PARTLABEL,UUID,PARTUUID
Identifique o disco onde o Arch será instalado. Exemplo:
/dev/sda
ou /dev/nvme0n1
.
Para uma instalação limpa, zere o disco:
#cryptsetup open --type plain /dev/DRIVEID container --key-file /dev/random
#dd if=/dev/zero of=/dev/mapper/container status=progress
Substitua DRIVEID
pelo identificador do seu disco (ex:
sda
).
Após conclusão você verá essa mensagem:
dd: writing to ‘/dev/mapper/container’: No space left on device
Isso significa que o processo foi finalizado com sucesso.
Crie as seguintes partições:
# DRIVE=/dev/DRIVEID
# sgdisk --zap-all $DRIVE
# sgdisk --clear \
--new=1:0:+550MiB --typecode=1:ef00 --change-name=1:EFI \
--new=2:0:+8GiB --typecode=2:8200 --change-name=2:cryptswap \
--new=3:0:0 --typecode=3:8300 --change-name=3:cryptsystem \
$DRIVE
Substitua DRIVEID
pelo identificador do seu disco (ex:. sda ou nvme0n1
).
Você pode utilizar particionador de preferência como:
gdisk,fdisk
ou parted
para particionar o disco.
Caso não quero utilizar swap em disco e tem preferência por utilizar Zram então:
# DRIVE=/dev/DRIVEID # sgdisk --zap-all $DRIVE
# sgdisk --clear \
--new=1:0:+550MiB --typecode=1:ef00 --change-name=1:EFI \
--new=2:0:0 --typecode=2:8300 --change-name=2:cryptsystem \
$DRIVE
# cryptsetup luksFormat --align-payload=8192 -s 256 -c aes-xts-plain64 /dev/disk/by-partlabel/cryptsystem
# cryptsetup open /dev/disk/by-partlabel/cryptsystem system
# mkfs.btrfs --label system /dev/mapper/system
# mkfs.fat -F32 -n EFI /dev/disk/by-partlabel/EFI
Obs: system é o nome dado ao container ou seja você pode utilizar o nome que desejar.
# mkfs.btrfs /dev/mapper/system
# mount /dev/mapper/system /mnt
# btrfs subvolume create /mnt/@
# btrfs subvolume create /mnt/@home
# btrfs subvolume create /mnt/@cache
# btrfs subvolume create /mnt/@log
# btrfs subvolume create /mnt/@images
# btrfs subvolume create /mnt/@snapshots
# umount -R /mnt
Monte os subvolumes:
mount -t btrfs -o noatime,compress=zstd:1,subvol=@ /dev/mapper/system /mnt
mkdir -p /mnt/{efi,home,.snapshots,var/{cache,log,lib/libvirt/images}}
mount -t btrfs -o noatime,compress=zstd:1,subvol=@home /dev/mapper/system /mnt/home
mount -t btrfs -o noatime,compress=zstd:1,subvol=@cache /dev/mapper/system /mnt/var/cache
mount -t btrfs -o noatime,compress=zstd:1,subvol=@log /dev/mapper/system /mnt/var/log
mount -t btrfs -o noatime,compress=zstd:1,subvol=@images /dev/mapper/system /mnt/var/lib/libvirt/images
mount -t btrfs -o noatime,compress=zstd:1,subvol=@snapshots /dev/mapper/system /mnt/.snapshots
mount LABEL=EFI /mnt/efi
Substitua DRIVEID
pela partição EFI criada.
pacstrap /mnt base base-devel linux-zen linux-firmware btrfs-progs vim bash-completion
genfstab -Lp /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Região/Cidade /etc/localtime
hwclock --systohc
/etc/locale.gen
e descomente as localidades desejadas, depois:
locale-gen
echo "LANG=pt_BR.UTF-8" > /etc/locale.conf
echo "meu-hostname" > /etc/hostname
/etc/hosts
:
127.0.0.1 localhost
::1 localhost
127.0.1.1 meu-hostname.localdomain meu-hostname
bootctl install
Crie o arquivo de entrada em /boot/loader/entries/arch.conf
:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=SEU_UUID:system root=/dev/mapper/system rw
Substitua SEU_UUID
pelo UUID da partição criptografada (use blkid
para encontrar).
passwd
exit
umount -R /mnt
reboot