🐧 Installer Arch Linux avec l'interface graphique Gnome

Mes notes pour installer Arch Linux avec l'interface graphique Gnome.

logo archlinux

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.

Version Date Commentaires
1 03/2014 Création du document
2 04/2021 Reformatage du document et mise en place LVM
2.1 06/2021 Correction de la commande de génération des packs de langue
2.2 11/2021 Correction syntaxe et orthographe, mise Ă  jour des images, remise en place de bash plutĂŽt que zsh
3 06/2022 Reformatage du document et ajout de la partie interface graphique Gnome
3.1 06/2022 Modification de l'installation pour chiffrer intégralement le disque et ajout des sources en fin de document
3.2 09/2024 Mise à jour de la liste des paquets, ajout de systemd-resolved dans la liste des services activés

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é.

archlinux boot media

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)

archlinux boot iso

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 est ef00.
  • 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.

archlinux fdisk

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 :

archlinux cryptsetup benchmark

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/sda2
archlinux cryptsetup cli command

Maintenant, ouvrons ce stockage (montage dans /dev/mapper/luks) et créons la partie lvm :

cryptsetup luksOpen /dev/sda2 luks
pvcreate /dev/mapper/luks

La 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/luks

Deux commandes sont Ă  apprendre pour afficher la configuration LVM : pvdisplay et vgdisplay.

archlinux pvcreate 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 tmp

Les 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.

archlinux lvcreate vgscan

Pour se faire, exécutez ces trois commandes :

modprobe dm_mod
vgscan
vgchange -ay

Le 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.

archlinux fdisk lvm

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-tmp

La 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 /mnt

Notre 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/home

Installation 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 lvm2

Une 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 iftop

Les 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/fstab

DĂ©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=C

Les 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.conf

Nom 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/hostname

Date & 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/localtime

Autre 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 --localtime

Gé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 julien

Nous 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.conf

J'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 --recheck

La 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-discards

Enfin, 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 nomCompteUtilisateur

Remplacez 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 ET le 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

Gnome est 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-plugin

En 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.service

Le 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