Dm-crypt

Aprenda como deixar seu sistema aprova de fogo.

Criptografia do disco + Instalação Arch Linux

Introdução

Este guia descreve um processo confiável para instalar o Arch Linux em laptops ou desktops, focando em segurança, simplicidade e estabilidade.

Pré-requisitos

1. Inicializar com o USB do Arch

Baixe a imagem mais recente do Arch Linux e crie um USB bootável conforme as instruções oficiais.

2. Identificar o Disco de Instalação

lsblk -o +LABEL,PARTLABEL,UUID,PARTUUID

3. Limpar o Disco (opcional)

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
dd: writing to ‘/dev/mapper/container’: No space left on device

4. Particionamento

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).

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

5. Criptografia com LUKS

# 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

6. Criar Sistema de Arquivos Btrfs

# 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

7. Montar a Partição EFI

mount LABEL=EFI /mnt/efi

Substitua DRIVEID pela partição EFI criada.

8. Instalar o Sistema Base

pacstrap /mnt base base-devel linux-zen linux-firmware btrfs-progs vim bash-completion

9. Gerar o fstab

genfstab -Lp /mnt >> /mnt/etc/fstab

10. Chroot no Novo Sistema

arch-chroot /mnt

11. Configurações Básicas

12. Instalar o Bootloader (systemd-boot)

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).

13. Definir Senha do Root

passwd

14. Finalizar

exit
umount -R /mnt
reboot

Referências