[Français] English

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

Suivez ce guide à vos risques et périls.

Image disque d’installation

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

Récupérez-la sur le site officiel. Dans la plupart des cas, ce qui vous intéresse est l’image “live image” dans les sections x86_64, base (choisissez glibc ou musl selon vos préférences). 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 que l’on a téléchargés 1:

# Allez voir
# "https://github.com/void-linux/void-packages/tree/master/srcpkgs/void-release-keys/files/"
# pour avoir un lien à jour ci-dessous
wget 'https://raw.githubusercontent.com/void-linux/void-packages/refs/heads/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 le disque externe où l’on a installé l’ISO Void. 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. Ensuite :

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 pour le Wi-Fi auquel vous vous connectez, 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 les données de votre disque illisibles si vous aviez des fichiers 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 subvol create /mnt/@
btrfs subvol create /mnt/@home
btrfs subvol create /mnt/@snapshots
btrfs subvol create /mnt/@var_log
btrfs subvol 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 choisissez 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

# Pour les distributions glibc
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

Dans /etc/fstab, retirez toutes les lignes qui ne sont pas /dev/mapper/cryptroot ou /dev/nvme0n1p1 (/boot). Remplacez pour la ligne contenant /boot le dernier 0 avec un 2 7. 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 0
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 0
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /var/log    btrfs rw,relatime,space_cache=v2,subvolid=258,subvol=/@var_log 0 0
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /swap       btrfs rw,relatime,space_cache=v2,subvolid=260,subvol=/@swap 0 0
UUID=c52c0f6d-b6b5-4871-8330-8f46c335d5ee /.snapshots btrfs rw,relatime,space_cache=v2,subvolid=259,subvol=/@snapshots 0 0
/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

Changez le fichier /boot/refind_linux.conf grâce aux commandes suivantes :

echo "" > /boot/refind_linux.conf
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 8:

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://wiki.archlinux.org/title/Fstab#Usage ↩︎

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

< Précédent Suivant >