Installation de Arch Linux avec du chiffrement LVM

Lien utiles

Télécharger Arch Linux
https://archlinux.org/download/

Doc officielle pour faire le chiffrement LVM des partitions
https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system

Intoduction

Je vais faire une installation complète de Arch Linux UEFI en chiffrant les partitions root, home et swap.

Pour commencer je change la langue du clavier en FR

loadkeys fr-latin1

Je définie le mot de passe du compte root

passwd

Ensuite configurer le réseau pour me connecter en ssh, ça sera plus pratique pour continuer l’installation.
Si vous êtes connecté en filaire, le réseau devrait remonter tout seul et attribuer une ip via le DHCP.

Toutefois si comme moi, vous faites l’installation sur un laptop, il va falloir faire monter le réseau en wifi.
Il va falloir se connecter sur son réseau avec iwd

iwd

Une fois le réseau remonté, je continue l’installation en ssh

Je vais procéder au partitionnement du disque

Je recherche le nom du disque

lsblk

Dans mon cas c’est /dev/sda

Je lancer fdisk pour commencer le partitionnement

fdisk /dev/sda

Dans le menu interactif on peut s’aider de la touche m pour voir les commandes possibles

Se référer à l’article : Partitionnement avec Fdisk

Voici le résultat attendu
1 partition EFI et 1 partition pour LVM

Je vais passer au chiffrement de la partition /dev/sda2 créée précédemment

cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/sda2

On crée un mot de passe et si tout va bien, vous devriez avoir ce message

J’accède à la partition chiffrée en entrant le mot de passe

cryptsetup open /dev/sda2 cryptroot

Volume group du LVM

vgcreate vgcrypt /dev/mapper/cryptroot

Création du swap 1G

lvcreate -L 1G vgcrypt -n swap

Création du home 1G, voir plus en fonction de l’espace disponible

lvcreate -L 1G vgcrypt -n home

Et avec l’espace restant je créée la dernière partition root

lvcreate -l 100%FREE vgcrypt -n root

Résultat attentdu

Préparation du système de fichiers

mkfs.fat -F32 /dev/sda1
mkswap /dev/mapper/vgcrypt-swap
mkfs.ext4 /dev/mapper/vgcrypt-root
mkfs.ext4 /dev/mapper/vgcrypt-home

Création et montage des dossiers

mount /dev/mapper/vgcrypt-root /mnt
mount --mkdir /dev/mapper/vgcrypt-home /mnt/home
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
swapon /dev/mapper/vgcrypt-swap

Maintenant on peut procéder à l’installation de tous les packages

pacman -Syy

pacstrap /mnt base base-devel linux linux-firmware sysfsutils usbutils e2fsprogs inetutils netctl less which man-db man-pages vim lvm2 sudo

Cette commande va créer la table des systèmes de fichiers qui contient toutes les partitions et points de montage dans fstab

genfstab -U /mnt >> /mnt/etc/fstab

Je vérifier si tout est bon

cat /mnt/etc/fstab

Puis je change le répertoire où sera installé le système

arch-chroot /mnt

Premièrement je vais aller modifier le fichier suivant qui permettera de charger les bons modules au démarrage du système, notamment le lvm avec nos partitions chiffrées

vim /etc/mkinitcpio.conf

Je change la ligne HOOKS de la manière suivante

HOOKS=(base udev autodetect modconf block filesystems keyboard keymap encrypt lvm2 fsck)

Générer le fichier

mkinitcpio -P

monter le système de fichiers efivarfs sur le répertoire /sys/firmware/efi/efivars

mount -t efivarfs efivarfs /sys/firmware/efi/efivars

Ensuite j’installe les packages pour le grub

pacman -S grub efibootmgr dosfstools

Pour passer à la configuration du grub il me faut le UUID de la partition chiffrée. Ma partition est sur /dev/sda2

blkid | grep /dev/sda2

Ce qui me donne ce résultat

/dev/sda2: UUID="a03e865e-0a76-45d6-960f-3dc831da3541" TYPE="crypto_LUKS" PARTUUID="f94bfc23-a5cf-48a2-afbc-213d1715f944"

Je copie le UUID afin de l’ajouter dans le fichier grub

vim /etc/default/grub

Je rajoute cette ligne dans mon fichier grub avec le bon UUID. Je rajoute les instructions de langue pour avoir le clavier en français lors de la saisie du mot de passe

GRUB_CMDLINE_LINUX="cryptdevice=UUID=a03e865e-0a76-45d6-960f-3dc831da3541:cryptroot root=/dev/mapper/vgcrypt-root lang=fr locale=fr_FR.UTF-8"

Je peux ensuite installer grub

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=archlinux_grub --recheck --debug

Si tout va bien, on devrait avoir le message : No error reported. à la fin

Et je génère le nouveau fichier de configuration

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

Si tout va bien, on devrait avoir le message : Adding boot menu entry for UEFI Firmware Settings …
done

A ce stade, l’installation initiale du système est effectuée

Configuration du système

Nom de la machine

echo archlinux > /etc/hostname

Mettre un nom d’hôte dans le fichier hosts

vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux

Définir les paramètres régionaux

vim /etc/locale.gen
Decommenter --> fr_FR.UTF-8 UTF-8
locale-gen

Configuration du clavier

echo LANG=fr_FR.UTF-8 > /etc/locale.conf
export LANG=fr_FR.UTF-8
echo KEYMAP=fr-latin1 > /etc/vconsole.conf

Configurer le fuseau horaire

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock --systohc --utc

Configurer pacman

vim /etc/pacman.conf

Décommenter et ajouter les lignes suivantes, multilib est un dépot fortement recommandé pour installer certains logiciels ou jeux.
Activation de plusieurs téléchargements simultanés, je vais en autoriser 5.
Color, VerbosePkgLists et ILoveCandy rendront le terminal plus festif

[multilib]
Include = /etc/pacman.d/mirrorlist
Color
VerbosePkgLists
A rajouter --> ILoveCandy

 

Configurer les utilisateurs

Définir le mot de passe du compte root

passwd

Création d’un nouveau user

useradd -m -G audio,video,input,wheel,sys,log,rfkill,lp,adm -s /bin/bash linuxrnnk
passwd linuxrnnk

Activation de sudo, pour donner des privilèges à l’utilisateur créée

EDITOR=vim visudo
Décommenter -->  %wheel ALL=(ALL) ALL

 

 

Installation d’un environnement graphique

Installer le display xorg

sudo pacman -S xorg-server xorg-xinit xorg-xrandr xorg-xfontsel xorg-xlsfonts xorg-xkill xorg-xinput xorg-xwininfo xorg-xprop xorg-xev xorg-xset xorg-xbacklight xorg-xclipboard xorg-xauth xorg-xmodmap xorg-xrdb xorg-xgamma xorg-xhost xorg-setxkbmap xorg-xdpyinfo xorg-xpr xorg-twm xorg-xclock

Et l’environnement de bureau de votre choix

Pour KDE

pacman -S plasma kde-applications sddm
systemctl enable sddm

Gnome

pacman -S gnome gnome-extra gdm
systemctl enable gdm

XFCE

pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
systemctl enable lightdm

Il existe d’autres environnement graphiques, comme Cinnamon, Mate, LXDE… que je n’aborderais pas ici

Packages utiles

La base

pacman -S linux-headers dkms curl expac git wget acpid avahi net-tools xdg-user-dirs networkmanager p7zip unrar unarchiver unzip firefox vivaldi terminator alacritty dialog openssh

Essentiel pour le son

pacman -S alsa-utils alsa-plugins pulseaudio-alsa pulseaudio-equalizer

KDE

pacman -S pavucontrol-qt

XFCE

pacman -S pavucontrol

Problème possible si vous installez Arch sur VMWare, la carte son ne s’active pas par défaut. Il faut forcer l’activation.

VM Settings -> Sound Card -> Cocher la case « Connected » et « Connected at power »

Bluetooth

pacman -S bluez bluez-utils pulseaudio-bluetooth

Activer les services

systemctl enable acpid avahi-daemon systemd-timesyncd NetworkManager bluetooth

Si vous êtes en wifi

pacman -S wireless_tools wpa_supplicant ifplugd 

Pilotes pour les cartes graphiques

Mesa

pacman -S mesa lib32-mesa

Vulkan

pacman -S vulkan-icd-loader lib32-vulkan-icd-loader
xf86-video-amdgpu – GPU AMD
xf86-video-nouveau – NVIDIA
xf86-video-intel – Intel
xf86-video-ati – Anciens AMD
xf86-video-vmware – VirtualBox, VMWare, QEMU

Pilotes propriétaires NVIDIA

pacman -S nvidia nvidia-utils lib32-nvidia-utils libvdpau lib32-libvdpau

AMD

pacman -S libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau libva-vdpau-driver lib32-libva-vdpau-driver vulkan-radeon lib32-vulkan-radeon

Intel

pacman -S vulkan-intel

Si vous souhaitez changer le shell par défaut

pacman -S fish
chsh -s /usr/bin/fish linuxrnnk

Une fois toutes ces étapes réalisés, nous avons une installation de Arch Linux complète avec des partitions chiffrées, un environnement graphique et tous les packages nécessaires pour une utilisation quotidienne de cette formidable distribution légère et performante