[Français] English

Installation de Void Linux avec disque chiffré (sauf boot), Btrfs, rEFInd

Ce guide a été écrit courant décembre 2023 et a été mis à jour le 29 octobre 2024. Suivez ce guide à vos risques et périls.

Image d’installation

L’installation de l’image se fait ici depuis un système Linux.

La récupérez sur le site officiel. Dans la plupart des cas, choisissez x86_64, base, “Live Image” (glibc. L’installation de rEFInd ne marche pas avec musl.). Téléchargez aussi sha256sum.txt et sha256sum.sig (juste au dessus du bouton x86_64).

Installez minisign avec votre gestionnaire de paquets. Vérifiez l’intégrité et les signatures des fichiers 1:

wget 'https://github.com/void-linux/void-packages/tree/master/srcpkgs/void-release-keys/files/void-release-20240314.pub'
minisign -V -p void-release-20240314.pub -x sha256sum.sig -m sha256sum.txt
sha256sum -c --ignore-missing sha256sum.txt

Exemple de vérification correcte pour minisign :

Signature and comment signature verified
Trusted comment: This key is only valid for images with date 20240314.

Pour sha256sum :

void-live-x86_64-20240314-base.iso: OK

Flashez l’image dans une clé USB 2. Tout ce qui est sur la clé va être effacé.

lsblk  # Identifiez la clé USB
umount /dev/sdX  # Devrait afficher : umount: /dev/sdX: not mounted

cat void-live-x86_64-20240314-base.iso > /dev/sdX
sync

Installation de Void Linux

Bootez la clé USB. Choisissez dans le chargeur d’amorçage (bootloader) l’option Void Linux 6.x.x x86_64 (RAM) pour une meilleure performance si vous avez assez de RAM 3. Identifiez vous avec root et mot de passe voidlinux.

Pour avoir une meilleure interface logicielle (shell) avec complétion, tapez bash. Tapez q pour a si votre clavier est français.

Changez le clavier si besoin :

# Pour les claviers français
loadkeys fr-latin9  # Tapez `)` pour avoir `-` et `ç` pour `9`

# Pour les autres claviers, fouillez dans ce répertoire pour voir ceux disponibles
ls /usr/share/kbd/keymaps/i386  # AZERTY: Tapez `!` pour `/` et `,` pour `m`

Connexion Internet

Pour la connexion Wi-Fi (WPA-PSK), identifiez la bonne interface avec ip a ; dans la suite, on suppose que c’est wlan0. Puis :

wpa_cli -i wlan0

Dans la ligne de commande de wpa :

scan
scan_results
add_network
set_network 0 ssid "MySSID"
set_network 0 psk "passphrase"
enable_network 0
save_config
quit

S’il n’y a pas de mot de passe, utilisez à la place la commande set_network 0 key_mgnt NONE.

Testez la connexion avec ping. Si cela ne marche pas, essayez ip link set up wlan0 ou sv restart dhcpd.

Partitionnement

Créez deux partitions, une pour /boot d’une taille de 1 Gio 4, et une pour le système que l’on va chiffrer avec pour taille le reste. Pour cela, on peut utiliser cfdisk -z /dev/nvme0n1/dev/nvme0n1 est votre disque de stockage où installer Void (identifiez le avec lsblk) 5. Attention, cette commande rendra votre disque illisible si vous aviez des données dessus. Choisissez gpt pour le label, puis créez les deux partitions. Mettez le type de la première à EFI System, le deuxième à Linux filesystem. Enfin, utilisez Write.

Système de fichier et chiffrement

mkfs.vfat -F32 /dev/nvme0n1p1
cryptsetup luksFormat /dev/nvme0n1p2  # Choisissez un mot de passe
cryptsetup open /dev/nvme0n1p2 cryptroot
mkfs.btrfs /dev/mapper/cryptroot

mount /dev/mapper/cryptroot /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@snapshots
btrfs subvolume create /mnt/@var_log
btrfs subvolume create /mnt/@swap
umount /mnt

mount -o defaults,subvol=@ /dev/mapper/cryptroot /mnt
mkdir -p /mnt/boot && mount /dev/nvme0n1p1 /mnt/boot
mkdir -p /mnt/home && mount -o defaults,subvol=@home /dev/mapper/cryptroot /mnt/home
mkdir -p /mnt/.snapshots && mount -o defaults,subvol=@snapshots /dev/mapper/cryptroot /mnt/.snapshots
mkdir -p /mnt/var/log && mount -o defaults,subvol=@var_log /dev/mapper/cryptroot /mnt/var/log
mkdir -p /mnt/swap && mount -o defaults,subvol=@swap /dev/mapper/cryptroot /mnt/swap

Installation du système de base

Sélectionnez un miroir officiel de Void proche de chez vous, et sélectionnez la bonne architecture 6:

REPO=https://repo-default.voidlinux.org/current
ARCH=x86_64

Copie des clés RSA vers le futur système Void :

mkdir -p /mnt/var/db/xbps/keys
cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/

Puis on installe le système :

XBPS_ARCH=$ARCH xbps-install -S -r /mnt -R "$REPO" base-system btrfs-progs cryptsetup refind vim  # Ou nano

Environnement Chroot

Configuration du système

Entrez dans l’environnement Chroot :

xchroot /mnt /bin/bash

Puis dedans :

vim /etc/hostname  # Choisissez un hostname
vim /etc/rc.conf  # Ou nano. Changez le clavier en fr-latin9 ou autre si besoin
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime  # À changer en fonction des besoins

vim /etc/default/libc-locales  # Enlevez les commentaires pour les locales correspondants
xbps-reconfigure -f glibc-locales

Ensuite :

passwd  # Mot de passe `root`
useradd -m myuser  # Création d'un utilisateur
passwd myuser  # Mot de passe de l'utilisateur
gpasswd -a myser wheel  # Pour exécuter sudo
visudo  # Retirez un des commentaires pour les lignes avec wheel

Génération de fstab

cp /proc/mounts /etc/fstab

Retirez toutes les lignes qui ne sont pas /dev/mapper/cryptroot ou /dev/nvme0n1p1 (/boot). Remplacez pour / le dernier 0 avec un 1, et pour les autres (/boot, /var/log, /swap, /home, /.snapshots) le dernier 0 avec 2. Puis exécutez :

BOOT_UUID=$(blkid -s UUID -o value /dev/nvme0n1p1)
ROOT_UUID=$(blkid -s UUID -o value /dev/mapper/cryptroot)
sed -i "s/\/dev\/nvme0n1p1/UUID=$BOOT_UUID/" /etc/fstab
sed -i "s/\/dev\/mapper\/cryptroot/UUID=$ROOT_UUID/" /etc/fstab

echo "/swap/swapfile none swap defaults 0 0" >> /etc/fstab
echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0" >> /etc/fstab

Vérifiez le fichier. Exemple :

UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /           btrfs rw,relatime,space_cache=v2,subvolid=256,subvol=/@ 0 1
UUID=D5FA-4678                            /boot       vfat  rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixes,utf8,errors=remount-ro 0 2
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /home       btrfs rw,relatime,space_cache=v2,subvolid=257,subvol=/@home 0 2
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /var/log    btrfs rw,relatime,space_cache=v2,subvolid=258,subvol=/@var_log 0 2
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /swap       btrfs rw,relatime,space_cache=v2,subvolid=260,subvol=/@swap 0 2
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /.snapshots btrfs rw,relatime,space_cache=v2,subvolid=259,subvol=/@snapshots 0 2
/swap/swapfile                            none        swap  defaults 0 0
tmpfs                                     /tmp        tmpfs defaults,nosuid,nodev 0 0

Génération d’un fichier swap : si vous avez entre 8 et 64 Go de RAM, Void recommande d’avoir 3/2 de la RAM pour l’hibernation 5. Exemple avec 8 Go de RAM :

btrfs filesystem mkswapfile --size 12G --uuid clear /swap/swapfile
swapon /swap/swapfile
SWAP_OFFSET=$(btrfs inspect-internal map-swapfile -r /swap/swapfile)

rEFInd

refind-install
vim /boot/refind_linux.conf

Retirez les lignes et rajoutez avec les commandes suivante :

echo "\"Boot (quietly)\" \"rw root=UUID=$ROOT_UUID resume=UUID=$ROOT_UUID resume_offset=$SWAP_OFFSET quiet\"" >> /boot/refind_linux.conf
echo "\"Boot\" \"rw root=UUID=$ROOT_UUID resume=UUID=$ROOT_UUID resume_offset=$SWAP_OFFSET\"" >> /boot/refind_linux.conf

Pour optimiser les images initramfs 7:

echo "hostonly=yes" > /etc/dracut.conf.d/hostonly.conf

Pour terminer :

xbps-reconfigure -fa

swapoff /swap/swapfile
exit  # Pour quitter chroot
umount -R /mnt
reboot

Et voilà !


  1. https://docs.voidlinux.org/installation/index.html ↩︎

  2. https://docs.voidlinux.org/installation/live-images/prep.html ↩︎

  3. https://docs.voidlinux.org/installation/live-images/guide.html ↩︎

  4. https://wiki.archlinux.org/title/Partitioning#/boot ↩︎

  5. https://docs.voidlinux.org/installation/live-images/partitions.html ↩︎ ↩︎

  6. https://docs.voidlinux.org/installation/guides/chroot.html ↩︎

  7. https://fedoraproject.org/wiki/Features/DracutHostOnly ↩︎

< Précédent Suivant >