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Ă !