# Guide d’installation d’Archlinux avec GNOME (décembre 2024)
Dans ce petit guide, je vais détailler l’installation d’Archlinux avec GNOME (pour les autres environnements de bureaux voir les sources ci-dessus). L’installation terminée proposera un environnement suffisamment étoffé et stable.
Ce tutoriel permet d'installer une Archlinux en monoboot et dualboot avec Windows 11. Il n'y à pas de manipulations particulières à faire ci ce n'est de prévoir une partition UEFI (dédié de préférence) et d'installer Windows avant Archlinux. Pour plus d'infos voir le tuto de [Armand Philippot](https://www.armandphilippot.com/article/dual-boot-manjaro-windows-uefi=).
Sources :
- [Chennux](https://github.com/Chennux/arch-tuto-installation), [Fred Bezies](https://framagit.org/FredBezies/arch-tuto-installation/-/blob/master/install.md), [Cardiacman13](https://github.com/Cardiacman13/Architect/blob/main/lang/README.fr.md), [Archlinux](https://wiki.archlinux.org/title/Main_page_(Fran%C3%A7ais)).
## Préparatifs et installation de la base
### Clavier et connextion internet
Pour obtenir l'iso Archlinux : https://archlinux.org/download/.
Configurer le clavier en français :
```
loadkeys fr
```
Vérifier la connexion Internet :
```
ping 8.8.8.8
```
Si besoin, pour connecter le wifi il faut utiliser iwd (iNet wireless daemon) :
* https://wiki.archlinux.org/title/Network_configuration/Wireless;
* https://wiki.archlinux.org/title/Iwd
```
$ iwctl
```
Obtenir le nom du terminal wifi:
```
[iwd]# device list
```
Lister les réseaux valides :
```
[iwd]# station device get-networks
```
Se connecter au réseau:
```
[iwd]# station device connect "SSID"
```
### Partitionnement et montage des volumes
Si tout est fonctionnel, nous pouvons passer au partitionnement. Celui-ci peut se faire par gParted depuis un liveCD en amont : [Gparted](http://gparted.org/download.php), [Manjaro](https://manjaro.org/download/), [Linuxmint](https://www.linuxmint.com/download.php).
Il faut obligatoirement une table de partition GPT en cas d’installation en mode UEFI. Si vous n’êtes pas passé par gParted, il faut utiliser l’outil cgdisk depuis le liveCD d'Archlinux.
#### Exemple de partitionnement
| Référence | Point de montage | Taille | Système de fichiers |
| --------- | ---------------- |----------------------------------------------------------------------------------------- | -------------------- |
| /dev/*xxx* | /boot/efi | 512 Mo | fat32 |
| /dev/*xxx* | / et /home | Le reste du disque (qui sera divisé en deux sous-volumes BTRFS
**Note:** La partition EFI est crée en amont de l'instalation, voir [ici](https://www.armandphilippot.com/article/dual-boot-manjaro-windows-uefi=).
La partition Windows est déjà crée. Attention à ne pas la modifier ou la supprimer. Ici la partition swap n'est pas envisagée.
Le partitionnement suitant est à appliquer (ici en ext4) :
```
mkfs.fat -F32 /dev/xxx (ne pas executer si windows est déja installé)
mkfs.btrfs /dev/xxx
```
La partition de swap si besoin :
```
mkswap /dev/xxx
swapon /dev/xxx
```
#### Les points de montage
```
mount -o compress=zstd,subvol=@ /dev/xxx /mnt
mkdir /mnt/{boot,boot/efi,home}
mount -o compress=zstd,subvol=@home /dev/xxx /mnt/home
mount /dev/xxx /mnt/boot/efi
```
### Installation de la base
#### Choix des mirroirs
Après avoir procédé au partitionnement et à l’attribution des partitions, il faut récupérer la base de notre installation.
On peut configurer la liste des mirroirs avec [Reflector](https://wiki.archlinux.org/title/Reflector_(Fran%C3%A7ais)) :
```
reflector -c FR -p https -a 12 --sort rate --save /etc/pacman.d/mirrorlist
```
**Note :** Ici sont appelé les miroirs français utilisants le protocole https et mis à jour dans les 12 dernières heures. Nous les classons par rapidité et les enregistrons dans le fichier */etc/pacman.d/mirrorlist*.
#### Pacstrap
On passe à l’installation de la base:
```
pacstrap /mnt base linux linux-{headers,firmware} base-devel pacman-contrib man-{db,pages,pages-fr} texinfo btrfs-progs systemd-sysvcompat
```
```
pacstrap /mnt zip unzip p7zip nano gvim mc syslog-ng mtools dosfstools lsb-release ntfs-3g exfatprogs bash-completion ntp cronie
```
**Note :** Si on veut utiliser un noyau atlernatif (ex : linux-lts, linux-zen)
il faut remplacer le paquet *linux* par *linux-lts* et *linux-headers* par *linux-lts-headers*. Pour ntfs-3g, c’est utile si vous êtes amené à utiliser des disques formatés en ntfs.
Si vous êtes sur un pc portable, l’ajout de [tlp](https://wiki.archlinux.org/index.php/TLP) est conseillé pour améliorer l’autonomie de la batterie. Si vous désirez rajouter le support des microcodes pour votre processeur, il vous suffira de rajouter soit le paquet amd-ucode (pour AMD) ou intel-ucode (pour Intel). Grub détectera leur présence automatiquement.
### Premières configurations
#### Fichier fstab
Maintenant que les outils de base sont installés, il faut générer le fichier /etc/fstab qui liste les partitions présentes :
```
genfstab -U /mnt >> /mnt/etc/fstab
```
#### Réglages de l'OS
```
arch-chroot /mnt
```
Les valeurs linguistiques de l'OS pour les pays francophones comme la France, la Belgique, la Suisse, le Luxembourg ou encore le Canada francophone :
| Pays | Locale (LANG) | Clavier (KEYMAP) |
|------------|---------------|------------------|
| Belgique | fr\_BE.UTF-8 | be-latin1 |
| Canada | fr\_CA.UTF-8 | cf |
| France | fr\_FR.UTF-8 | fr-latin9 |
| Luxembourg | fr\_LU.UTF-8 | fr-latin9 |
| Suisse | fr\_CH.UTF-8 | fr\_CH-latin1 |
**Note :** ici on choisi les faleurs pour la France.
Clavier en mode texte, créez le fichier */etc/vconsole.conf* :
```
KEYMAP=fr-latin9
FONT=eurlatgr
```
Localisation française, le fichier */etc/locale.conf* :
```
LANG=fr_FR.UTF-8
LC_COLLATE=C
```
**Note :** La deuxième ligne est nécessaire si on apprécie d’avoir le tri par la « casse » (majuscule puis minuscule) activé. Merci à Igor Milhit pour la remarque !
**Note :** Il faut vérifier que les lignes *fr\_FR.UTF-8 UTF-8* et *en\_US.UTF-8 UTF-8* dans le fichier */etc/locale.gen* n’ont pas de \# devant elles :
Générer les traductions :
```
locale-gen
```
Spécifier la locale pour la session courante :
```
export LANG=fr_FR.UTF-8
```
Donner un nom à la machine dans le ficher */etc/hostname*. Taper le nom sur la première ligne.
Régler le fuseau horaire (ici Paris). Créer un lien symbolique :
```
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
```
Ensuite, deux cas se présentent. Soit on a une machine en mono-démarrage sur Archlinux, et on peut demander à ce que l’heure appliquée soit UTC, soit un double démarrage avec MS-Windows. Restons dans ce premier cas.
```
hwclock --systohc --utc
```
**Sinon, on ne touche à rien. MS-Windows est un goujat dans ce domaine.**
#### Générer l'image du noyau.
```
mkinitcpio -p linux
```
**Note :** ou *linux-lts* si vous voulez le noyau lts.
**Note :** si vous avez une « hurlante » contenant « /run/lvm/lvmetad.socket: connect failed » ou quelque chose d’approchant, ce n’est pas un bug. C’est une alerte sans conséquence. Cf :
#### Grub, le chargeur de démarrage
```
pacman -Syy grub os-prober efibootmgr
```
```
mount | grep efivars &> /dev/null || mount -t efivarfs efivarfs /sys/firmware/efi/efivars
```
**Note :** cette ligne permet de vérifier un point de montage et de l’activer au besoin.
```
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
```
**Note :** cette ligne installe Grub.
Pour éviter tout problème de démarrage par la suite (spécialement dans VirtualBox), il est conseillé de rajouter les commandes suivantes :
```
mkdir /boot/efi/EFI/boot
```
```
cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
```
Après avoir généré l'image noyau et installé grub, il faut passer au fichier de configuration du lanceur :
```
grub-mkconfig -o /boot/grub/grub.cfg
```
**Note :** en cas de double démarrage avec une autre distribution GNU/Linux déjà installée, il n'est pas indispensable d'installer de bootloader sous Archlinux. Il suffit de faire une commande comme update-grub dans la distribution installée en parallèle d'Archlinux.
Bien entendu, aucune erreur ne doit apparaître.
#### Saisie du mot de passe root
```
passwd
```
#### Réseau
Installer et activer NetworkManager :
```
pacman -S networkmanager
```
```
systemctl enable NetworkManager
```
Installer et activer le bluetooth :
```
pacman -S bluez bluez-utils bluez-plugins
```
```
systemctl enable --now bluetooth.service
```
**NOTE 1 :** pour utiliser NetworkManager avant d'y avoir accès graphiquement : https://wiki.archlinux.org/title/Netctl_(Fran%C3%A7ais)
#### Configuration de *pacman.conf*
```
UseSyslog
Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 5
ILoveCandy
```
#### Quitter et redémarrer
```
exit
umount -R /mnt
reboot
```
**Note :** éjecter le support d’installation pour éviter des problèmes au démarrage suivant.
## Installation de l'environnement graphique
#### Connecter NetworkManager
Il y a des étapes communes à tous les environnements. Une fois le système redémarré, on se connecte **en root**. NetworkManager étant déja installé le réseau fonctionne. Pour le wifi :
```
nmcli device wifi list
```
```
nmcli device wifi connect SSID_or_BSSID password password
```
#### Logs en clair
Si on veut avoir les logs en clair en cas de problème, il faut modifier le fichier */etc/systemd/journald.conf* en remplaçant la ligne :
***#ForwardToSyslog=no*** par ***ForwardToSyslog=yes***
#### Installer les greffons gstreamer
Les greffons gstreamer donneront accès aux fichiers multimédias une fois Gnome lancé :
```
pacman -S gst-plugins-{base,good,bad,ugly} gst-libav
```
#### Installer Xorg
```
pacman -S xorg-{server,xinit,apps} xdg-user-dirs
```
**Note :** pour le pavé tactile de certains ordinateurs portables -> *xf86-input-synaptics*.
#### Pilotes graphiques
Ici la liste des pilotes disponibles selon les cartes graphiques :
* https://wiki.archlinux.org/index.php/Xorg#Driver_installation
Il est recommandé dans la plupart des cas de n'installer aucun pilote pour les cartes graphiques Intel:
* https://wiki.archlinux.org/index.php/Intel_graphics#Installation
Sinon :
```
pacman -S mesa
```
#### Installer les polices
```
pacman -S ttf-{bitstream-vera,liberation,dejavu,carlito,caladea} gnu-free-fonts freetype2 noto-fonts{,-extra,-cjk,-emoji}
```
**Note :** pour les polices Microsoft, le paquet *ttf-ms-fonts* est dans l'AUR
#### Installer les pilotes d'impression
```
sudo pacman -S --needed ghostscript gsfonts cups cups-filters cups-pdf system-config-printer avahi
```
```
sudo pacman -S --needed foomatic-db-engine foomatic-db foomatic-db-ppds foomatic-db-nonfree foomatic-db-nonfree-ppds gutenprint foomatic-db-gutenprint-ppds
```
#### Installer les premiers logiciels
```
pacman -S firefox firefox-i18n-fr thunderbird-i18n-fr libreoffice-still libreoffice-still-fr hunspell hunspell-fr gimp gimp-help-fr inkscape scribus sane vlc gnome-disk-utility neofetch fastfetch glances htop nmon screenfetch lm_sensors nvtop ncdu keepassxc shotwell rhythmbox
```
#### Créer un utilisateur classique (et son mot de passe) et Configurer visudo
```
useradd -m -g wheel -c 'Nom complet de l’utilisateur' -s /bin/bash nom-de-l’utilisateur
```
```
passwd nom-de-l’utilisateur
```
On va configurer sudo en utilisant visudo qui modifie */etc/sudoers*.Penser à préciser l'éditeur souhaité en exécutant la commande :
```
EDITOR="nano" visudo
```
Il faut aller au bas du fichiers et décommenter la ligne qui suit ***"# Uncomment to allow members of group wheel to execute any command"*** :
```
## Uncomment to allow members of group wheel to execute any command │
%wheel ALL=(ALL:ALL) ALL
```
#### Installer YaY
```
sudo pacman -S git
```
```
git clone https://aur.archlinux.org/yay
cd yay
makepkg -sri
```
#### Activer les services
Pour être certain d’avoir le bon clavier au démarrage de GDM :
```
sudo localectl set-x11-keymap fr
```
Pour les services :
```
sudo systemctl enable syslog-ng@default → *gestion des fichiers d’enregistrement d’activité*
sudo systemctl enable cronie → *pour les tâches récurrentes*
sudo systemctl enable avahi-{daemon,dnsconfd} → *dépendances de Cups*
sudo systemctl enable cups → *cups pour les imprimantes*
sudo systemctl enable ntpd → *pour synchroniser l’heure en réseau.*
sudo systemctl enable systemd-oomd → *tue automatiquement les processus trop gourmands*
sudo systemctl enable fstrim.timer → *optimisations pour les SSD (inutile sur les HDD)*
```
```
exit
```
## Installation de Gnome
* https://wiki.archlinux.org/title/GNOME
Installer les paquets de GNOME. Le paquet telepathy permet d’ajouter le maximum de support pour les comptes utilisateurs en ligne.
```
sudo pacman -S gnome system-config-printer telepathy unoconv mtpfs
```
Ensuite, on lance GDM :
```
sudo systemctl start gdm.service
```
Si tout se passe bien : on l'active au démarrage.
```
sudo systemctl enable gdm.service
```
Il faut penser à vérifier que le clavier est correctement configuré. Ce qui se fait dans menu système unifié, paramètres.
La distrubution Archlinux avec l'environnement de bureau Gnome est maintenant installée et fonctionnelle.