Arch Linux: Installazione Avanzata (Hardened & Optimized)
Table of content
Questa guida definitiva per rtux.net copre un’installazione di Arch Linux senza compromessi. Implementeremo crittografia LUKS2 con parametri avanzati, un layout Btrfs granulare per snapshot e performance, e ottimizzazioni per hardware moderno.
1. Preparazione e Boot
Verifica il boot UEFI e sincronizza l’orologio.
ls /sys/firmware/efi/efivars
timedatectl set-ntp true2. Ottimizzazione Storage (4Kn)
Per SSD NVMe moderni, utilizziamo i settori nativi a 4096 byte.
# Formattazione distruttiva LBA 4096
nvme format --lbaf=1 /dev/nvme0n1Partizionamento GPT
Utilizziamo 2GB per la partizione EFI per supportare futuri Kernel UKI e strumenti di recovery.
- EFI: 2048MB (
EF00) - LUKS: Resto del disco (
8309)
3. Crittografia Hardened (LUKS2)
Utilizziamo parametri espliciti per garantire la massima cifratura e resistenza.
cryptsetup luksFormat --type luks2 \
--cipher aes-xts-plain64 \
--key-size 512 \
--iter-time 5000 \
--sector-size 4096 \
--pbkdf argon2id \
/dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptroot4. Filesystem e Layout Subvolumi Avanzato
Creiamo subvolumi separati per escludere dati temporanei dagli snapshot e ottimizzare le prestazioni di VM e container.
mkfs.btrfs -L ArchLinux -s 4096 /dev/mapper/cryptroot
mount /dev/mapper/cryptroot /mnt
# Layout Subvolumi
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@snapshots
btrfs subvolume create /mnt/@var_log
btrfs subvolume create /mnt/@var_pkg
btrfs subvolume create /mnt/@var_tmp
btrfs subvolume create /mnt/@var_lib_machines
# Disabilitazione CoW per macchine virtuali e database
chattr +C /mnt/@var_lib_machines
umount /mnt5. Montaggio e Formattazione Boot
Formattiamo correttamente la partizione EFI e montiamo la struttura.
mkfs.fat -F 32 /dev/nvme0n1p1
BTRFS_OPTS="noatime,compress=zstd:1,space_cache=v2,ssd,discard=async"
mount -o $BTRFS_OPTS,subvol=@ /dev/mapper/cryptroot /mnt
mkdir -p /mnt/{boot,home,.snapshots,var/log,var/cache/pacman/pkg,var/tmp,var/lib/machines}
mount /dev/nvme0n1p1 /mnt/boot
mount -o $BTRFS_OPTS,subvol=@home /dev/mapper/cryptroot /mnt/home
mount -o $BTRFS_OPTS,subvol=@snapshots /dev/mapper/cryptroot /mnt/.snapshots
mount -o $BTRFS_OPTS,subvol=@var_log /dev/mapper/cryptroot /mnt/var/log
mount -o $BTRFS_OPTS,subvol=@var_pkg /dev/mapper/cryptroot /mnt/var/cache/pacman/pkg
mount -o $BTRFS_OPTS,subvol=@var_tmp /dev/mapper/cryptroot /mnt/var/tmp
mount -o $BTRFS_OPTS,subvol=@var_lib_machines /dev/mapper/cryptroot /mnt/var/lib/machines6. Installazione Sistema
Includiamo entrambi i microcode per massima compatibilità hardware (CPU Intel + GPU AMD o viceversa).
pacstrap -K /mnt base linux linux-lts linux-firmware btrfs-progs cryptsetup intel-ucode amd-ucode nvim fish
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt7. Initramfs (Systemd-based)
Modifichiamo /etc/mkinitcpio.conf includendo il supporto device-mapper.
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
mkinitcpio -P
8. Bootloader GRUB
Configuriamo GRUB con i parametri di log standard per un avvio pulito.
In /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX="rd.luks.name=UUID_QUI=cryptroot root=/dev/mapper/cryptroot rootflags=subvol=@"
GRUB_ENABLE_CRYPTODISK=ygrub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg9. Snapper e Zram
# Configurazione Snapper
snapper -c root create-config /
systemctl enable snapper-timeline.timer snapper-cleanup.timer
systemctl enable grub-btrfsd
# Swap in RAM
pacman -S zram-generator
# In /etc/systemd/zram-generator.conf: [zram0] zram-size = min(ram, 8192)10. Conclusione
exit
umount -R /mnt
cryptsetup close cryptroot
reboot