Archlinux se démarque un peu dans le monde Unix/Linux, qui est composé d’une pléthore de distributions pour tous les goûts

  • Mise à jour le 08/04/2021 : mise en place du LVM.
  • Mise à jour le 11/04/2021 : retour en ext4, plus simple à manipuler avec lvm et suppression de la partie chroot.
  • Mise à jour le 22/06/2021 : correction coquille quant à la génération des packs de langue (merci Thibre !)

Cet article se base en très grande partie sur l’excellente procédure de Frederic BEZIES, à cette adresse : http://frederic.bezies.free.fr/blog/?p=15095
Il ne s’agit pas d’une copie, juste d’une interprétation personnelle.

J’utilise la distribution Debian, qui est simple, fiable, robuste, mais malheureusement pas assez mis à jour – pour l’exemple, le noyau Linux utilisé est le 4.9 alors que le 5.11 est officiellement « stable » (les nouveaux kernels ont des options & fonctionnalités avancées, en plus de corriger de nombreux bugs), de nombreuses incompatibilités matériels notamment dû à la philosophie « Full open-source ».

Voici donc Archlinux, une distribution de geek, pour les geeks.

Ce qui m’a plu avec cette distribution, c’est son principe de mise à jour d’une part : On parle de « Rolling Release« . Les mises à jour seront disponibles très vite une fois sortie de développement, et non pas à la fin d’une période spécifique comme les Service Pack de Windows par exemple. Les mises à jour sont pour la plupart testées, les risques sont donc mesurés mais toutefois plus importants que sur Debian (par exemple).

Avec la communauté dynamique & grandissante, de nombreux paquets sont présents et constamment mis à jour – Ainsi, il est possible de bénéficier de nouvelles fonctionnalités rapidement.

Enfin, l’intérêt même d’Archlinux réside dans sa personnalisation ; Il est possible de construire sa distribution facilement grâce aux Wiki officiel & tous les tutoriels disponibles sur le net. Il est ainsi possible d’avoir une distribution Linux modulaire à souhait.

Quelques commandes sont un peu plus complexes que la normale et c’est volontaire : je suis en train de préparer un énième script d’auto-installation.


I. Boot & préparation de l’installation d’Archlinux

1°) Pré-requis

Avant de se lancer dans les différentes étapes d’installation, il est préférable de mettre en Français (AZERTY) votre clavier. Exécutez la commande suivante :

loadkeys fr

Votre clavier étant par défaut en « Qwerty« , il faudra saisir ces touches sur votre clavier Azerty :

loqdkeys fr

Passons immédiatement aux partitions.

II.  Partitionnement du disque dur

Nous allons attaquer une partie importante et lourde de conséquence sur le système. En effet, nous allons attaquer le formatage & le partitionnement de notre disque dur.

1°) Création du schéma de partition

Il existe plusieurs utilitaires pour modifier les partitions du disque dur. Pour que se soit le plus simple et intuitif possible, j’ai utilisé l’utilitaire cgdisk.

cgdisk /dev/sda

Saisissez le chemin du disque dur (souvent, par défaut /dev/sda). Pour trouver votre disqsue, effectuez un fdisk -l. Une interface graphique va alors apparaître pour que vous puissiez gérer vos partitions.

Vous n’êtes pas obligé de passer par cette étape seulement si vous avez créer vos partitions avec un logiciel du type GParted. Toutefois, la suite de l’installation du système d’Archlinux restera la même. 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, puis dirigez vous sur le bouton « [ New ]« . Appuyez ensuite sur le bouton « Entrer » pour valider votre choix. Lorsque la question vous sera posée concernant le premier secteur, validez le choix par défaut.

Voici les partitions à avoir :

  • /boot/EFI – 500Mo – : 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.
  • / (Racine système) – 10 Go – : Le système prend quelques Giga une fois installé (sans surcouche graphique, et avec un bundle de paquets essentiels à une utilisation de base). Type de partition : « Linux LVM » 8e00.

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. Veillez-donc à retenir sur quel device est placé tel ou tel partition…

Volontairement, il n’y a pas de partition étendue, pas de swap et autres joyeusetés. Cet article vous présente la base pour installer une Arch’ rapidement, pas forcément optimale.

2°) Création des systèmes de fichiers

Précédemment, nous avons utilisé les LVM. Ce choix technique a plusieurs avantages : possibilité de faire des snapshot, étendre/réduire des volumes à chaud, gestion des partitions claires (mais pas forcément plus simple)… [article LVM en cours de saisie]. Créons avant la partition de démarrage :

mkfs.vfat -F32 /dev/sda1 # Partition Boot

Rien de fou, passons maintenant aux partitions système. Dans un premier temps, créons le support qui comportera les volumes logiques.

pvcreate /dev/sda2

La base étant maintenant présente, il est possible de créer le stockage. J’appellerai « stoLocal » mon stockage, libre à vous de changer ce nom.

vgcreate stoLocal /dev/sda2

Deux commandes sont à apprendre pour afficher la configuration LVM :

pvdisplay
vgdisplay

Création des volumes logiques : (je crée 3 volumes nécessaires pour le système, vous pouvez 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 n’est pas chargé dans le noyau.

modprobe dm_mod

Maintenant, le système est capable de voir et d’utiliser les volumes logiques. Effectuez ces deux commandes :

vgscan
vgchange -ay

Le stockage est maintenant chargé et est bien vu en temps que type « LVM2 ». De plus, les volumes logiques créés récemment seront désormais visibles. Effectuez un fdisk -l : les volumes sont maintenant présents.

3°) Montage des partitions système

Formatons les partitions/volumes logiques avec ext4 !

mkfs.ext4 /dev/mapper/stoLocal-root
mkfs.ext4 /dev/mapper/stoLocal-home
mkfs.ext4 /dev/mapper/stoLocal-tmp

La partition à monter en premier est « root », /.

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

Les partitions sont créées, les systèmes de fichiers sont eux aussi créés, il faut maintenant passer à l’étape fatidique avant l’installation : Le montage des espaces ! Alors oui, il faut dire « monter » une partition – Le montage consiste à démarrer une partition, et donc pouvoir l’exploiter.

A présent, le système est maintenant prêt à être chrooté et installé… !

III. Installation

1°) MàJ du gestionnaire de paquets d’Archlinux

Depuis la version d’avril 2021 d’Archlinux, la liste des miroirs se génère automatiquement, en choisissant les serveurs les plus proches. Vous pouvez toutefois modifier cette liste.

nano /etc/pacman.d/mirrorlist

Personnellement, aucune modification dans ce fichier. Les serveurs déjà saisis sont les meilleurs testés en fonction de votre vitesse de connexion.

2°) Installation du système

Nous allons commencer par installer le système d’Archlinux en lui même, pour avoir une base à jour (bénéficiant des derniers paquets) & fiable pour une utilisation quotidienne.
Au début du lancement de l’utilitaire Pacman, les listes de miroirs de paquets d’Archlinux doivent être mises à jour – Le téléchargement et l’installation se font très rapidement.

pacstrap /mnt base base-devel linux lvm2

Avec cette commande, vous aurez un système Archlinux à jour, disposant des dernières versions de paquets. De plus, vous aurez un système disposant des outils nécessaires à une utilisation bureautique quotidienne. En moyenne, il y a environ 220 Mo à télécharger dans les dépôts pour plus de 110 paquets.

Une fois le système installé, il est préférable d’y ajouter quelques paquets supplémentaires, notamment pour avoir un système utilisable rapidement après l’installation complète.

pacstrap /mnt vi vim nano grub efibootmgr openresolv ntp linux-firmware zsh

Enfin, quelques paquets systèmes nécessaires

pacstrap /mnt dhcpcd acpid cronie logrotate inetutils sysfsutils e2fsprogs netctl man-db man-pages

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…

3°) 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. Un utilitaire est présent dans Archlinux (et même toutes les distributions Linux) pour générer ce fichier facilement :

genfstab -U -p /mnt >> /mnt/etc/fstab

Archlinux va travailler tout seul et créer se fichier selon votre configuration de disques & partitions que vous avez effectué au préalable.

4°) Personnalisation du système

Le « Chroot » permet d’effectuer des commandes dans le système cible (ici, notre installation d’Archlinux). Si une commande s’exécute mal, et que le système « chrooté » se paralyse, il n’y aura aucun effets sur le système réel. Une sécurité de taille lorsque vous touchez à certains points techniques sous Linux !

Auparavant dans cet article, j’utilisais « chroot » pour saisir quelques paramètres dans le système, mais finalement ce n’est pas nécessaire puisque tout est accessible dans /mnt.

a) 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. Décommentez 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"

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

b) 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

c) Date & heure de la machine

Par défaut, les installations d’Archlinux (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

d) 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/zsh julien
arch-chroot /mnt passwd julien

Nous avons donc créer l’utilisateur « julien » (à remplacer par votre login personnel) et nous lui avons attribuer un bash, les groupes « users et storage » (nécessaire pour avoir le minimum de droits sur le système et l’accès aux périphériques de stockage) puis nous lui avons affecté un mot de passe.

5°) 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. Par défaut, le module n’est pas chargé et une configuration (rapide) est à effectuer :

sed -i '/^HOOK/s/filesystems/lvm2 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 le module lvm2. 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

Etape 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 Archlinux.

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 erreur« . 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.

Enfin, effectuez la commande ci-dessous pour créer les fichiers « grub » :

arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg

6°) 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}

Nous pouvons maintenant terminer l’installation ! Démontez le système installé via la commande : umount -R /mnt et votre Archlinux est prêt !

reboot

V. Articles complémentaires

Cet article se base en très grande partie sur l’excellente procédure de Frederic BEZIES, à cette adresse : http://frederic.bezies.free.fr/blog/?p=15095 et le wiki Archlinux.

Auteur

Bercé par l'informatique depuis mon plus jeune âge, je transforme ma passion en expertise.

3 commentaires

  1. il manque
    nano /etc/locale.conf
    qui contient ceci :
    LANG= »fr_FR.UTF-8″

    avant et NON après
    arch-chroot /mnt locale-gen

  2. Bonjour,

    Rapidement, j’ai une erreur : espace disque insuffisant !
    lors de l’installation de paquets…
    Comment augmenter la taille des partitions ?

    Bonne journée

Écrire un commentaire