Installation d’Arch Linux (UEFI + Wi Fi + Bureau) sans la souffrance habituelle

Cet article vous a aidé ?

Installation d’Arch Linux (UEFI + Wi‑Fi + Bureau) sans la souffrance habituelle

La plupart des douleurs lors d’une installation d’Arch ne viennent pas de « Linux c’est dur ». Elles proviennent d’une mort par mille petites hypothèses : le mauvais disque, la mauvaise horloge, le mauvais nom de périphérique Wi‑Fi, la mauvaise cible du chargeur de démarrage, la mauvaise idée de ce que « UEFI » signifie sur cet ordinateur portable.

Si vous traitez l’installation comme une modification en production — identifier le système, enregistrer l’état, effectuer un changement à la fois, vérifier, puis continuer — Arch devient ennuyeux. Ennuyeux, c’est bien. Ennuyeux, ça démarre.

L’état d’esprit production : comment ne pas briquer son propre portable

L’installation d’Arch n’est pas un rite de passage. C’est une demande de changement. Votre objectif est un système amorçable avec réseau, un bureau et une voie de récupération. C’est tout. Le superflu est optionnel.

Règles qui évitent les désastres classiques

  • Identifiez le disque cible de trois manières différentes avant d’écrire une table de partitions. Les humains sont mauvais avec « /dev/nvme0n1 vs /dev/nvme1n1 » à 1h du matin.
  • Faites du statut UEFI un fait, pas une impression. Si /sys/firmware/efi n’existe pas, vous n’êtes pas en mode UEFI, peu importe ce que l’écran du firmware prétend.
  • Réseau d’abord, installation ensuite. Un système à moitié installé sans réseau est une erreur évitable.
  • Gardez-le réversible. Utilisez un schéma de partitions simple, laissez l’ESP intacte et évitez les astuces de démarrage le premier jour.
  • Privilégiez les choix par défaut que d’autres peuvent déboguer. systemd-boot + NetworkManager + un bureau grand public, c’est ennuyeux. C’est pour cela que c’est bien.

Une citation qui devrait figurer dans chaque runbook d’astreinte, attribuée à une voix SRE notable (paraphrase d’une idée de Ben Treynor Sloss, Google SRE) : idée paraphrasée : la fiabilité est une fonctionnalité, et vous la concevez intentionnellement — pas en espérant que vos changements se comportent.

Blague #1 : Le moyen le plus rapide de trouver le mauvais disque est de partitionner le mauvais disque. Le deuxième plus rapide est d’exécuter lsblk en premier.

Faits intéressants et brève histoire (parce que le contexte évite les erreurs)

  1. UEFI a remplacé l’ancien monde BIOS non seulement pour les disques plus gros, mais pour un gestionnaire de démarrage standardisé et un environnement pré-amorçage. Cette « standardisation » varie encore énormément selon le fabricant.
  2. GPT n’est pas juste « la nouvelle table de partitions ». Elle stocke des en-têtes redondants et des CRC, ce qui explique pourquoi on peut parfois récupérer d’une corruption partielle.
  3. La partition système EFI (ESP) est un système de fichiers FAT par spécification. Elle n’existe pas pour Windows ; elle existe pour le firmware. Traitez-la comme une infrastructure partagée.
  4. systemd-boot s’appelait autrefois gummiboot. Le renommage n’était pas cosmétique : il signifiait qu’il fait partie de l’écosystème systemd et reste volontairement minimal.
  5. wpa_supplicant est la colonne vertébrale du Wi‑Fi depuis des années, mais beaucoup d’utilisateurs interagissent avec lui indirectement via iwd ou NetworkManager. Déboguer implique souvent de savoir quelle couche vous utilisez réellement.
  6. Le rolling release d’Arch et pacman vous poussent vers des noyaux et pilotes récents, ce qui est excellent pour les nouveaux portables et un peu piquant pour les équipes « ne touchez pas à ma station de travail ».
  7. Les subvolumes Btrfs sont devenus populaires sur le bureau en partie parce que les snapshots sont un véritable levier opérationnel lorsque les mises à jour tournent mal.
  8. Les mises à jour microcode (Intel/AMD) ne sont pas de simples « tweaks de performance ». Elles apportent des correctifs de bugs CPU qui peuvent compter pour la stabilité et la sécurité.

Vérifications préalables depuis l’ISO live (UEFI, disques, Wi‑Fi)

Démarrez l’ISO Arch. Si possible, utilisez la dernière image mensuelle pour que votre noyau et le firmware Wi‑Fi ne soient pas préhistoriques. Vous allez valider trois choses avant de toucher au stockage : mode UEFI, heure et détection des périphériques réseau.

Tâche 1 : Confirmez que vous êtes en mode UEFI

cr0x@server:~$ ls /sys/firmware/efi
config_table  efivars  fw_platform_size  runtime  runtime-map  systab

Ce que ça signifie : Si ce répertoire existe et contient des entrées, l’ISO a démarré en mode UEFI.

Décision : Si c’est absent, redémarrez et choisissez l’option de démarrage UEFI dans le firmware (souvent il y a deux entrées pour la même clé USB). Ne poursuivez pas un plan UEFI en mode legacy.

Tâche 2 : Trouvez vos disques et comprenez la nomenclature

cr0x@server:~$ lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE,MOUNTPOINTS
NAME         MODEL                 SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1      Samsung SSD 980 PRO  931.5G disk
nvme0n1p1                          512M part vfat
nvme0n1p2                          100G part
nvme0n1p3                        831.0G part
sda          USB SanDisk 3.2       28.7G disk iso9660

Ce que ça signifie : Vous pouvez voir le NVMe interne (probablement votre cible) et le périphérique ISO USB (pas votre cible). Les modèles comptent ; les noms mentent.

Décision : Notez le disque cible (par ex. /dev/nvme0n1). Si plusieurs disques internes existent, décidez maintenant lequel vous allez installer et lequel vous laisserez intact.

Tâche 3 : Vérifiez l’horloge (parce que TLS déteste les voyages dans le temps)

cr0x@server:~$ timedatectl
               Local time: Sat 2026-02-05 12:41:02 UTC
           Universal time: Sat 2026-02-05 12:41:02 UTC
                 RTC time: Sat 2026-02-05 12:41:01
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no

Ce que ça signifie : Vous n’êtes pas encore synchronisé. Si l’horloge est fausse, les téléchargements de paquets et les vérifications TLS des miroirs peuvent échouer de façons qui ressemblent à des problèmes réseau.

Décision : Si le Wi‑Fi est actif, synchronisez l’heure. Si le Wi‑Fi n’est pas actif, activez d’abord le Wi‑Fi, puis revenez ici.

cr0x@server:~$ timedatectl set-ntp true

Wi‑Fi sur l’ISO Arch : faire fonctionner, puis maintenir

Sur les ISO Arch modernes, votre meilleure voie est généralement iwd + iwctl (souvent déjà présent) ou NetworkManager (installer plus tard sur le système cible). Le rôle de l’environnement live est simple : se connecter de manière fiable assez longtemps pour installer.

Tâche 4 : Identifier le périphérique Wi‑Fi et le pilote

cr0x@server:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
2: wlp0s20f3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DORMANT group default qlen 1000

Ce que ça signifie : L’interface Wi‑Fi existe (wlp0s20f3). Si vous ne voyez pas d’interface sans fil, vous êtes dans le domaine pilote/firmware.

Décision : Si aucune interface sans fil n’apparaît, vérifiez dmesg pour des erreurs de firmware et confirmez votre matériel.

cr0x@server:~$ dmesg -T | grep -iE 'firmware|iwlwifi|ath|brcm|rtw'
[Sat Feb  5 12:44:11 2026] iwlwifi 0000:00:14.3: loaded firmware version 78.8f3d2a8a.0

Ce que ça signifie : Le firmware est chargé. C’est vert.

Décision : Continuez pour vous connecter. Si vous voyez « failed to load firmware », vous pourriez avoir besoin d’une ISO plus récente ou du bon paquet firmware plus tard ; pour l’ISO live, une image plus récente est généralement plus rapide que des acrobaties.

Tâche 5 : Se connecter avec iwctl (iwd)

cr0x@server:~$ iwctl
[iwd]# device list
                                    Devices
----------------------------------------------------------------
  Name              Address          Powered   Adapter   Mode
----------------------------------------------------------------
  wlp0s20f3         34:de:1a:xx:xx   on        phy0      station

[iwd]# station wlp0s20f3 scan
[iwd]# station wlp0s20f3 get-networks
                               Available networks
----------------------------------------------------------------
  Network name                    Security      Signal
----------------------------------------------------------------
  CorpGuest                       open          -63 dBm
  HomeNet                         psk           -48 dBm

[iwd]# station wlp0s20f3 connect HomeNet
Type the network passphrase for HomeNet psk.
Passphrase: ********

Ce que ça signifie : Vous pouvez scanner et vous connecter. La force du signal compte ; « -85 dBm » est l’endroit où les installations meurent au milieu d’un téléchargement.

Décision : Si le signal est faible, rapprochez-vous, changez de bande, ou utilisez un partage de connexion. Corrigez la physique avant de déboguer des « erreurs pacman aléatoires ».

Tâche 6 : Vérifier l’obtention d’une IP et que le DNS fonctionne

cr0x@server:~$ ip addr show wlp0s20f3
2: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 34:de:1a:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.44/24 brd 192.168.1.255 scope global dynamic wlp0s20f3
       valid_lft 86371sec preferred_lft 86371sec
cr0x@server:~$ resolvectl status
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1

Link 2 (wlp0s20f3)
Current Scopes: DNS
     Protocols: +DefaultRoute

Ce que ça signifie : Vous avez DHCP et DNS configurés via systemd-resolved dans l’environnement live ISO.

Décision : Si le DNS est cassé, ne le « réparez » pas avec des bidouilles aléatoires de /etc/resolv.conf tout de suite. Confirmez d’abord le DNS du routeur, puis essayez un autre réseau. Vous pouvez survivre à une installation instable, mais vous vous détesterez.

Partitionnement que vous pourrez expliquer au Vous du futur

UEFI + GPT. Une ESP. Une racine. Optionnellement un swap. C’est le socle adulte. Si vous faites du dual-boot, conservez l’ESP existante ; ne créez pas deux ESP sauf si vous aimez la roulette firmware.

Disposition par défaut sensée (portable mono-disque)

  • ESP : 512 MiB, type EFI System, FAT32, montée sur /boot (ou /efi). Choisissez une option et restez cohérent.
  • Racine : le reste (ou la majeure partie) en ext4 ou Btrfs, montée sur /.
  • Swap : optionnel. Si vous voulez l’hibernation, il faut un swap dimensionné pour la RAM (et une marge supplémentaire).

Tâche 7 : Inspecter la table de partitions existante avant de modifier

cr0x@server:~$ sgdisk -p /dev/nvme0n1
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 980 PRO
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 8A2D7C7D-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Partition table holds up to 128 entries
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB  EF00  EFI system partition
   2         1050624      210763775   100.0 GiB  8300  Linux root
   3       210763776     1953523711   831.0 GiB  8300  Linux home

Ce que ça signifie : Vous avez déjà une ESP et une séparation root/home. Parfait si c’est ce que vous voulez.

Décision : Si vous réinstallez, décidez si vous réutilisez p1 comme ESP et reformatez p2/p3. En dual-boot, ne supprimez pas l’ESP à moins d’apprécier les week-ends de récupération.

Tâche 8 : Créer des partitions avec parted (exemple : disque neuf)

cr0x@server:~$ parted -s /dev/nvme0n1 mklabel gpt
cr0x@server:~$ parted -s /dev/nvme0n1 mkpart ESP fat32 1MiB 513MiB
cr0x@server:~$ parted -s /dev/nvme0n1 set 1 esp on
cr0x@server:~$ parted -s /dev/nvme0n1 mkpart root 513MiB 100%

Ce que ça signifie : Label GPT créé ; la première partition est l’ESP, la seconde est la racine.

Décision : Si vous avez besoin d’un /home séparé ou d’un swap, ajoutez-les maintenant. Sinon, gardez la simplicité : un seul système de fichiers est simple à sauvegarder et à réinstaller.

Tâche 9 : Formater l’ESP et la racine

cr0x@server:~$ mkfs.fat -F32 /dev/nvme0n1p1
mkfs.fat 4.2 (2021-01-31)
cr0x@server:~$ mkfs.ext4 -F /dev/nvme0n1p2
mke2fs 1.47.2 (2025-01-05)
Creating filesystem with 244170752 4k blocks and 61046784 inodes
Filesystem UUID: 8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Ce que ça signifie : Les systèmes de fichiers sont créés ; ext4 affiche le nombre de blocs et l’UUID, qui apparaîtront dans fstab.

Décision : Si vous vous attendiez à Btrfs et que vous venez de formater en ext4, arrêtez-vous et corrigez. Oui, j’ai vu des gens « convertir plus tard » et ne jamais le faire.

Choix de système de fichiers : ext4 vs Btrfs (et ce que j’installerais)

Ext4 reste le système « je veux que mon portable démarre tous les jours ». Btrfs est « je veux des snapshots et j’accepte de comprendre les subvolumes ». Les deux vont bien. Choisissez selon vos habitudes opérationnelles, pas selon les débats Reddit.

Mon avis tranché

  • Choisissez ext4 si c’est votre première installation Arch, si vous valorisez la prédictibilité et si votre stratégie de sauvegarde est « je promets de le faire plus tard ».
  • Choisissez Btrfs si vous allez réellement utiliser les snapshots (avant mise à jour, avant changements de noyau), et si vous êtes prêt à maintenir une mise en place cohérente.

Tâche 10 (optionnelle) : Disposition Btrfs qui n’embrouillera pas

cr0x@server:~$ mkfs.btrfs -f /dev/nvme0n1p2
btrfs-progs v6.15
cr0x@server:~$ mount /dev/nvme0n1p2 /mnt
cr0x@server:~$ btrfs subvolume create /mnt/@
Create subvolume '/mnt/@'
cr0x@server:~$ btrfs subvolume create /mnt/@home
Create subvolume '/mnt/@home'
cr0x@server:~$ umount /mnt
cr0x@server:~$ mount -o subvol=@,compress=zstd:3 /dev/nvme0n1p2 /mnt
cr0x@server:~$ mkdir -p /mnt/home
cr0x@server:~$ mount -o subvol=@home,compress=zstd:3 /dev/nvme0n1p2 /mnt/home

Ce que ça signifie : Des subvolumes séparés permettent de snapshotter la racine sans snapshotter home à chaque fois.

Décision : Si vous faites ça, engagez-vous. « Un subvolume aujourd’hui, onze demain » est la manière de construire une station de travail non débogable.

Installation de base : pacstrap, fstab, locale, heure

Maintenant on fait la partie ennuyeuse qui devrait rester ennuyeuse. Montez les systèmes de fichiers, installez les paquets de base, générez fstab, et configurez l’heure/locale. Gardez votre ensemble d’installation petit. Vous pouvez toujours ajouter des paquets. Retirer la confusion est plus difficile.

Points de montage

cr0x@server:~$ mount /dev/nvme0n1p2 /mnt
cr0x@server:~$ mkdir -p /mnt/boot
cr0x@server:~$ mount /dev/nvme0n1p1 /mnt/boot

Tâche 11 : Choisir des miroirs (sanity rapide, pas nerderie de miroirs)

cr0x@server:~$ reflector --country "United States" --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

Ce que ça signifie : Le mirrorlist est rafraîchi pour un ensemble par défaut raisonnable.

Décision : Si reflector échoue à cause du DNS ou TLS, arrêtez et corrigez l’heure/le réseau. Ne continuez pas avec un gestionnaire de paquets à moitié cassé.

Tâche 12 : Installer le système de base + essentiels

cr0x@server:~$ pacstrap -K /mnt base linux linux-firmware sof-firmware nano sudo man-db man-pages networkmanager iwd
:: Synchronizing package databases...
 core                 129.2 KiB   623 KiB/s 00:00 [######################] 100%
 extra               1640.8 KiB  4.21 MiB/s 00:00 [######################] 100%
:: Installing packages...
(1/155) installing filesystem ...
(155/155) installing linux ...

Ce que ça signifie : L’OS de base est installé. -K copie le keyring dans le nouveau système pour que la confiance pacman fonctionne immédiatement dans le chroot.

Décision : Si vous avez du matériel audio moderne, conservez sof-firmware. Pour les portables, cela évite les surprises « pas de périphérique son ».

Générer fstab et chroot

cr0x@server:~$ genfstab -U /mnt >> /mnt/etc/fstab
cr0x@server:~$ arch-chroot /mnt

Tâche 13 : Définir le fuseau horaire, l’horloge matérielle et la locale

cr0x@server:/# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
cr0x@server:/# hwclock --systohc
cr0x@server:/# sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
cr0x@server:/# locale-gen
Generating locales...
  en_US.UTF-8... done
Generation complete.
cr0x@server:/# printf "LANG=en_US.UTF-8\n" > /etc/locale.conf

Ce que ça signifie : Vous définissez une locale prévisible et un comportement d’heure cohérent.

Décision : Si vous faites du dual-boot avec Windows, envisagez de laisser le RTC en heure locale côté Windows plutôt que de casser Linux. Linux devrait rester sensé (RTC UTC est sensé).

Tâche 14 : Nom d’hôte et services réseau de base

cr0x@server:/# printf "archbox\n" > /etc/hostname
cr0x@server:/# systemctl enable NetworkManager
Created symlink '/etc/systemd/system/multi-user.target.wants/NetworkManager.service' → '/usr/lib/systemd/system/NetworkManager.service'.

Ce que ça signifie : NetworkManager démarrera au boot et gérera le Wi‑Fi sur votre bureau comme un OS normal.

Décision : Pour portables/bureaux, NetworkManager est le bon choix par défaut. Réservez « systemd-networkd partout » pour les serveurs, ou pour les gens qui aiment écrire du YAML avec des sentiments.

Utilisateurs, sudo et microcode

cr0x@server:/# passwd
New password:
Retype new password:
passwd: password updated successfully
cr0x@server:/# useradd -m -G wheel -s /bin/bash cr0x
cr0x@server:/# passwd cr0x
New password:
Retype new password:
passwd: password updated successfully
cr0x@server:/# EDITOR=nano visudo

Ce que ça signifie : Vous avez un utilisateur non-root dans le groupe wheel. Dans visudo, vous devez décommenter %wheel ALL=(ALL:ALL) ALL.

Décision : Ne conduisez pas votre usage quotidien en root. Ce n’est pas hardcore ; c’est négligé.

cr0x@server:/# pacman -S --noconfirm intel-ucode
resolving dependencies...
looking for conflicting packages...
Packages (1) intel-ucode-20260120.1-1
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                     [######################] 100%
(1/1) installing intel-ucode                       [######################] 100%

Ce que ça signifie : Le microcode est installé. Pour AMD, utilisez amd-ucode.

Décision : Installez le bon paquet microcode maintenant. C’est peu d’effort et cela réduit des instabilités mystérieuses.

Chargeur d’amorçage en UEFI : systemd-boot proprement

Sur les portables UEFI, systemd-boot est un excellent choix par défaut : minimal, prévisible, et il n’essaie pas de devancer le firmware. GRUB va bien aussi, mais si vous n’avez pas besoin de ses fonctionnalités, n’en payez pas la complexité.

Tâche 15 : Installer systemd-boot sur l’ESP

cr0x@server:/# bootctl install
Created "/boot/EFI/systemd".
Created "/boot/EFI/BOOT".
Created "/boot/loader".
Created "/boot/loader/entries".
Random seed file /boot/loader/random-seed successfully written (32 bytes).
Created EFI boot entry "Linux Boot Manager".

Ce que ça signifie : Les fichiers du chargeur sont placés sur l’ESP et une entrée NVRAM a été créée.

Décision : Si bootctl se plaint de ne pas trouver l’ESP, votre montage de /boot est erroné. Corrigez les montages avant de continuer.

Tâche 16 : Créer une entrée loader avec le bon identifiant root

Obtenez l’UUID du système de fichiers racine :

cr0x@server:/# blkid /dev/nvme0n1p2
/dev/nvme0n1p2: UUID="8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="root" PARTUUID="f0a1b2c3-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Ce que ça signifie : Vous avez l’UUID pour les paramètres du noyau et la vérification du fstab.

Décision : Préférez l’UUID dans la ligne de commande du noyau. Les noms de périphériques peuvent changer ; les UUID ne changent pas (sauf si vous reformatez).

Créez /boot/loader/entries/arch.conf :

cr0x@server:/# cat > /boot/loader/entries/arch.conf <<'EOF'
title   Arch Linux
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options root=UUID=8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
EOF

Et définissez une configuration loader par défaut :

cr0x@server:/# cat > /boot/loader/loader.conf <<'EOF'
default arch.conf
timeout 3
console-mode max
editor no
EOF

Décision : Gardez le timeout court. Si vous avez besoin de déboguer, vous pouvez toujours appuyer sur une touche. Si vous le laissez long, vous le regarderez tous les jours.

Tâche 17 : Générer l’initramfs et vérifier l’installation du noyau

cr0x@server:/# mkinitcpio -P
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  - Building image with: /usr/bin/mkinitcpio -g /boot/initramfs-linux.img
==> Image generation successful

Ce que ça signifie : Votre initramfs existe sur le /boot monté sur l’ESP, là où systemd-boot ira le chercher.

Décision : Si vous avez monté l’ESP sur /boot, c’est correct. Si vous l’avez montée sur /efi, votre noyau et initramfs vivent probablement sur la racine — configuration différente. Choisissez une approche et restez cohérent.

Configuration du bureau : NetworkManager, pilotes GPU, KDE/GNOME

Démarrer est le premier jalon. Un bureau utilisable est le deuxième. L’astuce : activez les bons services, installez les bons pilotes, et évitez la manœuvre « j’ai installé trois gestionnaires d’affichage par sécurité ».

Tâche 18 : Activer NetworkManager et (optionnellement) le backend iwd

Vous avez déjà activé NetworkManager. Si vous voulez que NetworkManager utilise iwd au lieu de wpa_supplicant, définissez-le explicitement.

cr0x@server:/# mkdir -p /etc/NetworkManager/conf.d
cr0x@server:/# cat > /etc/NetworkManager/conf.d/wifi_backend.conf <<'EOF'
[device]
wifi.backend=iwd
EOF

Décision : Ne mélangez pas les piles Wi‑Fi au hasard. Choisissez-en une, puis déboguez au sein de ce système.

Tâche 19 : Installer la pile graphique (choisissez une voie)

Identifiez votre ou vos GPU :

cr0x@server:/# lspci -k | grep -A3 -E 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller
        Subsystem: Lenovo Device xxxx
        Kernel driver in use: i915
        Kernel modules: i915

Ce que ça signifie : iGPU Intel utilisant i915. En général, « ça marche tout seul » avec Mesa.

Décision : Si vous avez NVIDIA, installez les paquets NVIDIA délibérément et acceptez de gérer les pilotes. Pour AMD/Intel, la pile libre est généralement plus simple.

Installez les bases pour une session de bureau :

cr0x@server:/# pacman -S --noconfirm xorg-server xorg-xinit mesa

Tâche 20 : Choisir un bureau et un gestionnaire d’affichage (un de chaque)

KDE Plasma (avec SDDM) :

cr0x@server:/# pacman -S --noconfirm plasma kde-applications sddm
cr0x@server:/# systemctl enable sddm
Created symlink '/etc/systemd/system/display-manager.service' → '/usr/lib/systemd/system/sddm.service'.

Décision : Plasma est un bon choix « prêt à l’emploi », surtout si vous voulez des contrôles réseau GUI et des valeurs par défaut sensées.

Ou GNOME (avec GDM) :

cr0x@server:/# pacman -S --noconfirm gnome gdm
cr0x@server:/# systemctl enable gdm
Created symlink '/etc/systemd/system/display-manager.service' → '/usr/lib/systemd/system/gdm.service'.

Décision : Choisissez KDE ou GNOME le premier jour. Installer les deux est une excellente façon de déboguer thèmes et fichiers de session au lieu d’avancer dans votre travail.

Tâche 21 : Audio et Bluetooth (parce que les portables)

cr0x@server:/# pacman -S --noconfirm pipewire pipewire-audio pipewire-pulse wireplumber bluez bluez-utils
cr0x@server:/# systemctl enable bluetooth
Created symlink '/etc/systemd/system/dbus-org.bluez.service' → '/usr/lib/systemd/system/bluetooth.service'.
Created symlink '/etc/systemd/system/multi-user.target.wants/bluetooth.service' → '/usr/lib/systemd/system/bluetooth.service'.

Décision : PipeWire est la réalité par défaut maintenant. Ne ranimez pas les conseils de l’ère PulseAudio sauf si vous déboguez un problème très spécifique.

Premier redémarrage

cr0x@server:/# exit
cr0x@server:~$ umount -R /mnt
cr0x@server:~$ reboot

Blague #2 : Si le premier démarrage fonctionne, ne célébrez pas encore — votre portable attendra que vous soyez en retard à une réunion pour révéler le firmware Wi‑Fi manquant.

Tâches pratiques (commandes + sorties + décisions)

Vous avez déjà vu beaucoup de tâches dans le texte. Voici des vérifications additionnelles à fort signal qui font gagner du temps quand quelque chose ne se comporte pas. Ce sont les commandes que j’exécute réellement quand je veux des réponses, pas des impressions.

Tâche 22 : Confirmer que l’ESP est montée là où vous le pensez

cr0x@server:~$ findmnt /boot
TARGET SOURCE         FSTYPE OPTIONS
/boot  /dev/nvme0n1p1 vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro

Ce que ça signifie : L’ESP est montée sur /boot, donc noyaux/initramfs vivent sur FAT sauf si vous avez choisi une autre disposition.

Décision : Si /boot est ext4 et que votre ESP est ailleurs, ne lancez pas bootctl à l’aveugle. Confirmez votre conception et tenez-vous-y.

Tâche 23 : Vérifier les entrées de démarrage en NVRAM

cr0x@server:~$ efibootmgr -v
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0001,0000
Boot0003* Linux Boot Manager  HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0001* UEFI: USB SanDisk 3.2  PciRoot(0x0)/Pci(0x14,0x0)/USB(0x3,0x0)
Boot0000* Windows Boot Manager  HD(1,GPT,yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)

Ce que ça signifie : Le firmware connaît votre chargeur. L’ordre indique ce qui démarre en premier.

Décision : Si « Linux Boot Manager » disparaît après reboot, votre firmware peut être « utile ». Dans ce cas, gardez un chemin de secours : assurez-vous que \EFI\BOOT\BOOTX64.EFI existe (systemd-boot l’installe).

Tâche 24 : Vérifier le Wi‑Fi sur le système installé (NetworkManager)

cr0x@server:~$ systemctl status NetworkManager --no-pager
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: disabled)
     Active: active (running) since Sat 2026-02-05 13:21:12 UTC; 2min ago

Ce que ça signifie : NetworkManager est en fonctionnement.

Décision : S’il n’est pas actif, corrigez cela avant de toucher aux pilotes Wi‑Fi. L’état du service est la première couche.

cr0x@server:~$ nmcli device status
DEVICE      TYPE      STATE         CONNECTION
wlp0s20f3   wifi      connected     HomeNet
lo          loopback  unmanaged     --

Ce que ça signifie : Le Wi‑Fi est connecté via NetworkManager.

Décision : Si l’état est « disconnected » mais que le périphérique existe, vérifiez rfkill, les identifiants et le domaine réglementaire. Ne réinstallez pas votre OS parce que votre mot de passe Wi‑Fi a changé.

Tâche 25 : Vérifier les blocages rfkill (le piège « mode avion »)

cr0x@server:~$ rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

Ce que ça signifie : Aucun blocage. Si hard blocked est oui, il y a un interrupteur physique ou un basculement firmware.

Décision : Si bloqué, corrigez cela d’abord. Aucun reinstall de pilote ne battra un interrupteur RF kill.

Tâche 26 : Confirmer que le DNS est sain sur le système installé

cr0x@server:~$ resolvectl query archlinux.org
archlinux.org: 95.217.xx.xx                     -- link: wlp0s20f3
              (archlinux.org)

-- Information acquired via protocol DNS in 34.1ms.
-- Data is authenticated: no

Ce que ça signifie : La résolution DNS fonctionne et la latence est raisonnable.

Décision : Si le DNS échoue mais que la connectivité IP fonctionne, concentrez-vous sur l’intégration resolved/NetworkManager — pas sur « l’internet est en panne ».

Tâche 27 : Diagnostiquer les logs de démarrage quand l’interface graphique n’apparaît pas

cr0x@server:~$ journalctl -b -p err --no-pager
Feb 05 13:20:58 archbox sddm[612]: Authentication error: SDDM::Auth::ERROR_INTERNAL
Feb 05 13:21:01 archbox kernel: i915 0000:00:02.0: [drm] *ERROR* failed to load DMC firmware

Ce que ça signifie : Erreurs depuis le démarrage. Certaines sont fatales, d’autres du bruit.

Décision : Si erreurs du gestionnaire d’affichage, validez les paquets user/session. Si erreurs de firmware GPU, assurez-vous que linux-firmware est installé et à jour, et que vous ne fixez pas des noyaux anciens.

Tâche 28 : Valider que votre initramfs contient ce que vous pensez

cr0x@server:~$ lsinitcpio -a /boot/initramfs-linux.img | head
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/base/
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/block/

Ce que ça signifie : Vous pouvez inspecter le contenu de l’initramfs. Utile quand les pilotes de périphérique racine ou les systèmes de fichiers ne sont pas disponibles en early boot.

Décision : Si vous utilisez chiffrement, RAID, ou des contrôleurs de stockage exotiques, assurez-vous des hooks corrects dans /etc/mkinitcpio.conf et reconstruisez.

Playbook de diagnostic rapide : trouver le goulot d’étranglement

Quand quelque chose échoue, ne partez pas dans tous les sens. Identifiez quelle couche est cassée. La plupart des rapports « Arch est cassé » sont l’un des cas : pas réellement démarré en UEFI, mauvaise partition montée, firmware manquant, ou service non activé.

Première étape : démarrez-vous ce que vous croyez démarrer ?

  • Vérifiez le mode UEFI : ls /sys/firmware/efi
  • Vérifiez l’entrée de démarrage : efibootmgr -v
  • Vérifiez la ligne de commande du noyau : cat /proc/cmdline

Objectif : Confirmer que le firmware a chargé le chargeur et le noyau voulus, avec le paramètre root= attendu.

Deuxième étape : le stockage est-il monté correctement (et de façon cohérente) ?

  • Lister les périphériques bloc : lsblk -f
  • Vérifier les points de montage : findmnt
  • Vérifier fstab : cat /etc/fstab

Objectif : S’assurer que la racine et l’ESP correspondent à votre conception. « Noyau sur ext4 mais le chargeur s’attend à le trouver sur l’ESP » est une blessure classique auto-infligée.

Troisième étape : le réseau échoue au niveau lien, IP ou DNS ?

  • État du lien : ip link, rfkill list
  • IP/DHCP : ip addr, nmcli device status
  • DNS : resolvectl status, resolvectl query example.com

Objectif : Ne déboguez pas le DNS si vous n’avez pas d’IP, et ne réinstallez pas des pilotes si l’interface est hard-blocked.

Quatrième étape : le bureau échoue à cause du gestionnaire d’affichage, du GPU ou de la session ?

  • État du gestionnaire d’affichage : systemctl status sddm ou systemctl status gdm
  • Détection GPU : lspci -k
  • Erreurs au démarrage : journalctl -b -p err

Objectif : Séparer « pas d’interface graphique » en service unique défaillant vs problème pilote/noyau.

Erreurs communes : symptôme → cause racine → correction

1) Symptom : « bootctl install » fonctionne, mais le système ne démarre pas (le firmware va vers le BIOS ou un autre OS)

Cause racine : Vous avez installé en mode legacy, ou l’ESP n’était pas montée où vous le pensiez, ou l’entrée NVRAM n’a pas persisté.

Correction :

  • Vérifiez UEFI : ls /sys/firmware/efi.
  • Vérifiez le montage de l’ESP : findmnt /boot et vérifiez que /boot/EFI/systemd/systemd-bootx64.efi existe.
  • Vérifiez les entrées : efibootmgr -v. Si absente, réinstallez avec l’ESP montée et relancez bootctl install.

2) Symptom : pacstrap échoue avec TLS ou « could not resolve host »

Cause racine : Horloge incorrecte, DNS cassé, portail captif, ou Wi‑Fi faible coupant la connexion.

Correction :

  • Synchronisez l’heure : timedatectl set-ntp true puis re-vérifiez timedatectl.
  • Vérifiez le DNS : resolvectl query archlinux.org.
  • Pour les portails captifs, utilisez un partage de connexion téléphone ou un réseau connu fonctionnel. L’ISO ne négocie pas les conditions d’utilisation des Wi‑Fi d’hôtel.

3) Symptom : périphérique Wi‑Fi totalement absent

Cause racine : Pilote noyau ou firmware manquant ; parfois Secure Boot ou bizarreries fabricant.

Correction :

  • Vérifiez dmesg pour les échecs de firmware : dmesg -T | grep -i firmware.
  • Utilisez une ISO Arch plus récente (souvent la meilleure solution).
  • Si le système installé manque de firmware, confirmez que linux-firmware est installé et à jour.

4) Symptom : Vous démarrez, mais vous tombez sur un shell d’urgence se plaignant de ne pas trouver la racine

Cause racine : Mauvais root= UUID dans l’entrée loader, mauvais pilote système de fichiers dans l’initramfs, ou vous avez reformaté et oublié de mettre à jour les configs.

Correction :

  • Depuis l’ISO, exécutez blkid et comparez à /boot/loader/entries/arch.conf.
  • Reconstruisez l’initramfs dans le chroot : mkinitcpio -P.

5) Symptom : boucle de connexion bureau (tapez le mot de passe, écran clignote, retour à l’identification)

Cause racine : Mauvaise configuration de session, permissions home manquantes, pile GPU cassée, ou mélange de gestionnaires d’affichage/sessions.

Correction :

  • Vérifiez les erreurs : journalctl -b -p err et journalctl -u sddm (ou gdm).
  • Assurez-vous de la propriété du home : ls -ld /home/cr0x doit montrer que l’utilisateur en est propriétaire.
  • N’installez pas plusieurs gestionnaires d’affichage en même temps. Choisissez-en un et activez-le.

6) Symptom : aucun périphérique audio dans le bureau

Cause racine : sof-firmware manquant (fréquent sur les portables Intel), PipeWire non installé, ou WirePlumber non lancé.

Correction :

  • Installez : pacman -S sof-firmware pipewire wireplumber
  • Vérifiez les services utilisateur/logs : systemctl --user status wireplumber

Checklists / plan étape par étape

Checklist A : Plan minimal « J’ai besoin d’un bureau fonctionnel aujourd’hui »

  1. Démarrez l’ISO en mode UEFI ; confirmez que /sys/firmware/efi existe.
  2. Connectez le Wi‑Fi avec iwctl ; confirmez IP et DNS.
  3. Identifiez le disque cible avec lsblk -o NAME,MODEL,SIZE.
  4. Créez GPT : ESP (512 MiB FAT32) + root (le reste).
  5. Formatez l’ESP en FAT32 ; formatez la racine en ext4.
  6. Montez la racine sur /mnt, montez l’ESP sur /mnt/boot.
  7. pacstrap base + noyau + firmware + NetworkManager.
  8. Générez fstab ; chroot.
  9. Définissez fuseau horaire, locale, nom d’hôte ; mot de passe root ; créez un utilisateur ; configurez sudo.
  10. Installez le microcode ; installez systemd-boot ; créez l’entrée loader.
  11. Activez NetworkManager ; installez le bureau (KDE+SDDM ou GNOME+GDM) ; activez le gestionnaire d’affichage.
  12. Redémarrez ; vérifiez le Wi‑Fi via l’interface graphique ; lancez les mises à jour.

Checklist B : Plan de sécurité dual-boot (Windows déjà installé)

  1. Sauvegardez les clés BitLocker Windows (si utilisées). Si vous ne savez pas ce que c’est, arrêtez et apprenez avant de toucher aux partitions.
  2. Sous Windows, réduisez la partition avec les outils Windows si nécessaire. Ne réduisez pas un NTFS depuis Linux sauf si vous aimez vivre dangereusement.
  3. Sur l’ISO, ne reformatez surtout pas l’ESP existante. Montez-la et réutilisez-la.
  4. Créez une nouvelle partition root Linux dans l’espace libre.
  5. Installez systemd-boot ; confirmez que efibootmgr affiche à la fois Windows et Linux.
  6. Conservez l’entrée Windows Boot Manager intacte. Votre firmware pourrait ensuite la « préférer » ; vous voulez que les deux fonctionnent.

Checklist C : Plan « je veux des snapshots » (Btrfs)

  1. Créez la root Btrfs, créez les subvolumes @ et @home.
  2. Montez avec compress=zstd et des options de subvolume cohérentes.
  3. Générez fstab, vérifiez les montages de subvolume dans /etc/fstab avant le reboot.
  4. Adoptez un workflow de snapshot avant les mises à jour. Si vous ne le ferez pas, ne vous embêtez pas avec Btrfs uniquement pour ses fonctionnalités.

Trois mini-histoires d’entreprise du pays du « ça marche sur ma machine »

Mini-histoire 1 : L’incident causé par une fausse hypothèse

Une entreprise a décidé de standardiser les portables développeurs sur Arch parce que le support du matériel récent était important. Le déploiement se passait bien — jusqu’à ce qu’un lot de machines arrive avec deux NVMe internes. Un petit disque « système » et un disque plus grand « données », selon le modèle.

La documentation interne disait : « Installer sur /dev/nvme0n1. » C’était vrai depuis des mois. Puis une révision du fournisseur a inversé l’ordre d’énumération. Quelques installations ont effacé le mauvais disque. Rien de malveillant, juste une mauvaise hypothèse sur la stabilité des noms de périphériques.

Le postmortem a été ennuyeux et utile. Ils ont changé la procédure pour exiger l’identification du disque par modèle + taille et pour coller la sortie de lsblk -o NAME,MODEL,SIZE,SERIAL dans le ticket avant le partitionnement. Ils ont aussi ajouté une vérification « vous n’êtes pas sur la clé USB » en confirmant le nom du périphérique ISO et en s’assurant qu’il n’est pas la cible.

Après cela, le problème a disparu. Pas parce que Linux est devenu plus gentil, mais parce que le processus est devenu moins confiant dans la mémoire humaine.

Mini-histoire 2 : L’optimisation qui s’est retournée contre eux

Une équipe IT voulait des installations plus rapides. Quelqu’un a suggéré de garder un cache local de paquets et de réduire agressivement la liste de paquets pendant l’ISO : « On n’a pas besoin de linux-firmware ; c’est massif. On l’ajoutera plus tard. » Sur le papier, cela réduisait le temps de téléchargement.

En pratique, cela a créé une classe d’échecs difficiles à diagnostiquer. Les machines démarraient, mais le Wi‑Fi et parfois l’affichage manquaient sur certains modèles. Les développeurs pouvaient le réparer en installant le firmware après coup — s’ils avaient Ethernet. Sans Ethernet, ils se retrouvaient bloqués avec un système incapable d’aller chercher le paquet qui rendrait le réseau fonctionnel. Très élégant.

L’équipe a annulé l’optimisation et documenté un principe : les paquets firmware sont de base, pas optionnels. On n’optimise pas en supprimant les composants qui font fonctionner le matériel. Ils ont ensuite obtenu des accélérations avec une sélection de miroirs plus intelligente et un cache local, sans transformer le premier démarrage en chasse au trésor.

Mini-histoire 3 : La pratique ennuyeuse mais correcte qui a sauvé la mise

Une autre organisation gérait Arch sur une flotte de kiosques. Les rolling releases les rendaient nerveux, alors ils ont fait quelque chose de profondément peu sexy : avant chaque fenêtre de mise à jour, ils prenaient un snapshot (Btrfs) et vérifiaient qu’ils pouvaient démarrer le snapshot précédent depuis le menu de démarrage.

Une mise à jour a introduit une régression avec un pilote GPU spécifique et leur matériel d’affichage. Les kiosques ont redémarré sur un écran noir. Pas de bureau à distance, pas d’interface, juste un petit groupe de personnes physiquement accessibles aux appareils.

Parce qu’ils avaient répété la restauration, la réponse a été simple. Ils ont démarré l’entrée snapshot précédente, ont restauré le service, puis ont figé la version du paquet concerné en attendant une correction coordonnée. Pas de panique, pas de débogage héroïque pendant que les clients regardaient un kiosque mort.

Cette pratique n’a pas fait les gros titres. Elle a maintenu le temps de disponibilité. En exploitation, c’est le seul applaudissement qui compte.

FAQ

1) Dois-je monter l’ESP sur /boot ou /efi ?

Si vous utilisez systemd-boot, monter l’ESP sur /boot garde le modèle simple : chargeur, noyau et initramfs vivent ensemble. Monter sur /efi peut aussi fonctionner, mais vous devez alors vous assurer que le chargeur peut trouver noyau/initramfs (souvent via des étapes séparées). Choisissez une option et restez cohérent.

2) Ai-je besoin de swap en 2026 ?

Pas strictement, mais c’est utile en cas de pression mémoire et nécessaire pour l’hibernation. Si vous n’hibernez pas et avez beaucoup de RAM, vous pouvez l’ignorer. Si vous êtes sur un portable et hibernez, prévoyez un swap adapté.

3) iwd ou wpa_supplicant ?

Utilisez iwd comme backend si votre configuration y fonctionne ; c’est léger et s’intègre bien. Si vous rencontrez des cas limites Wi‑Fi entreprise (certaines configurations EAP), wpa_supplicant peut être plus compatible. L’important est de ne pas mélanger les piles sans savoir laquelle est active.

4) Pourquoi pacman se plaint-il de clés ou signatures ?

Généralement parce que le keyring est obsolète ou l’horloge est fausse. Sur l’ISO, la solution est souvent « faire fonctionner le réseau, synchroniser l’heure, puis réessayer ». Sur le système installé, assurez-vous que archlinux-keyring est à jour.

5) Puis-je installer Arch sans Ethernet ?

Oui. L’ISO live et iwctl suffisent généralement. Le mode d’échec courant est le firmware manquant pour des chipsets Wi‑Fi très récents ; une ISO plus récente est la première solution à tenter.

6) systemd-boot vs GRUB : lequel choisir ?

systemd-boot si vous voulez le moins de pièces mobiles et que vous êtes en UEFI uniquement. GRUB si vous avez besoin de fonctionnalités multi-boot complexes, support legacy, ou configurations inhabituelles. Pour un portable mono-OS moderne, systemd-boot est généralement le choix le plus calme.

7) Ai-je besoin de Secure Boot ?

Vous avez besoin d’un modèle de menace, pas d’une case à cocher. Secure Boot peut valoir la peine, mais ajoute de la complexité : signer les noyaux ou utiliser des artefacts signés. Faites d’abord une installation propre sans Secure Boot, puis ajoutez Secure Boot une fois que vous pouvez démarrer et récupérer de façon fiable.

8) Pourquoi mon entrée UEFI a disparu après un reboot ?

Certaines firmwares « nettoient » les entrées qu’ils n’aiment pas. Le fichier de repli de systemd-boot dans \EFI\BOOT\BOOTX64.EFI aide. Assurez-vous aussi que votre ESP est saine et que vous ne réinitialisez pas les paramètres du firmware.

9) Dois-je utiliser les snapshots Btrfs sur un portable ?

Si vous allez réellement les utiliser avant chaque mise à jour et que vous comprenez ce que vous snapshottez (root vs home), oui. Si vous n’adoptez pas l’habitude, ext4 est plus simple et vous traitera mieux.

Prochaines étapes qui rapportent vraiment

Vous avez un système Arch amorçable avec Wi‑Fi et un bureau. Faites maintenant l’hygiène opérationnelle qui évitera de la douleur future :

  1. Confirmez que les mises à jour fonctionnent : exécutez pacman -Syu et vérifiez l’absence de problèmes de signature/heure/réseau.
  2. Enregistrez votre disposition de partitions : sauvegardez la sortie de lsblk -f quelque part accessible si le système ne démarre plus.
  3. Testez la récupération : gardez l’ISO USB à portée. Assurez-vous de pouvoir monter la racine et l’ESP depuis l’ISO et y chrooter.
  4. Décidez des snapshots ou sauvegardes : si Btrfs, définissez une routine de snapshot ; si ext4, définissez une routine de sauvegarde. « Plus tard » n’est pas un plan.
  5. Maintenez firmware et noyau à jour : surtout sur les portables. La prise en charge matérielle évolue constamment.

Arch n’est pas intrinsèquement pénible. Ce sont les hypothèses non vérifiées qui le sont. Traitez l’installation comme un changement que vous pourriez devoir déboguer à 2h du matin, et vous dormirez mieux.

← Précédent
Trouver et supprimer les anciennes mises à jour Windows (en toute sécurité) avec PowerShell
Suivant →
« Chemin réseau introuvable » (0x80070035) : la réparation en 5 minutes

Laisser un commentaire