[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 oĂč /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 >