PC1 KVM - Machine virtuelle Archlinux chiffrée LVM/LUKS (XFCE/KDE/GNOME)
Archlinux
Prérequis
Installer virt-viewer
1
yay -S virt-viewer
ISO archlinux
L’image peut être gravée sur un DVD, montée comme un fichier ISO, ou écrite directement sur une clé USB. Elle est destinée aux nouvelles installations uniquement ; un système Arch Linux existant peut toujours être mis à jour avec pacman -Syu
Les images pour l’installation d’Arch peuvent être téléchargées via BitTorrent ou ici même dans votre navigateur depuis l’un des miroirs Arch HTTP(S) (https://archlinux.org/download/)
Créer machine virtuelle avec image ISO
Vérifier si “archlinux” présent dans la liste
sudo virt-install --osinfo list |grep archlinux
–> archlinux
Installer en utilisant une image iso
1
2
3
4
5
6
7
8
9
10
11
12
sudo virt-install \
--osinfo archlinux \
--name vm-arch \
--memory 4096 \
--vcpus 2 \
--cpu host \
--hvm \
--disk path=/virtuel/KVM/vm-arch.qcow2,format=qcow2,size=40 \
--cdrom /home/yann/FreeUSB2To/iso/archlinux-2024.12.01-x86_64.iso \
--network bridge=bridge0 \
--boot uefi \
--graphics vnc
ATTENTION!!! L’activation du paramètre ``–boot uefi peut générer une erreur
ERROR erreur interne : Impossible d’exécuter ‘/usr/bin/swtpm_setup’`
le contenu du fichier /etc/libvirt/qemu.conf relatif à swtpm, remplacer
1
2
swtpm_user = "swtpm"
swtpm_group = "swtpm"
par
1
2
swtpm_user = "root"
swtpm_group = "root"
Reedémarrer le service
1
sudo systemctl restart libvirtd.service
Après exécution dans un terminal de la commande virt-install
et suivant le boot direct ou uefi
on arrive sur l’écran suivant en mode boot direct
On arrive sur le terminal en mode boot uefi
Clavier en français
1
loadkeys fr # en est en qwerty , il faut saisir 'loqdkeys'
Valider SSH pour la suite de l’installation:
- Modifier le mot de passe root :
passwd
–> rtyuiop - Relever l’adresse IP :
ip addr
–> 192.168.10.122 - Lancer sshd :
systemctl start sshd
- Depuis un poste distant :
ssh root@adresseIP
–>ssh root@192.168.10.122
Partitionnement
Obtenir le nom du disque
1
lsblk
On a une réponse de du type /dev/vda
Effacer le disque à l’aide de l’outil shred ou sgdisk
1
2
3
shred -v -n1 /dev/vda
# plus rapide
sgdisk --zap-all /dev/vda
Partitionner le disque de 40G en utilisant gdisk
1
gdisk /dev/vda
- La partition 1 doit être une partition de démarrage EFI (code: ef00) de 512 Mo.
- La partition 2 devrait être une partition Linux LVM (8e00).
La 2ème partition peut prendre le disque complet ou seulement une partie. N’oubliez pas d’écrire les modifications de la table de partition sur le disque à la fin de la configuration.
Une fois partitionné vous pouvez formater la partition de démarrage (la partition LVM doit être chiffrée avant qu’elle ne soit formatée)
1
mkfs.fat -F32 /dev/vda1
Chiffrement
Premièrement lancer modprobe pour dm-crypt
1
modprobe dm-crypt
Chiffrer le disque
1
2
3
cryptsetup luksFormat /dev/vda2
# saisie d'un mot de passe
SaouleTalonCognac
Ouvrez le disque avec le mot de passe défini ci-dessus
1
cryptsetup open --type luks /dev/vda2 cryptlvm # saisie du mot de passe
Vérifiez que le disque lvm existe
1
ls /dev/mapper/cryptlvm
Créer un volume physique
1
pvcreate /dev/mapper/cryptlvm # Physical volume "/dev/mapper/cryptlvm" successfully created.
Créer un groupe de volume nommé vg0
1
vgcreate vg0 /dev/mapper/cryptlvm # Volume group "vg0" successfully created
Créer des partitions logiques
1
2
3
lvcreate -L4G vg0 -n swap # Logical volume "swap" created.
lvcreate -L18G vg0 -n root # Logical volume "root" created.
lvcreate -l 100%FREE vg0 -n home # Logical volume "home" created.
Formater le système de fichiers sur les partitions logiques
1
2
3
mkfs.ext4 /dev/vg0/root
mkfs.ext4 /dev/vg0/home
mkswap /dev/vg0/swap
Monter les volumes et les systèmes de fichiers
1
2
3
4
5
6
mount /dev/vg0/root /mnt
mkdir -p /mnt/home
mkdir -p /mnt/boot
mount /dev/vg0/home /mnt/home
mount /dev/vda1 /mnt/boot
swapon /dev/vg0/swap
Installation des paquets essentiels
Installer le paquet de base, linux, firmware, lvm2, utilitaires
1
pacstrap /mnt base base-devel linux linux-firmware lvm2 nano
Fstab
Générer fstab
1
genfstab -U /mnt >> /mnt/etc/fstab
Chroot
chroot
dans le nouveausystème
1
arch-chroot /mnt
Le passage en chroot est caractérisé par le nouveau prompt
Heure
Définir l’heure locale (choisir une localité pertinente)
1
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
Réglez l’horloge
1
hwclock --systohc
Locales
Décommenter fr_US.UTF-8 UTF-8
ou toutes les localisations dont vous avez besoin dans /etc/locale.gen
Puis exécuter
1
locale-gen
Créer le fichier /etc/locale.conf
et définir la variable LANG correspondante
1
echo "LANG=fr_FR.UTF-8" > /etc/locale.conf
Une keymap persistante peut être définie dans /etc/vconsole.conf
, qui est lu par systemd au démarrage. La variable KEYMAP est utilisée pour spécifier la keymap.
XkbLayout sélectionne la disposition du clavier. Plusieurs dispositions peuvent être spécifiées dans une liste séparée par des virgules
1
2
3
echo "KEYMAP=fr
XKBLAYOUT=fr
" > /etc/vconsole.conf
Configuration réseau
Créer le fichier hostname (tout nom d’hôte de votre choix comme une ligne dans le fichier. Par exemple, «archyan»)
1
echo "archyan" > /etc/hostname
Terminez la configuration du réseau pour le nouvel environnement installé. Cela peut inclure l’installation d’un logiciel de gestion de réseau approprié NetworkManager, sa configuration si nécessaire et l’activation de son unité systemd pour son lancement au démarrage de la machine.
1
2
3
4
# Installer NetworkManager
pacman -Syu networkmanager
# Activer NetworkManager
systemctl enable NetworkManager
Initramfs
Parce que notre système de fichiers est sur LVM et chiffré, nous devrons activer les corrects “hooks” mkinitcpio.
Modifier le /etc/mkinitcpio.conf
.
- Remplacer udev –> systemd
- Remplacer consolefont –> sd-vconsole
- Ajouter après block, sd-encrypt et lvm2
1
HOOKS=(base systemd autodetect microcode modconf kms keyboard keymap sd-vconsole block sd-encrypt lvm2 filesystems fsck)
Régénérer initramfs
1
mkinitcpio -p linux
Mot de passe administrateur
Mot de passe root (rtyuiop)
1
passwd
Chargeur de démarrage systemd-boot
bootctl
En éxécutant bootctl install, systemd-boot essaiera de localiser ESP
à /efi, /boot, et /boot/efi. Pour définir esp vers un endroit différent, il est requis de rajouter l’option --esp-path=esp
(systemd-boot)
Installer systemd-boot
écrira par dessus n’importe quel esp/EFI/BOOT/BOOTX64.EFI (ou esp/EFI/BOOT/BOOTIA32.EFI pour l’UEFI IA32) existant, ex. la version Microsoft du fichier.
Installer un chargeur de démarrage (bootloader)
1
bootctl --path=/boot/ install
Créer un chargeur de démarrage. Modifier /boot/loader/loader.conf
.
Remplacer le contenu du fichier par :
1
2
3
4
echo "default arch.conf
timeout 3
editor 0
" > /boot/loader/loader.conf
edito 0
garantit que la configuration ne peut pas être modifiée au démarrage.
Afin d’obtenir l’UUID de la partition chiffrée “/dev/vda2”, exécuter la commande suivante
1
2
blkid |grep "/dev/vda2"
# /dev/vda2: UUID="16035587-0b5d-400e-85c3-2d1ac19a6309"
Créer une entrée bootloader dans /boot/loader/entries/arch.conf
1
2
3
4
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options rd.luks.name={UUID}=cryptlvm root=/dev/volume/root rw
- Remplacer
{UUID}
par16035587-0b5d-400e-85c3-2d1ac19a6309
- Remplacer
/dev/volume/root
par le volume logique root LVM/dev/vg0/root
Le fichier final /boot/loader/entries/arch.conf
1
2
3
4
5
echo "title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options rd.luks.name=16035587-0b5d-400e-85c3-2d1ac19a6309=cryptlvm root=/dev/vg0/root rw
" > /boot/loader/entries/arch.conf
Le fallback /boot/loader/entries/arch-fallback.conf
1
2
3
4
5
echo "title Arch Linux (fallback initramfs)
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options rd.luks.name=16035587-0b5d-400e-85c3-2d1ac19a6309=cryptlvm root=/dev/vg0/root rw
" > /boot/loader/entries/arch-fallback.conf
Résumé bootctl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
System:
Not booted with EFI
Available Boot Loaders on ESP:
ESP: /boot
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 257.3-1-arch)
└─/EFI/BOOT/BOOTX64.EFI (systemd-boot 257.3-1-arch)
Boot Loader Entries:
$BOOT: /boot
token: arch
Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Arch Linux
id: arch.conf
source: /boot//loader/entries/arch.conf (on the EFI System Partition)
linux: /boot//vmlinuz-linux
initrd: /boot//initramfs-linux.img
options: rd.luks.name=16035587-0b5d-400e-85c3-2d1ac19a6309=cryptlvm root=/dev/vg0/root rw
Paquets supplémentaires
Avant de terminer les étapes d’installation, vous pouvez installer des paquets supplémentaires pour la gestion utilisateur et réseau (ceux-ci sont inclus dans l’installateur mais ne sont normalement pas inclus dans l’installation elle-même)
1
pacman -Syu sudo iw iwd openssh git
Activer ssh
1
systemctl enable sshd
Utilisateur
Créer un utilisateur
1
2
3
useradd -m archie
passwd archie # archie49
echo "archie ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/10-archie
Sortie chroot et redémarrage
Sortie chroot
par exit ou ou par le raccourci Ctrl+D
1
exit
Démonter manuellement toutes les partitions
1
umount -R /mnt
Redémarrage, toutes les partitions encore montées seront automatiquement démontées par systemd. N’oubliez pas de retirer le support d’installation et vous pourrez vous connecter au nouveau système avec le compte root ou utilisateur
1
reboot
Connexion utilisateur
Se connecter utilisateur “archie”
Relever adresse , ip a
–> 192.168.10.194
Se connecter ssh
1
ssh archie@192.168.10.194
Hooks - Mise à jour auto gestionnaire amorçe UEFI
Lorsqu’il y a une nouvelle version de systemd-boot, le gestionnaire d’amorçe UEFI peut optionellement être réinstallé par l’utilisateur. Ceci peut être fait manuellement ou automatiquement
Créer le dossier hooks
1
sudo mkdir -p /etc/pacman.d/hooks
Créer le fichier suivant /etc/pacman.d/hooks/95-systemd-boot.hook
1
2
3
4
5
6
7
8
9
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Mise à jour systemd-boot...
When = PostTransaction
Exec = /usr/bin/systemctl restart systemd-boot-update.service
Installer yay
Installer yay
1
2
3
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Effacer dossier
1
sudo rm -r $HOME/yay
Configurer Wayland
Wayland est un protocole moderne et efficace pour l’affichage d’applications graphiques sous Linux. Il offre plusieurs avantages par rapport à l’ancien serveur d’affichage X.Org, comme une sécurité, une stabilité et des performances graphiques améliorées.
Guide to Set up Full Wayland with Arch Linux
Idéalement, vous devriez déjà avoir installé le package de base wayland . Ouvrez un terminal et s’il n’est pas installé
1
sudo pacman -S --needed wayland
Bureau XFCE
XFCE est un environnement de bureau léger et hautement personnalisable pour la plate-forme Linux.
Installer gestionnaire d’affichage GDM qui a le support complet de Wayland dans Arch Linux.
1
yay -S --needed gdm
Une fois installé, utilisez la commande ci-dessous pour installer quelques paquets Wayland.
- xorg-xwayland: Pour exécuter xclients sous Wayland
- xorg-xlsclients: Liste des applications client fonctionnant sur un écran (facultatif)
-
glfw-wayland: Packages GUI app dev pour Wayland
yay -S –needed xorg-xwayland xorg-xlsclients glfw-wayland
Installer le bureau XFCE
Avec la fenêtre du terminal ouverte, utilisez la commande pacman ou yay pour installer le package «xfce4». Veillez également à installer le package «xfce4-goodies» pour les bonus supplémentaires avec votre bureau.
1
yay -S xfce4 xfce4-goodies
Installer Firefox fr pour tester Wayland
1
yay -S --needed firefox-i18n-fr
Activer le gestionnaire d’affichage
1
sudo systemctl enable gdm
Une fois terminé, enregistrez et fermez le fichier. Et redémarre.
1
sudo reboot
On arrive sur la page de connexion
Bureau GNOME
Le gestionnaire d’affichage GDM a le support complet de Wayland dans Arch Linux.
D’abord, installez-le en utilisant la commande ci-dessous :
1
pacman -S --needed gdm
Une fois installé, utilisez la commande ci-dessous pour installer quelques paquets Wayland.
- xorg-xwayland: Pour exécuter xclients sous Wayland
- xorg-xlsclients: Liste des applications client fonctionnant sur un écran (facultatif)
-
glfw-wayland: Packages GUI app dev pour Wayland
sudo pacman -S –needed xorg-xwayland xorg-xlsclients glfw-wayland
Ensuite, installez le gnome et les applications associées avec les sessions Wayland en utilisant l’ensemble de commandes ci-dessous.
1
sudo pacman -S --needed gnome gnome-tweaks gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme
Laissez installer Firefox afin que vous puissiez tester Wayland fonctionne correctement avec GNOME.
1
sudo pacman -S --needed firefox
Une fois terminé, activez le gestionnaire d’affichage et le service NetworkManager.
1
2
3
sudo systemctl disable sddm
sudo systemctl enable gdm
sudo systemctl enable NetworkManager # si non activé
Une fois terminé, enregistrez et fermez le fichier. Et redémarre.
1
sudo reboot
Et dans l’écran de connexion, vous devriez voir l’option GNOME (Wayland). Sélectionnez et connectez-vous à la session Wayland de GNOME dans Arch Linux.
Paramètres -> Clavier , ajouter français et supprimer anglais US
Vérifier si wayland en terminal
Si je compare GNOME et KDE Plasma, GNOME a mieux fonctionné avec Wayland dans Arch Linux. Pas de problèmes importants ou d’écran clignotant dans les applications. Cela peut être dû aux changements récents effectués sur GNOME 44 pour Wayland, qui a atterri dans Arch Linux.
Aussi, Firefox fonctionne nativement dans Wayland dans GNOME, sans utiliser xwayland wrapper.
Firefox avec Wayland dans GNOME
GDM - Clavier français
Si non défini dans /etc/vconsole.conf
Saisie en qwerty sur la page d’authentification utilisateur
Appindicator
Appindicator est une extension assez pratique, et indispensable. Elle permet de rétablir en haut à droite de la barre principale de GNOME la zone de notification.
1
yay -S gnome-shell-extension-appindicator gnome-tweak-tool
vm-arch
Connexion utilisateur archie
Se connecter utilisateur “archie”
virt manager
Ajout presse-papier
- Modifier Affichage, passer de Serveur VNC à Serveur Spice
- Ajouter un matériel –> Canal , Channel(spice)
Installer spice-vdagent pour le presse papier
1
sudo pacman -S spice-vdagent
Bureau KDE Plasma
Les étapes suivantes supposent que vous disposez d’une installation de base d’Arch Linux sans environnement de bureau ni gestionnaire de fenêtres. Vous pouvez installer une version de base d’Arch Linux à l’aide du script archinstall
La configuration standard de KDE Plasma dans Arch Linux nécessite quelques modifications pour Wayland. Quelques paquets d’AUR sont nécessaires, assurez-vous donc de configurer Yay ou tout autre assistant AUR.
Gestionnaire graphique de session SDDM
Tout d’abord, installez un package sddm Wayland
1
yay -S sddm
Une fois installé, utilisez la commande ci-dessous pour installer quelques packages Wayland.
- xorg-xwayland : pour exécuter des xclients sous Wayland
- xorg-xlsclients : répertorier les applications clientes exécutées sur un écran (facultatif)
- qt5-wayland : API Qt pour Wayland
- glfw-wayland : packages de développement d’applications GUI pour Wayland (OPTIONNEL)
1
sudo pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland
KDE plasma
KDE est un projet de logiciel libre historiquement centré autour d’un environnement de bureau pour systèmes UNIX. Ce projet a évolué en un ensemble de programmes : KDE Framework, bibliothèques et API fournissant une couche d’abstraction logicielle multiplate-forme
Installer KDE plasma avec Wayland (choix par défaut)
On valide toutes les options par défaut sauf pour pipewire
1
2
# Simplifié
sudo pacman -S xorg plasma plasma-wayland-protocols
Autres choix pour installer KDE
1
2
3
4
5
# minimal
sudo pacman -S plasma-meta ark dolphin firefox git gwenview kcalc kdeconnect kinit konsole krunner kvantum kwrite okular packagekit-qt5 partitionmanager print-manager spectacle vlc xsettingsd
# complète
sudo pacman -S --needed plasma kde-applications
sudo pacman -S --needed plasma-wayland-protocols
Installer Firefox pour tester le bon fonctionnement de Wayland.
1
sudo pacman -S --needed firefox
Une fois terminé, activer le gestionnaire d’affichage et le service NetworkManager.
1
2
sudo systemctl enable sddm
sudo systemctl enable NetworkManager
Le gestionnaire d’affichage sddm a besoin d’un peu plus de réglages.
1
sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
1
2
3
[Theme]
# current theme name
Current=breeze
Activer le clavier virtuel
Installez qt5-virtualkeyboard : yay -S qt6-virtualkeyboard
Créer le fichier /etc/sddm.conf
avec le contenu suivant
1
2
[General]
InputMethod=qtvirtualkeyboard
Pour une prise en chrge des modifications, redémarrage de la machine
1
sudo systemctl reboot
Et dans l’écran de connexion, vous devriez voir l’option Wayland.
Sélectionnez et connectez-vous à la session Wayland de KDE Plasma dans Arch Linux.
SDDM affiche maintenant un bouton dans le coin inférieur gauche de l’écran de connexion pour ouvrir le clavier virtuel.
Clavier FR: Système -> Configuration du système -> Clavier
Pour savoir si wayland ou X11
1
echo $XDG_SESSION_TYPE
Si vous voulez forcer Firefox à utiliser Wayland, alors ouvrez /etc/environment
et ajoutez la ligne suivante.
1
MOZ_ENABLE_WAYLAND=1
Puis, redémarrer ou exécuter commande ci-dessous pour effet immédiat
1
source /etc/environnement
Ouvrez Firefox et allez à about:support
pour vérifier la valeur par rapport au “Protocole de fenêtrage”.
Vous pouvez également exécuter xlsclients
à partir du terminal pour voir quelles applications externes fonctionnent sous Wayland.
Performance de Wayland KDE Session de plasma en Arch
La consommation de mémoire est autour de 2 Go dans les sessions oisives Wayland avec Arch Linux.
Plymouth
Plymouth est disponible avec le paquet stable plymouth. Pour la version de développement, utilisez plymouth-git
1
yay -S plymouth
Par défaut, Plymouth enregistre les messages de démarrage dans /var/log/boot.log
, et n’affiche pas l’écran de projection graphique.
- Si vous voulez voir l’écran de projection, ajoutez splash aux paramètres du noyau.
- Si vous voulez un démarrage silencieux, ajoutez quiet aussi.
- Si vous voulez désactiver l’enregistrement, ajoutez
plymouth.boot-log=/dev/null
. Alternativement, ajoutezplymouth.nolog
qui désactive également la redirection console.
Pour démarrer Plymouth sur le boot , vous devez configurer initramfs pour créer des images incluant Plymouth.
Options des entrées bootloader
ajouter quiet splash
/boot/loader/entries/arch.conf
1
2
3
4
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options rd.luks.name={UUID}=cryptlvm root=/dev/volume/root rw quiet splash
/boot/loader/entries/arch-fallback.conf
1
2
3
4
title Arch Linux (fallback initramfs)
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options rd.luks.name=25a8633d-350a-43aa-9c24-a8ac32a3a2d0=cryptlvm root=/dev/vg0/root rw quiet splash
mkinitcpio
Ajouter plymouth au tableau HOOKS dans /etc/mkinitcpio.conf
1
HOOKS=(base systemd plymouth autodetect microcode modconf kms keyboard keymap sd-vconsole block sd-encrypt lvm2 filesystems fsck)
Si vous utilisez systemd, il doit être avant plymouth.
Assurez-vous de placer plymouth avant le cryptage sd-encrypt si votre système est chiffré avec dm-crypt.
Régénérer initramfs
1
sudo mkinitcpio -p linux
Installation Paquets
On commence par tout ce qui est graphique : gimp, cups (gestion de l’imprimante) et hplip (si vous avez une imprimante scanner Hewlett Packard). Le paquet python-pyqt5 est indispensable pour l’interface graphique de HPLIP+scan. Webkigtk2 étant indispensable pour la lecture de l’aide en ligne de Gimp. outil rsync, Retext éditeur markdown, firefox fr, thunderbird, libreoffice, gdisk, bluefish, Double Commander , Menulibre pour la gestion des menus , outils android clementine
1
2
3
4
5
6
7
8
9
yay -S gimp hplip libreoffice-fresh-fr thunderbird-i18n-fr jq figlet p7zip tmux calibre retext bluefish doublecmd-qt5 terminator filezilla minicom zenity android-tools yt-dlp qrencode zbar xclip nmap jre-openjdk-headless openbsd-netcat borg python-llfuse tigervnc xournalpp qbittorrent strawberry
# Autres avec compilation
yay -S freetube-bin signal-desktop
## NON INSTALLE
cups system-config-printer xsane gedit xterm gparted ldns
# Gestion des menus du bureau, construction du paquet avant installation
menulibre