Installer Arch Linux avec l'interface graphique Gnome
Arch Linux se démarque un peu dans le monde Unix/Linux, notamment par sa philosophie et ses choix techniques. Sans partir dans les débats, je vous propose ici une documentation technique pour installer Arch Linux, chiffrer intégralement système et utiliser l’interface graphique Gnome.
Cet article se base en partie sur l’excellente procédure de Frederic BEZIES, à cette adresse : https://blog.fredericbezies-ep.fr/2016/10/01/guide-dinstallation-darchlinux-version-doctobre-2016/ et wiki Archlinux . Il ne s’agit pas d’une copie, juste d’une interprétation personnelle avec quelques inspirations.
Pourquoi Arch Linux ?#
J’utilise principalement la distribution Debian, que ce soit en tant que professionnel ou pas. Le système de paquets apt qu’utilise Debian évite au mieux les problèmes d’incompatibilité et empêche de casser son système (trop) rapidement. Toutefois, cette fiabilité a un prix : vous n’avez pas les dernières fonctionnalités tout de suite (parfois au bout de plusieurs mois).
Ce qui m’a plu avec Arch Linux, c’est son principe de mise à jour. On parle de Rolling Release. Les mises à jour seront disponibles très vite une fois sortie de développement et non pas après une période spécifique de tests et validations par l’équipe en charge de la distribution. Le risque de casse en rolling release est mesuré, mais réel, bien plus importants que sous Debian (par exemple). Ayez toujours des sauvegardes à jour et testez-les de temps à autre.
De plus, Arch Linux est connu pour être facilement hackable, internet regorge de nombreux articles sur le sujet. Néanmoins, précision qui a son importante : ce n’est pas une distribution à destination des débutants. Arch Linux vous permet un contrôle très vaste de votre système, ce qui implique que vous devez lui dire que faire. Si vous ne savez pas/ne comprenez pas ce que vous faites, préférez Debian.
Démarrage et préparation de l’installation#
Dans cette documentation, j’utiliserai l’hyperviseur de type 2 “Oracle VirtualBox”. Une machine virtuelle sera générée avec 1 vCPU et 2 Gb de mémoire vive. Un seul disque dur virtuel de 25 Gb y a été attaché.
Pré-requis#
Au démarrage de l’image ISO, le clavier sera par défaut en qwerty. Ayant un clavier avec la disposition azerty, il faut appuyer sur les touches loqdkeys fr (pour faire correspondre la touche A avec la touche Q)
Passons aux partitions.
Création du schéma de partition#
Il existe plusieurs utilitaires pour modifier les partitions du disque dur. Pour que ce soit le plus simple et intuitif possible, j’utilise l’outil cgdisk.
Saisissez le chemin du disque dur (souvent, par défaut ‘/dev/sda’). Pour trouver votre disque, effectuez la commande fdisk -l. Une interface graphique va alors apparaître pour que vous puissiez gérer vos partitions. Pour cet article, j’ai saisi cgdisk /dev/sda.
L’utilitaire CGDisk a pour particularité de forcer l’utilisation de GPT et des normes UEFI. Vous voyez donc votre disque dur vierge de toute partition dans la fenêtre. En bas de cette fenêtre, il y a des boutons, entre crochets, tels que “[ New ]”, “[ Write ]”, “[ Quit ]” …
Sélectionnez l’espace libre disponible avec les flèches directionnelles du clavier, puis dirigez-vous sur le bouton “[ New ]”. Appuyez ensuite sur la touche “Entrer” pour valider. Lorsque la question vous sera posée concernant le premier secteur, validez le choix par défaut.
Voici le schéma de partitions que je vous propose :
- partition
boot– 512Mo – : L’espace “boot” est, comme son nom l’indique, vous permettant d’installer tout le programme de boot (Grub2 dans notre cas) pour pouvoir démarrer le système. Le type de cette partition estef00. - partition
system– 20 Go – : Le système prend quelques Go une fois installé (sans surcouche graphique, et avec un bundle de paquets essentiels à une utilisation de base). Type de partition :"Linux Filesystem" 8300.
Il n’y a que deux partitions principales, une pour le démarrage, l’autre pour la partie LVM. Les partitions système (/, /home et /tmp) seront créées via les utilitaires LVM (vgcreate, pvcreate, lvcreate…).
Quand vous créez une partition, l’utilitaire vous demande de saisir le premier secteur - laissez par défaut ce qui est proposé. Vous n’êtes pas obligé de saisir un nom de partition. Pour enregistrer le schéma de partition sur le disque, sélectionnez le bouton “[ Write ]”.
Selon la configuration de vos disques, l’emplacement de l’installation, ou encore les autres partitions que vous avez sur votre système, les “/dev/sd…” peuvent être différents que dans l’exemple. Pour afficher la configuration, saisissez fdisk -l.
Volontairement, il n’y a pas de partition de type swap. Aujourd’hui, les machines ayant énormément de RAM et les logiciels étant performants, l’intérêt d’avoir une partition swap est limitée, pour ne pas dire inutile.
Création des systèmes de fichiers#
Le choix technique s’est porté sur LVM : possibilité de faire des snapshot, étendre/réduire des volumes à chaud, gestion assez simple des partitions…
Cependant, il vous faut créer un premier volume avec l’outil cryptsetup, qui sera la base comportant les volumes LVM. Le choix des algorithmes de chiffrement est crucial pour avoir un système chiffré rapide à l’usage. Lancez la commande cryptsetup benchmark - des tests seront effectués pendant quelques secondes, vous affichant un tableau avec les résultats des tests.
Dans la VM de test, voici ce que ça donne :
La cryptographie n’est pas du tout mon domaine, je suis un utilisateur des algorithmes mais pas plus. Dans l’image ci-dessus, le meilleur résultat est la ligne “aes-xts”, avec une clé de 256 bits. J’utiliserai donc cette configuration pour cryptsetup.
Voici les commandes à saisir pour initier le stockage :
mkfs.vfat -F32 /dev/sda1
cryptsetup --type luks2 --cipher aes-xts-plain64 --hash sha256 --iter-time 2500 --pbkdf argon2id --use-passphrase luksFormat /dev/sda2Maintenant, ouvrons ce stockage (montage dans /dev/mapper/luks) et créons la partie lvm :
cryptsetup luksOpen /dev/sda2 luks
pvcreate /dev/mapper/luksLa base étant maintenant présente, il est possible de créer le stockage avec lvm. Je l’appellerai “stoLocal”, libre à vous de changer ce nom.
vgcreate stoLocal /dev/mapper/luksDeux commandes sont à apprendre pour afficher la configuration LVM : pvdisplay et vgdisplay.
Créons les volumes logiques ; ici, je crée trois volumes (système, dossier pour les utilisateurs et le stockage temporaire), il vous est possible d’en créer d’autres si besoin.
lvcreate -L 8G stoLocal -n root
lvcreate -L 2G stoLocal -n home
lvcreate -L 1G stoLocal -n tmpLes volumes sont créés, mais pas encore exploitables. Par défaut, le module capable de montrer les volumes au système n’est pas chargé dans le noyau et donc les partitions ne sont pas encore visibles.
Pour se faire, exécutez ces trois commandes :
modprobe dm_mod
vgscan
vgchange -ayLe module est chargé dans le noyau, le stockage est maintenant vu en tant que “lvm2” (résultat attendu). De plus, les volumes logiques créés récemment seront désormais visibles. Effectuez un fdisk -l : les volumes sont dorénavant présents.
Montage des partitions système#
Formatons les volumes logiques avec btrfs !
mkfs.btrfs /dev/mapper/stoLocal-root
mkfs.btrfs /dev/mapper/stoLocal-home
mkfs.btrfs /dev/mapper/stoLocal-tmpLa partition à monter en premier est “root”, / pour installer le système et y créer les points de montage nécessaires.
mount /dev/mapper/stoLocal-root /mntNotre système est maintenant monté, deux répertoires essentiels doivent être créés, les dossiers /boot/efi et /home (pour le démarrage et le dossier utilisateur) :
mkdir /mnt/home
mkdir -p /mnt/boot/efi… puis monter ces dossiers pour pouvoir les exploiter et configurer le système correctement :
mount -t vfat /dev/sda1 /mnt/boot/efi
mount /dev/mapper/stoLocal-home /mnt/homeInstallation du systèmes#
MàJ du gestionnaire de paquets d’Arch Linux#
Depuis 2024, la liste des miroirs de paquets se génère automatiquement, en choisissant les serveurs les plus proches de chez vous. Le paquet reflector se charge de tester et sélectionner les serveurs pour pacman selon votre position.
Installation du système#
Au lancement de l’utilitaire pacman, les listes de miroirs de paquets seront mises à jour. Avec commande ci-dessous, vous aurez un système Arch Linux minimaliste et fonctionnel, avec quelques outils indispensables pour une utilisation bureautique (légère) quotidienne. En moyenne, il y a environ 220 Mo à télécharger dans les dépôts pour plus de 130 paquets, noyau compris.
pacstrap /mnt base base-devel linux lvm2Une fois le système installé, je vous suggère ces quelques paquets, pour une facilité d’utilisation de votre machine :
pacstrap /mnt vi vim nano grub efibootmgr less openssh sudo systemd-resolvconf ntp linux-firmware dhcpcd acpid cronie logrotate inetutils sysfsutils e2fsprogs netctl man-db man-pages ttf-dejavu ttf-liberation ttf-opensans ttf-joypixels lsof strace htop iotop iftopLes paquets que je vous présente sont tous là à titre indicatif. Il n’est pas nécessaire de tous les installer certes, mais ils vous seront utiles dans de nombreux cas.
Génération du fichier “fstab”#
Qu’est ce que le fichier “fstab” ? via Wikipédia
Le fichier fstab (File Systems TABle) est la table des différents systèmes de fichiers […] sous Unix/Linux : il contient une liste des disques utilisés au démarrage et des partitions de ces disques. Pour chaque partition, il indique comment elle sera utilisée et intégrée à l’arborescence du système de fichiers global (c’est-à-dire le point de montage). La création se fait aisément :
genfstab -Up /mnt >> /mnt/etc/fstabDéfinition de la langue système#
Il faut modifier un fichier de configuration permettant de générer le langage de la machine… Ou plutôt, la langue de l’interface. Le fichier à modifier est “locale.gen” (dans /etc/) : nano /mnt/etc/locale.gen
Dans ce fichier, toutes les langues supportés par Linux sont présentes. Par défaut, il n’y a aucune langue. Enlever le caractère de commentaire à la ligne fr_FR.UTF-8. Vous pouvez enregistrer & fermer le fichier une fois la modification apportée.
De plus, créez un fichier locale.conf pour prendre en compte la langue d’affichage souhaitée et y saisir LANG="fr_FR.UTF-8" :
nano /mnt/etc/locale.conf
# contenu
LANG="fr_FR.UTF-8"
LC_COLLATE=CLes fichiers de configuration sont maintenant prêts, lançons la génération des packs de langues : arch-chroot /mnt locale-gen.
Il faut aussi créer un fichier “vconsole.conf” pour que votre terminal puisse garder la configuration souhaitée et prendre en compte les caractères spécifiques (UTF-8), en plus de garder ces paramètres à chaque redémarrage.
echo "KEYMAP=fr" > /mnt/etc/vconsole.confNom de la machine#
Il faut maintenant donner un nom à notre station, pour qu’elle puisse être identifiable sur un réseau, mais aussi pour nous. Il faut pour cela créer un fichier “hostname” dans le dossier /etc/.
echo "nom_machine" > /mnt/etc/hostnameDate & heure de la machine#
Par défaut, les installations d’Arch Linux (tout comme les autres distributions Linux) sont à l’heure universelle “UTC”, qui peut être différente de votre fuseau horaire. Ici, je prends Paris. Le choix se fait en fonction des capitales des pays, visible dans /usr/share/zoneinfo/Europe/.
arch-chroot /mnt ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtimeAutre point intéressant, la partie horloge système. Ici, je fixe l’horloge sur le “localtime” (comme la date/heure machine).
arch-chroot /mnt hwclock --systohc --localtimeGénération des comptes utilisateurs#
N’oublions pas de créer un mot de passe pour l’utilisateur “root”, sans quoi vous ne pourrez pas accéder à la machine ! Saisissez la commande passwd et écrivez le mot de passe souhaité.
De plus, j’en profite pour créer un utilisateur “julien” et son mot de passe associé.
arch-chroot /mnt passwd root
arch-chroot /mnt useradd -g users -G storage -m -s /bin/bash julien
arch-chroot /mnt passwd julienNous avons donc créer un utilisateur et attribué un bash, les groupes “users” et “storage” (nécessaire pour avoir un minimum de droits sur le système et l’accès aux périphériques de stockage) puis nous lui avons créé un mot de passe.
Génération et configuration du Grub#
Il faut commencer tout d’abord par créer les “ramdisk”, pour gérer et générer correctement les fichiers nécessaires quant à l’utilisation de la mémoire de notre PC. Toutefois, pour rappel, nous utilisons LVM et le chiffrement du disque (module “encrypt”). Par défaut, le module n’est pas chargé et une configuration doit être effectuée :
sed -i '/^HOOK/s/filesystems/lvm2 encrypt filesystems/' /mnt/etc/mkinitcpio.confJ’utilise la commande “sed” pour faire la modification, mais il est tout à fait possible de faire un nano /mnt/etc/mkinitcpio.conf et de recherchez la ligne “HOOKS=(…)”, puis y ajouter entre les parenthèses les modules lvm2 et encrypt. Les autres modules déjà présents sont nécessaires, ne les supprimez pas.
Maintenant, générons ce ramdisk : arch-chroot /mnt mkinitcpio -p linux
Étape suivante, le démarrage. Il convient de créer le fichier capable de démarrer tous nos périphériques lors du boot de notre machine, tout en détectant le noyau Linux à utiliser / lancer. La commande est commune à toutes les distributions Linux, y comprit Arch Linux.
Générons ensuite le GRUB UEFI dans /boot/efi/EFI/ et ses modules :
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheckLa génération se fait assez rapidement. En cas d’erreur, les messages s’afficheront immédiatement. L’exécution de la commande retourne normalement “Installation terminée, sans erreurs”. Si vous avez des messages d’erreur, il faut corriger le problème dès maintenant, sans quoi vous ne pourrez pas démarrer votre machine.
Une modification manuelle doit être effectuée au niveau du grub, pour prendre en compte le conteneur LUKS : nano /mnt/etc/default/grub. Ajoutez dans la ligne entre les guillemets de GRUB_CMDLINE_LINUX ceci :
cryptdevice=/dev/sda2:luks:allow-discardsEnfin, effectuez cette commande pour créer les fichiers “grub” : arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg.
Finalisation de l’installation et redémarrage#
Dernière chose avant d’être de redémarrer, l’activation de quelques services. En effet, il est souhaitable d’avoir des services déjà prêts à l’emploi une fois la machine démarrée, ça évitera aussi des recherches fastidieuses.
arch-chroot /mnt systemctl enable {dhcpcd,ntpd,acpid,cronie,system-resolved}Nous pouvons maintenant terminer l’installation ! Démontez le système installé via la commande umount -R /mnt, redémarrez la machine et entrez dans votre nouvelle machine !
Installation de l’interface graphique Gnome#
Dans Arch Linux, le groupe d’utilisateurs disposant de droits privilégiés s’intitule “wheel”. Il se peut que vous ayez changé ce paramètre pour que ce soit le groupe sudo en lieu et place à wheel. Pour ce faire, ajouter votre compte utilisateur dans le groupe concerné :
su root
# saisir le mot de passe root
usermod -aG wheel nomCompteUtilisateurRemplacez nomCompteUtilisateur par votre nom d’utilisateur (dans ce document, ce serait “julien”).
Installation du serveur graphique#
Tout commence par l’installation du serveur “X.Org” avec la commande sudo pacman -S xorg.
Il est possible d’utiliser Wayland, attention cependant à la compatibilité de vos applications. Si vous souhaitez essyer, saisissez la commande sudo pacman -S wayland. Ces paquets ne sont pas liés à l’interface graphique gnome.
Les dépendances seront installées automatiquement. Vous avez le nécessaire pour lancer la majorité des interfaces graphiques. Toutefois, vous ne pourrez lancer l’interface seulement après avoir installé le pilote de votre carte graphique.
Installation du pilote graphique#
Machine disposant d’un GPU physique (type AMD ou nVidia)#
Arch Linux dispose dans ses dépôts de nombreux paquets pour gérer la majorité des GPU disponibles sur le marché. Vous pouvez afficher la liste de tous les drivers disponibles par la commande : sudo pacman -Ss xf86-video. Attention, la liste est longue… !
Pour que ce soit plus simple, voici une petite liste des pilotes usuels :
- Intel – libre :
sudo pacman -S **xf86-video-intel** - nVidia – libre :
sudo pacman-S **xf86-video-nouveau** - nVidia – propriétaire :
sudo pacman-S **nvidia** - ATI – libre :
sudo pacman-S **xf86-video-ati** - ATI – propriétaire :
sudo pacman-S **xf86-video-admgpu**
Comme vous pouvez le constater, les pilotes libres commencent par “xf86-video-”.
- VMWare
Si vous avez installé votre machine virtuelle dans VMWare Player ou Workstation, le paquet “xf86-video-vmware” aura tout le nécessaire : sudo pacman -S xf86-video-vmware.
- Virtualbox
Procédure assez simple aussi pour Virtualbox, installez le paquet xf86-video-vesa.
Une précaution est à prendre quant aux GPU physiques : vous ne devez pas installer le pilote propriétaire ETle pilote libre. Pour les PC Portable disposant de la technologie “Optimus” d’nVidia, vous devrez installer en plus le paquet “bumblebee” (et bon courage pour réussir à faire fonctionner correctement cette technologie).
Installation de Gnome#
Gnomeest une interface graphique pour Linux (toute distributions confondues). L’installation se fait via cette commande :
sudo pacman -S gnome-control-center gnome-icon-theme gnome-session gnome-shell gnome-tweaks nautilus gnome-power-manager xdg-user-dirs-gtk gdm gnome-software-packagekit-pluginEn moyenne, 300 Mo sont à télécharger et l’installation va peser plus d’1,2 Go sur le disque. Il n’y a pas que l’interface graphique dans le méta-paquet “Gnome” : de nombreux outils (calculatrice, calendrier, bloc-notes, terminal…) seront aussi installés.
Lorsque Gnome est installé, il est maintenant possible de lancer et d’activer le serveur gestionnaire des fenêtres, vous permettant ainsi d’utiliser l’interface graphique :
sudo systemctl enable gdm.serviceLe service “gdm” sera lancé à chaque démarrage de l’ordinateur, affichant ainsi la mire de connexion.
Fin de l’installation#
Notre installation est maintenant complète avec un système d’exploitation à jour, des paquets essentiels pour une utilisation basique, un premier utilisateur configuré et une interface graphique.
Il faut donc redémarrer votre machine, pour tester la bonne mise en route du système. Profitez bien de votre nouvelle machine !
Sources#
- https://blog.fredericbezies-ep.fr/2016/10/01/guide-dinstallation-darchlinux-version-doctobre-2016/
- https://wiki.archlinux.org/
- https://wiki.archlinux.org/title/dm-crypt/Device_encryption#Encryption_options_for_LUKS_mode
- https://wiki.archlinux.org/title/dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS
- https://gist.github.com/mjnaderi/28264ce68f87f52f2cabb823a503e673
- Mots-clés
- #archlinux #linux #gnome
- Auteur
- Julien HOMMET
- date +"%Y-%m-%d"
- Temps_lecture
- 14 minutes
- quantité_mots
- 2770 mots
- Catégorie
- tuto
- maj $(date +"%Y-%m-%d")