Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Installer une configuration Arch linux de base

Par Jérémy VILLET Publié le 04/08/2017 à 17:10:58 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Arch Linux est une distribution Linux inspirée de la distribution Crux Linux , dont la première version a été créé en Mars 2002 par un certains Judd Vinet. Elle repose sur la philosophie du KISS ( keep it simple , stupid ) , qui comme vous l’aurez surement déjà compris , préconise une ligne directrice de conception la plus simple possible . De par ce fait, Arch linux a pour avantage d’être relativement rapide et léger, idéal donc , si vous souhaitez redonner une seconde vie à votre vieil ordinateur par exemple .

L’installation d’Arch linux est un peu plus compliquée que pour d’autres distributions tel que Debian, mais en soit rien de bien sorcier si vous suivez bien ce tutoriel en n’oubliant pas bien sûr, de l’adapter à vos besoins et à votre matériel. J’illustrerai mes propos avec une machine virtuelle en guise d’exemple afin d’être le plus précis possible, mais en cas de doute, n’hésitez pas à faire une petite recherche annexe. Nous traiterons dans ce tutoriel de l’installation basique de Arch linux, et pour les plus motivé d’entre vous, nous installerons une interface graphique ainsi qu’un noyau de système adapté à vos besoins et à votre matériel afin d’optimiser votre configuration au mieux.

Sommaire

  1. Installation de Arch Linux

  2. Installation d'un environnement de bureau : Cinnamon

  3. Un noyau personnalisé avec un Splash Screen

  4. Conclusion

Installation de Arch Linux

Commençons donc par l’installation de base de notre système Arch linux. Pour ceux ne l’ayant pas déjà fait, je vous invite à aller récupérer l’iso à la page suivante : https://www.archlinux.org/download/

Je vous laisse donc boot dessus, et nous commencerons ce tutoriel lorsque vous serez arrivés à l’écran suivant :

On Boot donc Arch Linux (x86_64). A savoir que nous serons automatiquement connectés en root le temps de la configuration de base du système.

Attention, le clavier de base est en qwerty, pas très pratique en effet. Nous allons donc le passer en azerty avec la commande suivante :

 loadkeys fr

Avant d’aller plus loin, je vous invite à tester votre connexion internet afin d’éviter de vous retrouver bloqués au milieu de ce tutoriel :

ping google.com

Partitionnement du disque

La première chose à faire est de partitionner notre disque dur, c’est-à-dire de le diviser en plusieurs régions (nos partitions donc ), afin d’organiser de manière convenable les données . Nous devons commencer par récupérer les informations de notre disque dur .Pour ceci nous allons checker la table de partition :

fdisk -l

Nous voyons ici que ma machine virtuelle dispose d’un disque dur, nommé sda, d’une taille de 8 GiB . Voici comment je vais partitionner mon disque, à adapter bien évidemment

  • Une partition de root de 5GiB en sda1 qui sera bootable, c’est-à-dire qu’il contiendra le système d’exploitation entre autres chargé au démarrage

  • Une partition swap de 1GiB (taille de la RAM) en sda2. La partition swap est très importante: en effet si votre RAM venait à saturer, cette partition viendrait alors la décharger, empêchant ainsi votre système de planter

  • Une partition logique qui sera le home en sda3 d’environ 4GiB

Pour réaliser ceci ,on utilise :

cfdisk

Nous voyons que nous avons le choix entre plusieurs labels qui représentent chacun un format de partition. Nous allons nous intéresser aux plus courant, les formats DOS et GPT.

  • DOS est utilisé pour formater les disques durs de taille raisonnable puisque la limite d’une partition s’élève à 2,2 To . De plus le nombre de partitions maximum est de 4 seulement.

  • GPT lui est beaucoup plus adapté pour le stockage massif de données puisque la limite par partition s’élève à 256 To et le nombre de partitions maximum peut aller jusqu’à 128.

Pour ma part, je vais continuer le tutoriel avec le format DOS, dont les performances suffiront pour la plupart de vos besoins.

Une fois que le format de partition a été choisi, passons à la création de nos partitions :

  • Création de sda1 : nous sélectionnons new , nous précisons la taille, dans mon cas, 5G , le type de partition : primary , puis nous sélectionnons l’option bootable pour bien indiquer que cette partition contiendra le système d’exploitation à charger au démarrage.

  • Création de sda2 : De même nous sélectionnons new , nous précisons sa taille ,dans mon cas toujours, 1G et enfin le type de partition : primary

  • Création de sda3 : De même nous sélectionnons new , nous précisons sa taille ,dans mon cas toujours, 4G et enfin le type de partition : primary

Nous n’oublions pas de sélectionner l’option write pour appliquer les modifications au disque puis nous quittons avec l’option quit .

Ensuite, il nous faut encore formater et préparer les partitions : Pour sda1 et sda3 , on choisira le système de fichier le plus récent , ext4 :

mkfs.ext4   /dev/sda1 
mkfs.ext4   /dev/sda3 

Ensuite nous nous occupons de sda2, qui est notre partition de swap rappelons-le . Nous préparons la partition avec :

mkswap /dev/sda2

Puis nous activons l’espace de swap avec :

swapon  /dev/sda2

Nous allons monter les partitions dans le dossier mnt , qui est le point de montage par defaut :

Nous montons d’abord sda1 dans /mnt :

mount /dev/sda1  /mnt

Nous créons le dossier enfant de mnt , home pour en faire le point de montage de sda3:

mkdir /mnt/home

Nous montons sda3 :

mount /dev/sda3  /mnt/home

Nous en avons maintenant fini avec la preparation de notre disque dur, nous allons donc pouvoir passer à l’installation de base du système .

Installation du système

Nous commençons par nous procurer les paquets de base qui nous permettrons d’installer le système :

pacstrap  /mnt base base-devel

Ensuite, nous créons le fichier stab qui contient la table qui permet au système, lorsqu’il démarre, de savoir comment utiliser chacune des partitions afin de les intégrer à l’arborescence du système de fichier global :

genfstab  /mnt >>  /mnt/etc/fstab

Nous passons dans la nouvellement créée base du système avec :

arch-chroot  /mnt  /bin/bash

Nous configurons ensuite le langage du système :

Nous éditons le fichier de configuration locale.gen :

nano  /etc/locale.gen

Nous décommentons la ligne fr_FR.UTF-8 UTF-8.

Nous générons le langage système :

locale-gen

Nous créons le fichier de configuration /etc/locale.conf et nous y plaçons la ligne suivante :

LANG=fr_FR.UTF-8

Nous voulons par défaut utiliser un clavier français, nous éditons donc /etc/vconsole.conf et nous y mettons :

KEYMAP=fr-latin
FONT=lat9w-16

Ceci nous évitera de repasser en qwerty à chaque redémarrage du système.

Nous assignons au système le fuseau horaire duquel nous dépendons. Pour le trouver :

ls /usr/share/zoneinfo/

Dans notre cas, nous dépendons du fuseau horaire Europe/Paris.

Nous supprimons le fichier localtime déjà existant :

rm /etc/localtime

Nous créons donc un lien symbolique entre le fichier contenant les informations de notre fuseau horaire vers le dossier de configuration etc :

ln -s /usr/share/zoneinfo/Europe/Paris  /etc/localtime

Nous passons l’horloge du système à la norme UTC :

hwclock --systohc --utc

Nous sécurisons le mode super utilisateur avec un mot de passe :

passwd

Nous éditons le fichier /etc/hostname et nous y renseignons le nom de la machine linux désiré.

Configuration du réseau

Nous activons le dhcp permettant ainsi l’attribution automatique d’ip :

systemctl enable dhcpcd

Installation du Grub

Nous installons le boot loader qui nous permettra de charger l’OS au démarrage de la machine :

pacman -S grub os-prober
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Nous quittons le chrrot :

exit

Nous démontons sda1 et sda3 en prenant bien soin de démonter l’enfant sda3 avant le parent sda1

umount  /mnt/home
umount /mnt

Pour finir nous pouvons redémarrer notre système :

reboot

Si vous arrivez à cet écran, félicitation, Arch linux est correctement installé sur votre machine ! Voyons encore quelques éléments de configuration de base qui pourraient s’avérer très utiles.

Création d’un utilisateur

Pour le moment, seul le compte utilisateur root existe : nous sommes donc toujours en mode super utilisateur ce qui pourrait éventuellement poser des problèmes de sécurité .

Créons donc un nouvel utilisateur :

useradd -g users nomUtilisateur

Nous ajoutons un mot de passe à ce compte utilisateur :

passwd nomUtilisateur

Nous créons le dossier nomUtilisateur dans home pour cet utilisateur et nous nommons l’utilisateur nomUtilisateur propriétaire de ce fichier :

mkdir /home/nomUtilisateur
chown nomUtilisateur   /home/nomUtilisateur

Nous inscrivons l’utilisateur nomUtilisateur dans le fichier de configuration de sudo pour lui donner le droit d’utiliser sudo :

visudo ( vérifie la syntaxe du fichier avant de sauvegarder les modifications )

Nous fermons la session root et nous pouvons dès lors nous connecter avec notre nouvel utilisateur tout fraichement créé !

Synchroniser l’horloge système grâce aux serveurs de temps

Il peut arriver que l’horloge de votre système ne soit pas synchroniser avec l’heure actuelle, ce qui peut être l’origine de divers problèmes. La commande suivante permet de vérifier cela :

timedatectl

Afin de nous assurer d’avoir une horloge système à la bonne heure, nous allons utiliser le protocole NTP (Network Time Protocol ) qui permet de synchroniser notre horloge avec différents serveurs de temps . Installons donc le paquet :

pacman -S ntp

Nous cherchons le groupe de serveurs de temps adapté à notre fuseau horaire sur pool.ntp.org puis nous éditons le fichier de configuration de ntp :

nano /etc/ntp.conf

Nous modifions le groupe de serveur de temps avec ceux trouvés sur le site cité précédemment :

serveur 0.fr.pool.ntp.org iburst
serveur 1.fr.pool.ntp.org iburst
serveur 2.fr.pool.ntp.org iburst
serveur 3.fr.pool.ntp.org iburst

Note : l’option iburst permet de synchroniser l’horloge avec les serveurs de temps seulement lorsque la connexion au réseau s’est bien effectuée. Nous lançons la synchronisation avec :

ntpd -p

Il est en revanche plus intéressant d’automatiser le lancement de ntp avec la commande suivante :

systemctl enable ntpd.service

Voilà pour ce qui est de l’installation basique de Arch linux. Pour ceux désirant aller plus loin, nous allons maintenant voire comment installer un environnement de bureau avant de nous attarder sur l’installation d’un noyau de système personnalisé !

Installation d'un environnement de bureau : Cinnamon

Installation du système graphique xorg et des drivers vidéo

La première étape consiste à installer le système graphique xorg ainsi que les drivers vidéo qui ne sont pas présent dans l’installation de base de Arch linux. Et oui rappelez-vous du principe KISS sur lequel est basé Arch linux : toujours faire simple en évitant tout le superflu. En effet, si l’on s’en tient aux règles du KISS, il n’est pas nécessaire de s’encombrer d’un environnement bureau lourd en mémoire qui augmente le nombre de failles de sécurité potentielles.

Commençons déjà par vérifier que le système est bien à jour :

sudo pacman -Syu

Ensuite nous installons les packages pour installer l’environnement X (environnement graphique primaire) :

sudo pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils mesa xorg-twm xterm xorg-xclock

Nous avons maintenant besoin d’installer les drivers spécifiques de la carte vidéo. Je vous laisse chercher ceux étant spécifiques à votre propre matériel. Pour ma part, j’ai choisi ceux spécifiques à VM-Ware et je peux ainsi lancer leur installation :

sudo pacman -S xf86-video-vmware

Nous pouvons ensuite tester la fonctionnalité de notre environnement graphique :

sudo startx

Nous voyons que tout marche correctement, nous pouvons donc revenir à la console classique avec :

exit

Installation de Cinnamon

Nous pouvons désormais installer un environnement de bureau.Pour ma part j’ai choisis d’installer Cinnamon qui a pour avantage d’être simple et léger . Nous récupérons et installons le package cinnamon :

sudo pacman -S cinnamon 

De même, nous récupérons et installons le package gdm qui permet au système de démarrer le serveur X et permet aux utilisateurs de se connecter en GUI à Cinnamon DE :

sudo pacman -S gdm

Nous activons et lançons GDM afin de lancer la GUI de Cinnamon :

sudo systemctl enable gdm
sudo systemctl start gdm

Voici ce qui devrait apparaitre si l’installation s’est bien déroulée

Un noyau personnalisé avec un Splash Screen

Il peut être intéressant d’installer son propre noyau système (ou kernel en anglais). En effet, le noyau d’origine est générique, c’est-à-dire qu’il va pouvoir s’adapter à toute sorte de matériel sur un maximum de machines différentes. De par ce fait, on y retrouve un nombre conséquent de drivers totalement inutiles pour votre configuration ! Et je ne parle pas du nombre de fonctionnalités inutiles dont vous pouvez aisément vous passer. Un des bons moyens d’optimiser tout ça serait de compiler soit même un noyau, en l’adaptant ainsi à ses besoins et à son matériel , chose que nous allons faire dès à présent

Préparation

Nous allons ici compiler un kernel linux en version 4.10.11-1-ARCH. Nous allons donc aller récupérer l’archive sur kernel.org :

 pacman -U https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.11.tar.xz

Nous extrayons l’archive dans le dossier dans lequel nous travaillons ( ici /home/jeremy/kernel ) :

tar -xaf linux-4.10.11.tar.xz

Nous nous rendons dans le répertoire ainsi extrait :

cd linux-4.10.11

Il faut s’assurer d’avoir la bonne configuration de base en détruisant les éventuels fichier de config et ainsi préparer une reconstruction complète du noyau , et ce en root :

make proper

Note : make permet de lancer une série de commande en fonction des fichiers situés dans le fichier Makefiles et d’une série de règles

Nous créons un nouveau fichier .config à partir de la configuration actuelle et nous mettons le fichier de configuration à jour :

zcat /proc/config.gz > .config
make oldconfig

Configuration du noyau

Lançons le menu de configuration du noyau :

make menuconfig

C’est ici que nous allons pouvoir personnaliser notre noyau. Il m’est impossible de vous présenter toutes les possibilités ici, mais je vous ai fait cependant une petite sélection de ce qui me parait intéressant à présenter. Les plus motivés d’entre vous approfondiront donc le sujet grâce à des recherches externes !

Note : Les options annotées d’une * sont compilées en dur dans le kernel, concrètement tous ce qui est nécessaire lors du démarrage tandis que celles annotées d’un M sont compilées en tant que module

  • Configuration effectuée dans le menu général setup

    Kernel compression mode => (LZO) ( cet algorithme de compression du noyau nous permet d’avoir un petit knoyau avec les meilleurs performances de décompression )

    Support for paging of anonymous memory(swap) =>[*] (permet d’avoir le support swap pour notre partition de swap ).Le noyau compile avec l'option -Os ce qui nous permet d’avoir un noyau plus petit )

  • Configuration effectuée dans le menu Processor type and features :

    Symetric multi-processing support [*] ( permet une gestion du processeur multi cœur )

    Processor familly =>generic x86-64 ( famille du processeur )

  • Configuration effectuée dans networking support :

    Désactivation support infrarouge , Bluetooth , radioamateur

Nous sauvegardons avec l’option save , nom du fichier .config puis enfin nous quittons le menu avec l’option exit

Compilation et installation du noyau

Notre noyau a été configuré, nous pouvons donc lancer sa compilation :

make

Cependant dans mon cas une erreur subvient. Et oui suivre un tutoriel ne nous garantis pas une route sans embûche. Fort heureusement, il existe une communauté Arch linux très active sur internet , ainsi je peux rapidement trouver une solution à mon problème .

Effectivement, il semblerait qu’il me manquait tout simplement le programme bc connu sous le nom de basic calculator . Il s’agit d’un interpréteur de commandes Unix qui permet d'effectuer des calculs nécessaires pour compiler le noyau. Il me suffit donc de l’installer afin de résoudre mon problème :

pacman -S bc

Nous pouvons donc relancer la compilation de notre noyau avec make qui se passera cette fois sans problème.

Il nous reste ensuite à installer les modules du noyau. Nous nous plaçons donc dans /lib/modules/linux-4.10.11 et nous tapons la commande suivante :

make modules_install

Nous copions le noyau et le system.map dans le /boot :

cp -v arch/x86/boot/bzImage   /boot/vmlinuz-4.10.11-ARCH
cp -v System.map  /boot/System.map-4.10.11-ARCH

Nous sommes dans le cas d’un noyau modulaire. Ainsi, des modules tels que des drivers peuvent être rajouter même après la compilation du noyau contrairement aux noyaux monolithiques) .

Il nous faut donc créer un ramdisk, c’est-à-dire une disque virtuel permettant de stocker des données dont leur accès doit être très rapide :

mkinitcpio -k 4.10.11 -c /etc/mkinitcpio.conf -g /boot/initramfs-4.10.11-ARCH.img

Note : 4.10.11-ARCH => Il s’agit du numéro de version de notre noyau suivit de la version local , ARCH . Pour être sûr de cette dernière nous pouvons checker dans le dossier /lib/modules .

Le noyau est installé , il nous reste à éditer notre Grub pour pouvoir choisir notre version de noyau lors du démarrage de notre machine .

Modification du grub

Pour éditer facilement notre grub , nous allons avoir recourt au programme grub-customizer . Pour l’installer nous avons besoin du package yaourt. Yaourt est similaire à Pacman à un détail près : Il permet en effet l’installation de package non officiel tel que notre programme grub-customizer .

Pour commencer, nous ajoutons à la fin du fichier de configuration de pacman le dépôt permettant de récupérer le paquet yaourt :

nano /etc/pacman.conf

On y ajoute les lignes suivantes :

[archlinuxfr]
SigLevel=Never
Server=http://repo.archlinux.fr/$arch

Nous mettons ensuite à jour la base de données des dépôts et nous installons yaourt :

pacman -Sy yaourt

Nous sortons du mode root si nous y sommes encore avant d’installer grub-customizer, sinon quoi , pour des raisons de sécurités ,l’installation sera impossible .

Nous installons donc grub-customizer :

yaourt -S grub-customizer

Edit PKBUILD => non
Edit grub-customizer.install => non
Lancer la compilation de grub-customize => yes
Mot de passe : votreMotDePasse
Procéder à l’installation => yes

Ensuite nous nous rendons sur notre terminal en interface graphique et nous lançons grub-installer

Nous retrouvons ici surligné en jaune le noyau que nous avons précédemment installé

Nous allons le sortir du dossier en faisant un clic droit dessus et en sélectionnant l’option « supprimer du sous menu » . Nous faisons ensuite en sorte en cliquant sur la flèche surlignée en jaune de placer l’entrée concernée en tête de liste

Nous pouvons aussi renommer le nom de notre noyau avec un clic droit : Kernel 4.10.11-ARCH ftw par exemple

Nous n’oublions pas de sauvegarder notre configuration avec le bouton enregistrer, puis nous pouvons enfin reboot afin de tester notre nouveau noyau

Nous avons donc bien la possibilité de boot sur notre nouveau noyau « Kernel 4.10.11-ARCH ftw «

Mise en place d’un splash screen

Un petit bonus pour finir ce tutoriel maintenant, la mise en place d’un splash screen au démarrage afin de personnaliser un peu votre configuration !

Nous allons nous servir du programme plymouth afin de mettre en place le splash screen. Nous récupérons l’archive sur un dépôt AUR :aur-archive/plymouth-release

Nous décompressons en tant que root l’archive zip ainsi obtenu vers le dossier plymouth créé au préalable :

unzip plymouth-release-master.zip  -d /home/plymouth 

Nous nous rendons dans le dossier Plymouth-release-master et nous construisons grâce au PKBUILD le package ainsi que toutes ses dépendances :

cd /home/plymouth/plymouth-release-master

Attention quelques précautions sont à prendre avant : Nous devons donner les droits d’écriture dans le dossier plymouth-release-master car makepkg ne peut être exécuter en tant que root . Nous nous mettons en root puis :

chown nomUtilisateur   /home/plymouth/plymouth-release-master
chmod +w  /home/plymouth/plymouth-release-master

Nous pouvons enfin revenir dans notre dossier /home/plymouth/plymouth-release-master et lancer la commande suivante en tant que nomUtilisateur afin de construire le paquet et ses dépendances :

makepkg -s 

Nous installons le paquet depuis notre disque dur puisque que nous venons de le construire , c’est pourquoi nous utilisons l’option U de pacman :

pacman -U plymouth-release-0.8.8-7-x86_64.pkg.tar.xz

Nous éditons le fichier de configuration /etc/mkinitcpio.conf . Il s’agit du premier élément charger en mémoire lors du boot de la machine . C’est un script shell qui va instancier notre environnement :

sudo nano /etc/mkinitcpio.conf

Nous venons rajouter à HOOKS le script plymouth à la suite des scripts qui ont tous une action à effectuer lors du démarrage de la machine

Nous éditons le fichier /etc/default/grub de la manière suivante :

On génère les images par défaut en utilisant la présélection linux :

sudo mkinitcpio -p linux

Nous voyons que le script plymouth a bien été ajouté

Nous mettons à jour notre fichier de configuration grub :

sudo grub-mkconfig -o /boot/grub/grub.cfg

Nous ajoutons un theme par default à plymouth :

sudo plymouth-set-default-theme -R spinfinity

Nous redémarrons et voilà le splash screen qui s’affiche au démarrage et à la fermeture de la machine si tout s’est bien passé.

Conclusion

Voilà donc pour ce tutoriel qui vous aura permis, je l’espère de vous familiariser avec Arch linux tout en vous permettant de mettre en place un environnement de base adapté à vos besoins !

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels