Vous êtes sur la page 1sur 289

Administration

GNU - LINUX
PLAN
1. Introduction
2. Installation du système
3. FHS
4. Démarrage et arrêt
5. Installation et dés-installation des paquetages
6. Gestion des utilisateurs
7. Impression sous Linux
8. Gestion des Systèmes de Fichiers
9. Noyau : Compilation et Installation
10. Journalisation et Observation
11. Configuration réseau

A. El Hadri Administration Linux I-2


Introduction


Termes à définir

– UNIX
– GNU/LINUX
– Distributions GNU/LINUX

A. El Hadri Administration Linux I-3


Unix

UNIX™ est le nom d'un système d'exploitation multitâche et
multiutilisateur créé en 1969, à usage principalement professionnel,
conceptuellement ouvert et fondé sur une approche par laquelle il offre de
nombreux petits outils chacun dotés d'une mission spécifique.

Il a donné naissance à une famille de systèmes, dont les plus populaires
sont Linux, Mac OS X et Solaris.

On nomme famille Unix l'ensemble de ces systèmes. On dit encore qu'ils
sont de type Unix

Il existe aujourd'hui un ensemble de standards réunis sous la norme
POSIX qui vise à unifier certains aspects de leur fonctionnement.
Wikipédia

A. El Hadri Administration Linux I-4


Unix : caractéristiques 1

Écrit à 98% en langage C, portable.

Énormément de versions (HP/UX, XENIX, AIX, SOLARIS,
IRIX, LINUX) se rapprochant des 2 branches SysV & BSD.

Multi-tâches

Multi-utilisateurs

multi-plateformes : Intel, Motorola (Apple MAC et Amiga),
Sun Sparc, DEC Alpha, ...

Plusieurs interfaces graphiques, aisées; plusieurs systèmes
d’interpréteurs de commandes (shell).

A. El Hadri Administration Linux I-5


Unix : caractéristiques 2

Gestion hiérarchique des fichiers.

Sécurité par fichier (fonctions & appartenance), info
temporelles.

Indépendance des périphériques (son succès!).
Notion de device file.

Exécution en tâche de fond possible.

Redirection des I/O.

A. El Hadri Administration Linux I-6


Unix : avantages & inconvénients

Avantages multiples :
– Très grande fiabilité.
– Multi plateformes (tout processeur),
– Patrimoine applicatif très riche (FTP, news, WWW,
messagerie, compilo, outils d’admin & sécurité, etc.).
– Enormément de logiciels free/shareware.

Inconvénients :
– Trop de standards : portage difficile.
– Administration pour les avertis

A. El Hadri Administration Linux I-7


GNU

Acronyme récursif qui signifie en anglais "Gnu's Not Unix"

Système libre conçu pour être compatible avec Unix mais
complètement nouveau (par l'absence de tout code source
d'origine Unix).

Le projet GNU est lancé par Richard Stallman en 1984 afin
de créer un système d'exploitation libre et complet.

En 1985, Stallman crée la Free Software Foundation (FSF),
structure logistique, légale et financière du projet GNU

A. El Hadri Administration Linux I-8


G N U - Linux

À partir de 1990, le système GNU dispose d'un ensemble important
d'applications: éditeurs, compilateurs, bibliothèques système...etc.
Le principal composant encore manquant étant le noyau.

Le projet GNU avait prévu le développement du noyau Hurd pour
compléter le système, mais au début des années 1990, Hurd ne
fonctionnait pas encore et son développement rencontrait encore
des difficultés

L'arrivée du noyau Linux (fin 1991) compléta le projet GNU

En janvier 2004, l'Unesco a inscrit comme "Trésor du monde" le
projet GNU.

A. El Hadri Administration Linux I-9


Linux

Au sens strict, Linux est le nom du noyau de système d'exploitation
libre, multitâche, multiplate-forme et multi-utilisateur de type
UNIX créé par Linus Torvalds.

Par extension, Linux désigne couramment le système d'exploitation
libre combinant le noyau et un ensemble d'utilitaires GNU (emacs,
gcc, ...) et d'applications libres (Xwindow, LaTeX, ...)

Pour désigner cet ensemble, la Free Software Foundation (FSF)
soutient la désignation GNU/Linux afin de rappeler que le noyau
Linux est généralement distribué avec de nombreux logiciels ainsi
que l'infrastructure du projet GNU.

A. El Hadri Administration Linux I - 10


Distribution Linux

Pour l'utilisateur final, Linux se présente sous la forme d'une distribution
Linux.

Une distribution Linux (ou distribution GNU/ Linux) est un ensemble
cohérent de logiciels rassemblant un noyau Linux, des logiciels issus du
projet GNU, et des logiciels supplémentaires, le plus souvent libres.

Les distributions comprennent le plus souvent un logiciel d'installation et
des outils de configuration.

Il existe de nombreuses distributions, chacune ayant ses particularités :
certaines sont dédiées à un usage spécifique (pare-feu, routeur, grappe de
calcul...), d'autres à un matériel spécifique, par contre les grandes
distributions restent à usage générale.

A. El Hadri Administration Linux I - 11


Distributions Linux
Liste non exhaustive des distributions :
– RedHat – Fedora - CentOS
– Debian
– Suse
– Ubuntu
– Slackware
– Arch-Linux
– Gentoo
– …
+ mini-distributions: Trinux, DosLinux, …

A. El Hadri Administration Linux I - 12


GNU / Linux : le présent

Support de plusieurs architectures (x86, ppc, ...)

Multiples interfaces graphiques utilisateur,

Gestion multiprocesseurs

Facilité (modularité) d’installation,

Réactivité et adaptation au matériel récent et aux besoins
spéciaux (temps réel, sécurité, etc),

Existence de centres de services

Outils dédiés à ce système.

A. El Hadri Administration Linux I - 13


Installation
CentOS 8

A. El Hadri Administration Linux I - 14


CentOS : Présentation
• CentOS est une distribution Linux basée sur la Red Hat
Enterprise Linux. Elle est compilée directement à partir des
codes sources fournis par RedHat.
• Le cycle de vie d'une CentOS est le même que la distribution
d'origine : à une version de RedHat correspond une version de
CentOS.
• La CentOS est une distribution Open Source. Elle est gratuite
et compatible avec les paquets de la RedHat.
• À ce jour (Mars 2020) la dernière version disponible est 8.1
(1911)

A. El Hadri Administration Linux I - 15


Médias d’installation
• Les fichiers iso sont disponibles pour téléchargement depuis
le site officiel (www.centos.org) ou l’un de ses miroirs :
– CentOS-Stream-8-x86_64-20191219-dvd1.iso Dec-2019 ~ 9Go
– CentOS-8.1.1911-x86_64-dvd1.iso Jan-2020 ~ 7,5Go
– CentOS-8.1.1911-x86_64-boot.iso Jan-2020 ~ 600Mo

• En plus de la version « standard » et de la version minimal


CentOS propose la version « Stream » en « Rolling Release »

A. El Hadri Administration Linux I - 16


Matériel requis
• En générale le minimum requis dépend principalement de la
la version :
• Pour la DVD (version x86_64)
– Mémoire :  Min = 1,5Go.
Recommandée : 2Go
– Disque :
• 10 Go pour une installation complète + l'espace swap
• + 200Mo nécessaire au moment de l'installation
• + espace de travail des utilisateurs.

A. El Hadri Administration Linux I - 17


Préparatifs

• Pour une installation sur une machine virtuelle :


Créer la machine virtuelle avec au moins 1CPU, 2Go
de RAM et 20Go de disque + carte réseau Ethernet en
mode Bridge ou NAT
• Pour une installation en « dual-boot »
Revoir les partitions existantes afin de réserver l'espace
nécessaire à l'installation du nouveau système
Outils (Défragmentation & Partitionnement) à
envisager : live gtarted, fdisk, Partition Magic, ...

A. El Hadri Administration Linux I - 18


Plan d'installation
• Démarrer le système à partir d’une unité "bootable" :
DVD, CD, ou clé USB
• Le système chargé en mémoire crée un Ramdisk et démarre
l'installation qui vous demande de :
– Choisir le langage et le type du clavier
– Configurer le time_zone
– Choisir le mot de passe pour le compte de l’administrateur.
– Créer les partitions
– Instaler et configurer le chargeur GRUB
– Choisir les paquetages à installer

A. El Hadri Administration Linux I - 19


Démarrage :

Ci-contre la
première image
qui s'affiche
lorsque la
machine
démarre à
partir du
USB/DVD
d'installation
de CentOS

A. El Hadri Administration Linux I - 20


Choix du mode d'installation

• Le premier écran d'installation offre 3 possibilités :


– Installer CentOS ;
– Dépanner une installation existante ;
– Tester le support avant de démarrer l’installation
• Pour régler certains problèmes d'affichage lors de
l'installation ou passer outre la détection automatique du
matériel, plusieurs options sont possibles. Pour pouvoir les
entrer, il suffit d'appuyer sur la touche [ECHAP] lorsque le
menu est affiché puis saisir l’une des options disponibles
(transparents suivant).

A. El Hadri Administration Linux I - 21


Options
Quelques options disponibles:
• linux vesa : pour utiliser les pilotes Vesa si on a des problèmes d'affichage
• Linux 1024*768 : pour configurer la résolution de l'écran si elle est mal
détectée
• linux noapic : APIC = Advanced Programmable Interrupt Controller
• linux acpi=off : ACPI = Advanced Configuration and Power Interface (pour
désactiver la gestion de l'énergie)
• linux clocksource=acpi_pm : Utilisé si l'installation se bloque à /sbin/loader
• linux pci=nomsi : Utilisé pour la reconnaissance de certain disques en
SATA ;
• linux vnc : Utilisé pour l'installation avec vnc.
Remarque : pour enchainer les options, les ajouter à la suites les une des autres:
linux vesa pci=nomsi

A. El Hadri Administration Linux I - 22


Démarrage de l’installation

A. El Hadri Administration Linux I - 23


Choix de Langue & clavier
• Juste après le démarrage, l’application d’installation (Anaconda) vous
demande de choisir la langue puis la disposition de votre clavier.
• Le choix de la langue française par exemple entrainera l’installation
en plus des interfaces en cette langue, le manuelle en Francais, le
correcteur d’orthographe, ...
• Pour un clavier « azerty » français vous avez le choix entre plusieurs
claviers comme Latin-1 ou Latin-9, ce dernier présente plus de
caractère (notamment le signe €), il est donc fortement conseillé de le
choisir.
• Le clavier proposé par l'outil d'installation (Anaconda) est fonction de
la langue choisie est non suite à une détection automatique. Veuillez
alors le modifier si nécessaire.

A. El Hadri Administration Linux I - 24


Menu
• Comme nouveauté de cette version 7, Anaconda vous
présente un menu d’installation vous permettant de régler les
différents paramètres d’installation dans l’ordre qui vous
convient
• Ce menu vous permet de fixer ou modifier :
– La date et l’heure
– La langue et clavier
– La configuration des interfaces réseaux et le nom d’hôte
– La source de l’installation
– La destination (l’endroit où installer)
– La liste des logiciels à installer

A. El Hadri Administration Linux I - 26


Config de l’interface réseau
En appuyant sur le bouton « Réseau et nom d’hôte » l’image suivante apparaît
vous permettant de choisir le nom du système, d’activer ou désactiver chacune
des interfaces disponibles et de les configurer

A. El Hadri Administration Linux I - 28


Config de l’interface réseau

Carte réseau
activée

A. El Hadri Administration Linux I - 29


Config de l’interface réseau

Écran de
configuration de
l’interface réseau
donnant le choix entre
une configuration
statique (manuelle) ou
dynamique (via dhcp)

A. El Hadri Administration Linux I - 30


Source de l’installation
L'écran ci-dessous permet de choisir le USB/DVD comme source d’installation
ou par contre choisir un serveur web ou ftp externe.

A. El Hadri Administration Linux I - 31


Destination de l’installation
Le bouton « Destination de l’installation » vous permet de
• Choisir le ou les disques où le système sera installer
• Le schéma de partitionnement à appliquer (partition standard, Logical
Volume, …)
• La liste des volumes à créer : pour chacun d’eux il faut préciser
– la nature (racine, swap, …),
– la taille,
– éventuellement le type de formatage à appliquer,
– le nom de volume (étiquette)
– cryptage, ...

A. El Hadri Administration Linux I - 32


Destination de l’installation

On coche la liste
des disques dans
lesquels le système
sera installé

Choisir entre le
Partitionnement
Manuel ou
automatique

A. El Hadri Administration Linux I - 33


Destination de l’installation

La liste des volumes


à créer

Le détail concernant
le volume
sélectionné
Boutons pour créer/
supprimer les
volumes

A. El Hadri Administration Linux I - 34


Partitions requises (1)
Pour l’installation de Gnu/Linux, il est vivement conseillé
de créer au minimum les trois partitions suivantes :
/boot d’une taille de 200Mo à 1024Mo, elle abritera tout ce qui
est nécessaire au démarrage de la machine: le(s) chargeur(s)
et le(s) noyau(x) Linux. Pour les machine relativement
anciennes elle doit résider en deçà du cylindre 1023 du
disque.
/ à partir de 1024Mo : elle contient le système de fichiers
racine de Linux « / ». Dans cette configuration, tous les
fichiers (sauf ceux stockés dans /boot) se trouvent sur cette
partition

A. El Hadri Administration Linux I - 35


Partitions requises (2)
swap (d'au moins 256 Mo) — les partitions swap sont utilisées
pour prendre en charge la mémoire virtuelle. En d'autres
termes, les données transférées sur une partition swap
lorsqu'il n'y a pas assez de RAM pour continuer à exécuter
les applications.
L'espace swap devrait être égal à deux fois la quantité de
RAM physique jusqu'à 2 Go de RAM physique et une fois et
demi à une fois la quantité de RAM physique pour toute
quantité au-dessus de 2 Go.
La quantité d'espace swap varie selon les critères suivants :
- Les applications devront tourner sur le système.
- La quantité de RAM physique installée sur la machine.
- La version du noyau.

A. El Hadri Administration Linux I - 36


Autres Partitions (1)
Les principales autres partitions qu’ont peut ajouter pour une
installation professionnelle sont :
/home sa taille dépend du nombre d'utilisateurs et de leur
consommation d'espace disque.
/var Elle contient les fichiers et répertoires variables. En
particulier les files d'attente (spool) et fichiers de
journalisation (logs).
/usr/src Elle contient les sources du noyau et des paquetages.
Ce répertoire est indispensable pour régénérer un noyau
personnalisé.

A. El Hadri Administration Linux I - 37


Partitionnement
• Les deux partitions « / » et « swap » sont indispensables pour
toute installation de Gnu/Linux
• En fonction d’usage et d’espace disque disponible, Il est parfois
souhaitable de créer les autres partitions : /boot, /home, ...
• Avantage :
– Structuration
– Fiabilité
– Partage
– Sécurité
• L’utilitaire de partitionnement utilisé est: Disk Druid
• Pour chaque partition à créer on doit spécifier :
– Le type (swap, ext*, ….)
– Le répertoire de montage (pour les partitions non swap)
– La taille

A. El Hadri Administration Linux I - 38


Sélection de Logiciels

Cet écran permet


de choisir les
groupes de
Logiciels à
installer

A. El Hadri Administration Linux I - 39


Hiérarchie des répertoires
LINUX

A. El Hadri Administration Linux I - 40


FHS
• Filesystem Hierarchy Standard (« norme de la hiérarchie des
systèmes de fichiers », abrégé en FHS) définit l'arborescence et
le contenu des principaux répertoires des systèmes de fichiers
des systèmes d'exploitation GNU/Linux et de la plupart des
systèmes Unix.

• La version actuelle est la 2.3, publiée en janvier 2004.

A. El Hadri Administration Linux I - 41


FHS
• La standardisation de la hiérarchie de système de fichiers a
commencé en août 1993 par le FSSTND (Filesystem Standard)
dont la première version remonte au 14 février 1994.

• En 1996, la définition de ce standard a été généralisée aux


différents Unix. Ce standard est alors renommé en Filesystem
Hierarchy Standard.

• Le FHS est maintenu par le Free Standards Group qui compte


parmi ses membres Hewlett-Packard, Red Hat, IBM, Dell, etc.

• La vaste majorité des distributions GNU/Linux ne respectent


pas strictement le standard (répertoire /srv par exemple)

A. El Hadri Administration Linux I - 42


Hiérarchie des répertoires
(FHS)

bin dev sys mnt root var boot …

etc lib sbin usr proc tmp home Lost+found

A. El Hadri Administration Linux I - 43


/bin , /sbin , /lib
• /bin, /sbin et /lib contient des outils indispensables qui
doivent être disponibles dans les pires conditions
• Il doivent toujours loger dans le système de fichier racine.
/bin exécutables pour tous les utilisateurs (ls, cp, mv, vi,
bash, ...)
/sbin exécutable pour administration (shutdown, ifconfig,
arp, dump, fsck, …)
/lib contient les bibliothèques partagées (shared libraries)
utilisés par la quasi-totalité des exécutables système

A. El Hadri Administration Linux I - 44


/dev
• /dev contient des fichiers spéciaux (device files) correspondant aux
périphériques
• La plupart des périphériques sont représentés par des fichiers spéciaux
se trouvant dans le répertoire /dev
• les fichiers spéciaux ne prennent quasiment pas de place sur le disque,
et sont utilisés pour dialoguer avec le système.
 tout accès à un fichier spécial se traduit par un accès
physique au périphérique correspondant :

ls -l > ~/lsfile le résultat de la commande est écrit


dans un fichier ordinaire.
ls -l > /dev/lp0 le résultat de la commande est redirigé
vers le port parallèle.

A. El Hadri Administration Linux I - 45


/dev
• L’accès aux device files est généralement réservé à l’administrateur
• Deux type de fichiers spéciaux :
– Block device files
– Character device files :
• Les fichiers en mode bloc sont des périphériques comme des disques
(où les données sont accessibles à travers un numéro de bloc, et où il est
intéressant d'avoir une mémoire cache). Tous les autres périphériques
sont en mode caractère.
• avec la commande : ls -l /dev
les lettre b et c débutent respectivement les lignes correspondant aux Block
device files et Character device files.

A. El Hadri Administration Linux I - 46


/dev
# ls -l /dev
brw-rw---- 1 root floppy 2, 0 Aug 30 2002 fd0
brw-rw---- 1 root disk 3, 0 Aug 30 2002 hda
brw-rw---- 1 root disk 3, 1 Aug 30 2002 hda1
brw-rw---- 1 root disk 22, 0 Aug 30 2002 hdc
crw-rw---- 1 root lp 6, 0 Aug 30 2002 lp0
brw------- 1 root disk 8, 0 Aug 30 2002 sda
crw--w---- 1 root root 4, 0 Aug 30 2002 tty0
crw------- 1 root root 4, 1 Sep 27 12:16 tty1

Major Number Minor Number

A. El Hadri Administration Linux I - 47


/dev
• Le numéro majeur d’un fichier spécial sert à identifier le pilote
correspondant
• Le numéro mineur identifie un des périphériques parmi ceux gérés par le
même pilote ou une autre manière de le considérer (densité,
rembobinage, ...)
• Traditionnellement le contenu de /dev est créer à l’installation du
système grâce au script MAKEDEV.
• MAKEDEV utilisait la commande Unix mknod pour créer tous les
fichiers spéciaux correspondant à tous les périphériques possibles
Syntaxe: mknod [-m mode] nom {bc} majeur mineur

A. El Hadri Administration Linux I - 48


devfs
• La création statique à l’installation de l’ensemble des fichiers spéciaux
possibles a comme :
– Avantage : la simplicité
– Inconvénients : exhaustivité difficile, consomme beaucoup de
ressources (environ 18 000 fichiers sont créés dans Fedora Core 1)
• À partir du noyau 2.3.46 le répertoire /dev est remplacé par le système
de fichier devfs dont le but est de créer dynamiquement seuls les fichiers
spéciaux correspondant aux périphériques détectés.
– Avantage : consomme moins de ressources
– Inconvénients : pas de possibilité de configurer le système de
nommage des fichiers spéciaux créés

A. El Hadri Administration Linux I - 49


udev
• Avec le développement du noyau 2.5, un nouveau système de fichiers
virtuel appelé sysfs est arrivé.
• Le travail de sysfs est d'exporter une vue de la configuration matérielle
du système vers les processus en espace utilisateur « user space ».
• devfs est alors remplacé par un autre système : udev tournant dans
l’espace utilisateur et permettant :
– La création / destruction à la volé des fichiers /dev correspondant
aux périphériques insérés / retirés.
– La personnalisation des noms attribués aux nouveaux périphériques
détectés.

A. El Hadri Administration Linux I - 50


Quelques fichiers /dev
• Quelques fichiers spéciaux intéressants :
– /dev/hda le premier disque non SCSI
– /dev/hda1, /dev/hda5 respectivement la première et la cinquième partition
du premier disque du premier contrôleur non SCSI
– /dev/fd0 disquette
– /dev/cdrom généralement un lien vers le CD_ROM
– /dev/lp0 la première sortie parallèle (lpt1)
– /dev/ftape lecteur de bandes non SCSI
– /dev/sda le premier disque SCSI
– /dev/sda1 la 1ière partition du 1ier disque SCSI
– /dev/st0 le 1ier lecteur de bandes SCSI
– /dev/tty1 le 1ier terminal virtuel. Accessible via la touche [ctl] [alt] [F1]
– /dev/pts/? sont crées dynamiquement pour représenter les fenêtres X et
les connexions à distance
– /dev/ttyS0 la première sortie série (COM1)

A. El Hadri Administration Linux I - 51


Quelques fichiers /dev
• Quelques fichiers spéciaux correspondant à des pseudo-
périphériques :
– /dev/null la poubelle, tout ce qui écrit dans /dev/null est complètement
ignoré
– /dev/zero un générateur de zéros
– /dev/tty le terminal de contrôle du programme en cours d’exécution
– /dev/mem la mémoire physique. Utilisé généralement par les outils de
débeugage
– /dev/random générateur de nombres aléatoires

A. El Hadri Administration Linux I - 52


/etc
• /etc contient les fichiers et scripts de configuration des
différents services du système.
• Doit se situer obligatoirement dans la partition racine
• Contient les répertoires suivants :
– /etc/X11 les fichiers de configuration de Xwindow
– /etc/rc.d les scripts de démarrage du système
– /etc/cron les tâches à effectuer à la périodicité donnée
(daily, hourly, monthly, weekly)
– /etc/skel les fichiers à recopier dans le répertoire d'un
nouvel utilisateur
– /etc/sysconfig les fichiers de configuration des périphériques

A. El Hadri Administration Linux I - 53


/usr
• Unix System Resources
• Contient les programmes, utilitaires et librairies non
indispensables au fonctionnement du système
• Généralement mis dans une partition séparée.
– Peut être accessible en lecture seule (read only)
– Peut être monté en NFS

A. El Hadri Administration Linux I - 54


/usr
contient :
bin, sbin et lib les équivalents de /bin, /sbin et /lib
etc les fichiers de configuration des applications. Ce
répertoire est très rarement utilisé, en effet, la
plupart des applications installe leurs fichiers de
configuration directement sous /etc
include les fichiers (.h) pour le compilateur C.
local arborescence des fichiers propres à la machine.
share contient les fichiers indépendants de l'architecture :
manuel, docs, images, etc...
src est un emplacement contenant les sources
game contient les données relatives aux jeux installés

A. El Hadri Administration Linux I - 55


/var
Le répertoire /var contient :
• les fichiers dont la taille peut croître considérablement (log
files)
• les fichier de verrouillage des ressources (lock files)
• les répertoires dont le contenu varie considérablement
– Les boites aux lettres
– Les spools d’impression
– …
• Les fichiers temporaires sauvegardés plus longtemps.
• /var doit avoir de préférence sa propre partition.

A. El Hadri Administration Linux I - 56


/var
Quelques sous-répertoires
/var/lock contient les "fichiers de verrouillage".
Généralement des fichiers vides, leur simple
présence permet de verrouiller l’accès aux
ressources correspondantes
/var/catman les fichiers d'aide mis en forme
/var/log est utilisé pour stocker les divers journaux du
système.
/var/spool contient les files d'attentes (cron, lpd, mail,…)
/var/run les fichiers contenant les "pid" des processus des
différents services système

A. El Hadri Administration Linux I - 57


/proc
• /proc est un pseudo-système de fichiers utilisé comme
interface avec les structures de données du noyau.
• L’objectif principal de /proc est d’exporter quelques
informations gérées par le noyau vers le « user space »
• Beaucoup de commandes GNU/Linux (ps, top, vmstat, etc.)
tirent leurs informations de ce système de fichiers.
• Les fichiers et répertoires de /proc sont virtuels parce que les
données ne sont pas réellement enregistrées sur le disque ;
ils sont créés dynamiquement en mémoire.

A. El Hadri Administration Linux I - 58


/proc : Informations sur les processus (1)

Chaque processus qui tourne dans le système est représenté par un répertoire
sous /proc dont le nom n’est rien autre que le pid correspondant et qui
contient les fichiers et répertoires suivants:
cmdline La ligne de commande du processus. Les arguments sont séparés
par le caractère null
cwd Un lien sur le répertoire de travail courant
environ Contient l'environnement du processus. Liste (variable, valeur)
exe Un pointeur sur le fichier binaire exécuté,
fd Un sous-répertoire contenant un lien pour chaque fichier ouvert.
maps Un fichier contenant les régions mémoire actuellement
Projetées et leurs autorisations d'accès.
mem L'espace mémoire du processus
root Racine du système de fichier du processus, configurable (chroot)
stat Informations sur l'état du processus.

A. El Hadri Administration Linux I - 59


/proc : Informations sur les processus (2)
En plus des répertoires représentant les processus, /proc contient :
cpuinfo informations dépendantes de l'architecture et du processeur.
devices Liste littérale des groupes de périphériques et des numéros
majeurs.
dma Il s'agit d'une liste des canaux DMA en cours d'utilisation.
filesystems Liste des systèmes de fichiers utilisés par le noyau.
interrupts Il s'agit du nombre d'interruptions reçues pour chaque IRQ.
ioports Liste des régions d'entrée-sortie en cours d'utilisation.
kcore l’espace mémoire du kernel.
kmsg peut être utilisé à la place de l'appel syslog
ksyms Symboles exportés par le noyau et utilisés pour assurer
l'édition dynamique des liens des modules chargeables.
loadavg Ce fichier indique les charges système : uptime

A. El Hadri Administration Linux I - 60


/proc : Informations sur le système
locks Ce fichier montre les verrouillages actuels des fichiers.
meminfo Indique les quantités de mémoires (physique et swap) libres et
utilisées
modules Une liste littérale des modules qui ont été chargés.
net Regroupe divers pseudo-fichiers relatifs aux fonctionnalités
réseau regroupées par couche (arp, rarp, raw, tcp, …)
pci Liste de tous les périphériques PCI détectés pendant
l'initialisation ainsi que leurs configurations.
self Lien vers le répertoire /proc du processus accédant au /proc.
sys Ce répertoire contient un ensemble de fichiers et de sous-
répertoires correspondant à des variables internes du noyau.
uptime Contient deux valeurs : la durée de fonctionnement (en sec), et
le temps écoulé à ne rien faire (idle), en secondes
version Cette chaîne identifie la version du noyau en cours d'exécution.

A. El Hadri Administration Linux I - 61


Autres répertoires
/boot Contient les fichiers utiles pour le chargeur (les
chargeurs eux mêmes + noyaux Linux)
/home Les espaces privés des utilisateurs.
/mnt Contient des répertoires utilisés comme points de
montage des partitions externes au système
/media Contient les points de montage des unités
amovibles : disquette, CD_ROM, mémoire flash...
/tmp Contient les fichiers temporaires.
/root L’espace de travail privé de l’administrateur (root)
/lost+found Utilisé par fsck pour y mettre les fichiers perdus et
récupérés.

A. El Hadri Administration Linux I - 62


Démarrage et Arrêt
du système
Processus de démarrage
Power on
BIOS
Pré-OS UEFI

GRUB2
Boot Loader LILO
BURG

Linux Kernel
INITSYSV
System Process PID 1 SYSTEMD
ready …

A. El Hadri Administration Linux I - 64


Démarrage : Bios
– analyse la configuration matérielle de l'ordinateur:
Recensement des périphériques + Test de certains
périphériques :
• Test de la mémoire,
• Test de la présence de clavier, ...
• Test de la présence des disques durs, lecteurs de
CDROM IDE
• Assignation d'une IRQ pour le contrôleur SCSI
• … 
– Localisation de l'OS

A. El Hadri Administration Linux I - 65


Démarrage : Bios
– Lancement de l'OS

lit les 512 premiers octets du périphérique
d'amorçage : soit le premier secteur (MBR =
Master Boot Record) sur un disque dur ; soit le
secteur d'amorçage sur disquette ou CD.

Ce secteur contient
– un boot Loader (LILO, GRUB,…) et
– la table des partitions

A. El Hadri Administration Linux I - 66


GRUB

GRand Unified Bootloader est actuellement le chargeur par
défaut de la plupart des distributions Linux

Supporte le chargement de plusieurs noyaux 32 ou 64 bits :
Linux, Hurd, FreeBSD, NetBSD, OpenBSD ...

En plus de l'interface menu habituelle Grub possède une
interface en ligne de commande offrant un jeu de commande pre-
OS relativement riche et flexible

Supporte plusieurs systèmes de fichiers de façon transparente
comme les ext2fs, BSD FFS, DOS FAT16 et 32, Minix fs,
ReiserFS, JFS, XFS ...

A. El Hadri Administration Linux I - 67


GRUB
● Le fichier de configuration /boot/grub/grub.conf ou menu.lst est
lu à chaque démarrage de la machine. Plus besoin de réinstaller
après chaque modification de la configuration
● Supporte le mode LBA (Logical Block Addressing ). Permet
d’accéder aux blocs disque se trouvant au delà du cylindre 1023

Est indépendant des traductions de géométrie du disque

Supporte le démarrage depuis un réseau : il est tout à fait
possible de charger des images d'OS sur un réseau en utilisant le
protocole TFTP.

Supporte le contrôle de démarrage à partir des terminaux distants
pour les ordinateurs sans console.

A. El Hadri Administration Linux I - 68


GRUB : Structure
Comme LILO, GRUB est scindé en 2 parties :
– la première réside dans le MBR (fait moins de 512 octets).
Elle est chargée de lancer la partie 1.5 ou directement la
partie n°2 qui chargera le noyau.
– La partie 1.5: sollicitée  si l’accès à la deuxième partie (se
trouvant dans un système de fichiers) nécessite un
intermédiaire.
– La deuxième partie de GRUB lit le fichier de configuration :
/boot/grub/grub.conf et l'interprète pour afficher le menu
contenant les systèmes opératoires (et les différents noyaux
Linux) amorçables.

A. El Hadri Administration Linux I - 69


Démarrage : GRUB
Si le fichier de configuration est absent ou corrompu; GRUB
affiche un message d’erreur et passe en mode texte pour permettre
à l'utilisateur de saisir manuellement les commandes nécessaires
pour achever le processus de démarrage :

GNU GRUB version 0.95 (640K lower / 3072K


upper memory)
[ Minimal BASH-like line editing is supported.
For the first word, TAB lists possible command
completions. Anywhere else TAB lists the
possible completions of a device/filename.]

grub>

A. El Hadri Administration Linux I - 70


Démarrage : GRUB
La commande help affiche la liste d’une cinquantaine de
commandes.

Grub> help --all


blocklist FILE boot
chainloader [--force] FILE cat FILE
clear cmp FILE1 FILE2
color NORMAL [HIGHLIGHT] configfile FILE
displaymem find FILENAME
help [--all] [PATTERN...] initrd FILE [ARG ...]
md5crypt password [--md5] PASSWD
quit root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]] lock
install [--stage2=S2_FILE] [--forc ioprobe DRIVE
kernel [--no-mem-option] [--type=TYPE]
...

A. El Hadri Administration Linux I - 71


Démarrage : GRUB

Ces commandes permettent de :
– Lire, comparer et rechercher des fichiers (ou blocks) sur
disque ou support externe: cat, cmp, find, ...
– Fixer le partition ou le support de démarrage: root,
rootnoverify
– Choisir le système à démarrer ainsi que ces paramètres de
démarrage : kernel, initrd, chainloader, ...
– ...
● d’autres commandes (color, default, timeout, ...)
ne sont possibles que dans le fichier de configuration.

A. El Hadri Administration Linux I - 72


GRUB : terminologie

Sont utilisés dans le fichier de configuration et dans les commandes
passées à GRUB en mode texte :
– Disques : sont représentés par :
(<type-of-device><bios-device-number>,<partition-
number>)
(hd0,0) dénote la première partition du premier disque.
- hd pour les disques SCCI, IDE, …
- fd pour les disquettes
– Fichiers : sont notés par:
(<type-of-device><bios-device-number>,<partition-
number>) /path/to/file
– GRUB's Root File System : le système de fichier racine de GRUB.
Généralement est le système de fichiers /boot de Linux.

A. El Hadri Administration Linux I - 73


GRUB : commandes
L’interface commande est accessible en appuyant sur la touche c à
partir du menu
– boot — démarre le système /noyau précédemment chargé
– initrd <file-name> — permet de spécifier le fichier RAM disk à
utiliser au démarrage. initrd est indispensable quand le kernel
nécessite certains modules pour son démarrage. Par exemple lorsque
le système de fichiers racine est formaté en ext3.
– kernel <kernel-file-name> <option-1> ... <option-N> — Spécifie
le fichier image à charger à partir du système de fichier de GRUB.
Ex : kernel /vmlinuz root=/dev/hda5

– root <device-and-partition> — Configure la partition contenant le


système de fichier racine de GRUB.

A. El Hadri Administration Linux I - 74


GRUB : commandes
Autres commandes :
– Displaymem — affiche la taille mémoire (information tenue du BIOS).
– install <stage-1> <install-disk> <stage-2> p <config-file>
installe GRUB à partir des fichiers <stage-1> et <stage-2> en
considérant le fichier de configuration <config-file>
Ex: pour installer GRUB dans le MBR.
install (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 p (hd0,0)/grub/grub.conf
– chainloader <file-name> — charge le fichier ou bloc spécifié pour
lancement en chaîne. Utilisez +1 comme nom de fichier pour charger le
premier secteur de la partition désignée.

A. El Hadri Administration Linux I - 75


GRUB : Fichier de configuration
• /boot/grub/grub.conf : structuré en sections, chacune
décrivant un système ou noyau linux amorçable par GRUB
• Quelques commandes en plus de ceux citées précédemment :
– color <normal-color> <selected-color> — Spécifie les couleurs
de visualisation du menu. Ex :
color red/black green/blue
– default <title-name> — Spécifie le système à amorcer par défaut
– fallback <title-name> — le système à amorcer si la première
tentative échoue.

A. El Hadri Administration Linux I - 76


GRUB : Fichier de configuration
Autres commandes :
– hiddenmenu — Pour ne pas afficher le menu. La touche [Esc] peut
forcer l’affichage
– password <password> — fixe un mot de passe pour une entrée.
– timeout — fixe l’intervalle (en deci_secondes) avant le chargement du
système par défaut
– splashimage — Spécifie l’image à afficher au moment du
démarrage.
– title — débute une section. Elle spécifie le nom du système qui sera
visualisé dans le menu.

A. El Hadri Administration Linux I - 77


/boot/grub/grub.conf : Exemple
verbose=0
default=0
timeout=5
splashimage=(hd0,4)/grub/cenos.xpm.gz
hiddenmenu
title CentOS (2.6.34.fc13.x86_64)
root (hd0,4)
kernel /vmlinuz-2.6.34.fc13.x86_64 ro
root=UUID=8734147e-50bd-4223-8fcf-4631ac807aa6
LANG=fr_FR.UTF-8 rhgb quiet vga=0x318 nomodeset
initrd /initramfs-2.6.34.7-61.fc13.x86_64.img
title Windowz Vista
rootnoverify (hd0,0)
chainloader +1

A. El Hadri Administration Linux I - 78


GRUB : Installation

Si GRUB n’as pas été mis en place au moment de
l’installation du système :
– Vérifiez si le paquetage GRUB (la dernière version) est
installé
– Mettez en place le chargeur en exécutant la commande:

/sbin/grub-install <location>
où <location> est l’endroit où l’on désir mettre la première
partie du chargeur GRUB. Ex:
/sbin/grub-install /dev/sda

A. El Hadri Administration Linux I - 79


GRUB 2

Le code de Grub est, d'après ses développeurs, difficile à
maintenir, trop complexe, souffre d'erreurs de conception
limitant son développement.

Ce code a été complètement réécrit donnant naissance à une
nouvelle version : GRUB 2. : L’ancienne version est désormais
connu sous le nom de GRUB Legacy.

Grub Legacy est toujours maintenu, mais aucune nouvelle
fonctionnalité ne sera rajoutée.

GRUB2 a pour but d'être un chargeur d'amorçage plus modulaire
et portable que son prédécesseur. Il est devenu le chargeur par
défaut de la plupart des distributions

A. El Hadri Administration Linux I - 80


GRUB2 vs GRUB legacy (1)

les fichiers de GRUB 2 sont situé à trois endroits:
/boot/grub/grub.cfg, /etc/grub.d et /etc/default/grub

le fichier de configuration a été renommé en grub.cfg
(anciennement grub.conf). Il possède une nouvelle syntaxe ainsi
que de nouvelles commandes.

grub.cfg est maintenant un véritable script: variables, conditions
et boucles sont maintenant possibles.

grub.cfg est automatiquement généré par grub2-mkconfig ce
qui simplifie les mises à jour du noyau.

les numéros des partitions commence à 1 et non plus à 0

A. El Hadri Administration Linux I - 81


GRUB2 vs GRUB legacy (2)

Grub2 offre un petit espace de stockage pour sauvegarder (via la
commande save_env) quelques paramètres de démarrage afin de les
récupérer (via load_env) dans les prochains redémarrages.

GRUB 2 possède des moyens plus fiables pour retrouver les
périphériques (partitions, CD, …) contenant les fichiers à charger. Ainsi
la recherche de périphériques peut se faire par nom de fichier (chemin
complet), par label de système fichiers ou par Universally Unique
Identifiers (UUIDs).

plusieurs systèmes de fichiers sont supportés comme l' ext4, HFS+,
NTFS, ...

GRUB2 est valable pour plusieurs autres systèmes. En plus du BIOS PC
supporté par GRUB Legacy, il supporte PC EFI, PC coreboot, PowerPC,
SPARC, et MIPS Lemote Yeeloong.

A. El Hadri Administration Linux I - 82


GRUB2 vs GRUB legacy (3)

GRUB2 peut accéder directement aux fichiers se trouvant dans les
périphériques LVM et RAID.

Un terminal graphique ainsi qu' un menu système graphique sont
maintenant disponibles.

L'interface de GRUB2 peut être traduit en plusieurs langues.

Coté architecture, GRUB2 a été complètement réorganisé. Les
étapes (stage) 1, 1.5 et 2 n'existent plus, ils sont remplacés par
deux fichiers images boot.img et core.img ainsi qu'un ensemble de
modules *.mod chargés en fonction du contexte

GRUB2 gère plus facilement les modules dynamiques.

A. El Hadri Administration Linux I - 83


GRUB2 autres caractéristiques

GRUB2 est conçu pour démarrer en natif les noyaux conformes à
la spécification Multiboot

Comme GRUB Legacy, GRUB2 prend en charge en natif le
démarrage de quelques noyaux Non Multiboot, comme : Linux,
OpenBSD, FreeBSD et NetBSD. D'autres noyaux (Windows, …)
sont aussi supportés via le Chain-loading

Supporte pleinement les fonctionnalités de démarrage Multiboot
en particulier le chargement de modules

Le Langage de commande est plus flexible et plus complet

Détecte et utilise le mode LBA

Supporte le démarrage réseau ainsi que les terminaux distants

A. El Hadri Administration Linux I - 84


GRUB2 : règles de nommage
La convention de nommage de GRUB2 est quelque peu différente de
l'ancienne version :

Comme GRUB Legacy, GRUB2 numérote les noms des disques et
lecteurs de disquettes à partir de 0. Ainsi
− (fd0) designe floppy disk n°0 : le premier lecteur de disquettes.
− (hd1) est le hard disk n°1 c'est à dire le deuxième disque.

Les partitions sont numérotées à partir de 1 : (hd0,2) désigne la
deuxième partition du premier disque.

Dans les systèmes contenant à la fois plusieurs tables de partitions, un
mot clé (msdos, gpt, …) doit être renseigné avant le numéro de la
partition pour indiquer la table en question. Ainsi
– (hd0,msdos1) désigne la première partition de la table MBR
– (hd1,gpt5) est la cinquième partition de la table GPT du disque n°2

A. El Hadri Administration Linux I - 85


GRUB2 : Composantes

GRUB2 est constitué de plusieurs images qui permettent à GRUB
de démarrer de différentes manières et d’un jeu de modules qui
sont combinés avec l’image de son noyau pour former une image
dite « image essentielle » ("core image" en anglais).

Ces principaux images sont

boot.img 

diskboot.img, cdboot.img, pxeboot.img

lnxboot.img

kernel.img

core.img

A. El Hadri Administration Linux I - 86


GRUB2 : boot.img

Sa taille est de 512 octets

Il est conçu pour résider dans le MBR. Il est donc la première
image sollicitée par le BIOS.

La commande
grub2-mkinstall /dev/sda
copie boot.img

La tâche confiée à ce morceau de code est de lire le premier
secteur de l’image essentielle et de l’exécuter.

Cette image étant incapable de comprendre la moindre notion de
système de fichiers, tout comme le BIOS, la commande grub2-
install doit coder l’adresse de l’image essentielle en dur dans le
MBR.

A. El Hadri Administration Linux I - 87


GRUB2 : core.img

C’est l’image essentielle de GRUB2.

Elle est construite dynamiquement par la commande
grub2-mkimage.

Ordinairement, elle contient assez de modules pour accéder à la
partition ESP et/ou à la partition /boot pour charger le fichier de
configuration d’abord et les différents noyaux des OS ensuite.

Sa conception modulaire permet de lui conserver une taille
réduite, car les endroits où elle doit être installée sont souvent
d’une taille inférieure à 32 ko.

A. El Hadri Administration Linux I - 88


GRUB2 : autres images

diskboot.img, cdboot.img, pxeboot.img : Une de ces images est
placée dans le premier secteur de l’image essentielle selon que le
démarrage a lieu respectivement, d’un disque, d’un CD-ROM ou
du réseau via PXE. Ce morceau de code charge en mémoire le
reste de l’image essentielle et démarre son noyau.

lnxboot.img : Cette image est placée en tête de l’image essentielle
pour que GRUB ait l’apparence d’un noyau Linux pour LILO.

kernel.img : Cette image d’un noyau élémentaire contient les
fonctions de base de GRUB2 pour la gestion des périphériques et
des fichiers, les variables d’environnement, l’interpréteur de
commandes de secours, etc. Il est rarement utilisé seul mais est
construit dans toutes les images essentielles.

A. El Hadri Administration Linux I - 89


GRUB2 : Mise en place

La plupart des distributions récentes installe automatiquement
GRUB2.

Cette étape n'est alors nécessaire que pour réinstaller GRUB2 ou
migrer de Gurb Legacy vers Grub2 dans le cas d'une ancienne
distribution.

La procédure de mise en place comprend :
− L'installation ou mise à jour des paquetages

− L'installation du chargeur

− Configuration

A. El Hadri Administration Linux I - 90


GRUB2 : installation

L'installation des paquetages peut se faire à l'aide de la
commande :
yum -y install grub2 os-prober
ou
yum -y update grub2 os-prober
pour la mise à jour

Le paquetage os-prober est utilisé particulièrement par grub2-mkconfig
pour chercher les systèmes installés et générer les entrées
correspondantes dans le fichier grub.cfg

L'installation du chargeur peut se faire à l'aide de la commande :
grub2-install /dev/sda

A. El Hadri Administration Linux I - 91


Génération du fichier de Configuration

La commande suivante permet de générer le fichier de
configuration grub.cfg :
grub2-mkconfig -o /boot/grub2/grub.cfg
● La commande grub2-mkconfig utilise les scripts suivants :
− /etc/default/grub : qui contient les valeurs de quelques
paramètres, comme la résolution de l'écran, le Timeout, le
système par défaut, ...
− /etc/grub.d/* : un ensemble de scripts se servant des variables
initialisées dans /etc/default/grub pour générer le fichier
grub.cfg

q

A. El Hadri Administration Linux I - 92


Génération du fichier de Configuration
● grub2-mkconfig est sollicité automatiquement à chaque mise à jour
du noyau pour intégrer ce dernier dans le menu de démarrage.

La personnalisation des paramètres de démarrage ne doit pas alors
s’effectuer directement dans grub.cfg au risque de la perdre après la mise
à jour du noyau

Les personnalisations doivent être portées dans /etc/default/grub et dans
les scripts se trouvant sous /etc/grub.d

Pour mettre le timeout à 0 (pour un démarrage directe et sans délai) par
exemple on met :
GRUB_TIMEOUT=0
Dans le fichier /etc/default/grub puis on relance la commande
grub2-mkconfig

A. El Hadri Administration Linux I - 93


Restaurer Grub 2

Sous CentOS, La procédure suivante permet de réinstaller GRUB dans
le MBR, par exemple lorsqu'il a été effacé suite à l'installation d'un autre
système d'exploitation (Microsoft® Windows® en l’occurrence) :
– Démarrer à partir du DVD d'installation ou CD Live ou n'importe
quel autre média d'installation
– Sélectionner l'option « Troubleshoot » du menu de démarrage puis
« Rescue installed system »
– Après le démarrage du système, lancer les commandes suivante
dans le terminale :
● chroot /mnt/sysimage

● grub2-install /dev/sda

● grub2-mkconfig -o /boot/grub2/grub.cfg

– Redémarrer

A. El Hadri Administration Linux I - 94


Configuration

Pour grub “legacy”, la configuration consistait à retoucher les entrées du
fichier menu.lst ou grub.conf  directement.

Avec grub2 on n'édite pas directement le fichier grub.cfg, mais on
intervient sur :
– /etc/default/grub : qui contient les valeurs de quelques paramètres,
comme la résolution de l'écran, le Timeout, le système par
défaut, ...
– /etc/grub.d/* : un ensemble de scripts permettant de générer le
fichier grub.cfg. Et dans lesquels on peut rajouter par exemple le
code permettant de mettre en place un mot de passe de démarrage.
● Après modification, la commande grub2-mkconfig doit être appelée
pour régénérer un nouveau grub.conf

A. El Hadri Administration Linux I - 95


/etc/default/grub

Contient les valeurs associées aux paramètres de démarrage

Chacune de ses lignes est sous forme : VARIABLE=valeur

Exemple :
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="CentOS"
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 quiet LANG=fr_FR.UTF-8
SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 KEYTABLE=fr-latin9"

A. El Hadri Administration Linux I - 96


GRUB_DEFAULT

Il s’agit de l’entrée qui sera démarrée si l’utilisateur n’intervient pas.
L’installateur anaconda, la positionne à saved par défaut. Notez que si cette
option n’est pas déclarée du tout, sa valeur par défaut est 0.

La valeur à attribuer à cette option peut être :
– un nombre n : il s’agit alors le la énième entrée dans le menu généré en
partant de 0 ;
– le titre d’une entrée de menu : cette solution est déconseillée, car les titres
sont sujets à traduction et peuvent contenir des informations peu stables;
– l’identifiant id de l’entrée : par exemple si vous avez l’entrée
menuentry 'GNU/Linux distribution' --class gnu-linux --id gnu-linux
vous pouvez saisir : GRUB_DEFAULT=example-gnu-linux ;
– saved : désigne le dernier système activé. Fonctionne conjointement avec
l’option GRUB_SAVEDEFAULT ou la commande grub-save-default.

A. El Hadri Administration Linux I - 97


GRUB_SAVEDEFAULT & GRUB_TIMEOUT


GRUB_SAVEDEFAULT :
Si cette option est positionnée à true, lorsqu’une entrée est démarrée, elle est
aussi sauvegardée pour servir d’entrée par défaut lors de la prochaine
exécution de GRUB2. Elle n’est utile que si GRUB_DEFAULT =saved.
L’installateur de Fedora ne déclare pas cette entrée dans /etc/default/grub ; elle
a donc a priori sa valeur par défaut : false.

GRUB_TIMEOUT :
Il s’agit du temps en secondes, écoulé depuis d’affichage du menu, après
lequel l’entrée par défaut est démarrée. L’installateur Anaconda la positionne
à 5 par défaut. Les valeurs 0 et -1 conduisent à un fonctionnement particulier.

0 : L’entrée par défaut est démarrée immédiatement sans attendre l’affichage
du menu.

-1 : Le temps d’attente du choix de l’utilisateur est infini.

A. El Hadri Administration Linux I - 98


GRUB_TIMEOUT_STYLE


Celle option modifie la prise en compte de GRUB_TIMEOUT

Sa valeur peut être :
➔ menu (non définie) : L’option GRUB_TIMEOUT est prise en compte
comme décrit précédemment.
➔ hidden : Dans ce cas, GRUB2, n’affiche pas le menu et attend
silencieusement l’écoulement du temps indiqué par GRUB_TIMEOUT.
Si la touche [ESC] est pressée avant que le temps ne soit écoulé, le
menu est affiché et le timeout est désactivé. Si un raccourci clavier
associé à une entrée est pressé, l’entrée correspondante est démarrée
immédiatement. Si le temps d’attente expire l’entrée par défaut est
démarrée.
➔ countdown : hidden + affichage d’un compte à rebours

A. El Hadri Administration Linux I - 99


GRUB_DISTRIBUTOR & GRUB_DISABLE_SUBMENU


GRUB_DISTRIBUTOR
Cette option enrichit le titre des entrées avec le nom du distributeur sous
forme d’option --class. L’installateur de Fedora la postionne à "$(sed 's,
release .*$,,g' /etc/system-release)" qui aboutit à --class fedora dans le titre de
l’entrée.

GRUB_DISABLE_SUBMENU
Normalement, la commande grub-mkconfig -o <destination> génère une
entrée de menu de niveau supérieur pour le noyau possédant le plus haut
numéro de version et place les autres noyaux trouvés, ou les entrées
alternatives pour les modes de récupération, dans un sous-menu. Pour les
entrées retournées par os-prober la première entrée est placée au niveau
supérieur et les autres dans un sous-menu. Si cette option est définie à true,
tout est rapporté au niveau supérieur.

A. El Hadri Administration Linux I - 100


Autres paramètres

GRUB_CMDLINE_LINUX : les arguments à passer au noyau Linux

GRUB_CMDLINE_LINUX_DEFAULT : À moins que
«GRUB_DISABLE_RECOVERY » soit mis à true, deux entrées de menu
sont générés pour chaque noyau Linux: une « par défaut » et l'autre pour le
«  recovery mode ». Cette option répertorie les arguments à ajouter
uniquement à l'entrée « par défaut », après ceux énumérés dans
« GRUB_CMDLINE_LINUX ».

GRUB_DISABLE_RECOVERY : la valeurs true de ce paramètre permet
de désactiver la génération de l'entrée du menu relative au mode Recovery.

GRUB_DISABLE_OS_PROBER : la valeur true de ce paramètre désactive
l'utilisation de os-prober pour détecter les OS installés

A. El Hadri Administration Linux I - 101


Autres paramètres

GRUB_GFXMODE : spécifie la résolution à utiliser. Seules les résolutions
supportées via le « VESA BIOS Extensions » (VBE) sont disponibles.

GRUB_BACKGROUND : Définir une image d'arrière-plan. La valeur de
cette option doit être un fichier lisible par GRUB au démarrage. Les
formats supportés sont : png, tga, jpg et jpeg. L'image sera réduite si
nécessaire pour s'adapter à l'écran.

GRUB_THEME : Définir un thème à utiliser dans le terminal graphique.

GRUB_GFXPAYLOAD_LINUX : Réglez-le sur «texte» pour forcer le
noyau Linux à démarrer en mode texte normal

A. El Hadri Administration Linux I - 102


/etc/grub.d

Les autres fichiers de configuration se trouvent dans le répertoire
/etc/grub.d/, on y trouve :
– 00_header
– 10_linux
– 20_linux_xen
– 30_os-prober
– 40_custom
– 41_custom

Le préfixe numérique dans les noms des scripts sert à déterminer l'ordre
dans lequel ces scripts seront lus par “grub2-mkconfig”.

A. El Hadri Administration Linux I - 103


/etc/grub.d

00_header : script permettant la génération de l'en-tête du fichier
grub.cfg. Cet en-tête est généré principalement à l'aide des informations
paramétrées dans le fichier /etc/default/grub.

10_linux : script permettant de générer les entrées correspondant au
système GNU/Linux hôte.

30_os-prober : script permettant de détecter les autres systèmes installés
et générer les entrées correspondantes. Il est normalement capable de
détecter les systèmes avec un noyaux Linux, un noyau Hurd, les systèmes
Windows et les systèmes Mac OS X.

40_custom : script permettant de générer des entrées introduites
manuellement dans ce fichier.

A. El Hadri Administration Linux I - 104


GRUB2 sur un système UEFI

UEFI est un véritable système d’exploitation miniature, s’exécutant en
mode protégé, capable de bien des choses comme initialiser une pile de
gestion USB, accéder au réseau, et la plus importante de toute, accéder à
des systèmes de fichiers. Il peut exécuter des programmes compilés en
C/C++ et dispose d’un interprète de commandes pour exécuter des
programmes et des scripts.

L’amorçage de l’UEFI est plus souple. Non content de lister les
périphériques, il les scrute pour y trouver des exécutables UEFI auxquels
il fournit un point d’amorçage. Pour fonctionner correctement, les
applications UEFI doivent être placées dans une partition ESP — "EFI
System Partition" montée sur /boot/efi. Dans ce contexte, le chargeur de
démarrage, GRUB2, est compilé comme un exécutable UEFI. Les noyaux
de Linux peuvent même être compilés comme de véritables exécutables
UEFI, permettant ainsi de se passer totalement de chargeur de démarrage.

A. El Hadri Administration Linux I - 105


GRUB2 sur un système UEFI

L’ESP peut être partagée entre tous les systèmes d’exploitation de
l’ordinateur. D’une façon générale, les chargeurs de démarrage des
différents systèmes d’exploitation sont placés dans des sous-dossiers
/boot/efi/EFI/<nom_OS>.

Ainsi, le boot loader de CentOS, est placé automatiquement dans le
dossier /boot/efi/EFI/centos.

Dans ce dossier on trouve en particulier, grubx64.efi et shimx64.efi. Il
s’agit tous les deux de l’exécutable UEFI de GRUB2. La différence est
que seul shimx64.efi peut démarrer le système avec le secureboot activé.

Dans ce dossiers réside également le fichier de configuration de GRUB2,
grub.cfg, élaboré lors du processus d’installation. Ce fichier est similaire à
celui d’un GRUB2 installé sur un système BIOS.

A. El Hadri Administration Linux I - 106


efibootmgr

L’UEFI dispose d’un gestionnaire de démarrage intégré

Sous Linux, l’application efibootmgr permet d’interagir avec le
gestionnaire de démarrage de l’UEFI pour :
– lister les différents applicatifs UEFI à démarrer ;
– modifier leur ordre de démarrage ;
– créer ou supprimer des entrées du gestionnaire de
démarrage ;
– et plus encore.

A. El Hadri Administration Linux I - 107


Démarrage du noyau
Après son chargement, le noyau :
• Met en place de la gestion des interruptions
• Initialise la mémoire virtuelle
• Initialise le vecteur d’interruptions, le planificateur (le
"scheduler") et l'horloge
• Traite les arguments de la ligne de commande
• Détecte le hardware et charge des modules nécessaires
• Passe au mode multi_user si sollicité

A. El Hadri Administration Linux I - 108


Processus PID 1

A ce stade, le noyau libère l'espace utilisé précédemment pour la
détection et la configuration des périphériques :
Freeding unused kernel memory... 

Ensuite, il lance le premier processus (PID 1)

Sur un système UNIX, le tout premier processus (PID 1) a un rôle
particulier :
– c’est le seul qui est lancé par le noyau ; il doit donc assurer toute
l’initialisation du système, le lancement des différents services ;
– lorsqu’un processus devient orphelin, la norme et l’usage veut qu’il
soit rattaché au processus de PID 1. Dans ce cas lorsque le
processus se termine, c’est au PID 1 qui revient de lire le code de
retour du processus zombie, avant que le système ne puisse libérer
certaines ressources associées.

A. El Hadri Administration Linux I - 109


Les services

Le processus PID 1 est donc le processus d'initialisation du système et
de gestion des services

Différents système de gestion des services sont utilisés :
– SysVinit (init System V).
– UpStart.
– systemd.

SysVinit est le classique système de démarrage et de gestion des
services qui a été utilisé jusqu'à Fedora 8. UpStart a remplacé SysVinit
dans Fedora 9, jusqu'à Fedora 14. systemd prend place dans Fedora à
partir de la version 15, et à partir de la version 7 de CentOS

La commande : pstree permet d'afficher l'arbre des processus. Celui au
sommet est le gestionnaire de services utilisé.

A. El Hadri Administration Linux I - 110


sysVinit

Est le système d’initialisation hérité d’UNIX Système V

Ce système est représenté par le processus /sbin/init

Le processus /sbin/init a le pid = 1

Il est le parent de tous les processus présents sur le système (sauf
du singulier idle).

Le processus init effectue un contrôle des partitions puis procède
au montage du système de fichier principal sous /

Après, init lance les différents services suivant le contenu du
fichier /etc/inittab en faisant la distinction entre les différents
niveaux d'exécution (runlevels)

A. El Hadri Administration Linux I - 111


Niveau d’exécution

Un niveau d’exécution (Run Level) est une configuration qui
définit l’ensemble des services en exécution

Les niveaux d’exécution prédéfinis dans Linux
Redhat/CentOS/Fedora sont:
0 — Halt
1 — Single-user text mode
2 — Not used (user-definable)
3 — Full multi-user text mode
4 — Not used (user-definable)
5 — Full multi-user graphical mode (with an X-based login
screen)
6 — Reboot

A. El Hadri Administration Linux I - 112


Niveau d’exécution

La commande :
init N
ou
telinit N
Permet de faire passer le système au niveau passé en argument

La commande
runlevel
ou
who -r

Permet d'afficher le niveau courant ainsi que le précédent

A. El Hadri Administration Linux I - 113


Le fichier /etc/inittab
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
...
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure"
# Run xdm in runlevel 5
x:5:once:/etc/X11/prefdm -nodaemon

A. El Hadri Administration Linux I - 114


Le fichier /etc/inittab
Ensemble de lignes ayant la syntaxe suivante :
<code> : <niveau> : <action> : <commande>
code est le label de la ligne.
niveau correspond au(x) niveau(x) où doit être
exécutée la commande.
action désigne le mode de lancement de la
commande
commande la commande à exécuter

A. El Hadri Administration Linux I - 115


Le fichier /etc/inittab (suite)
Les actions possibles sont:
respawn relance automatiquement le processus une fois terminé.
wait init attend la fin du processus avant de poursuivre.
once pour une exécution unique du processus à l'arrivée dans
le niveau spécifié.
boot qui définit que le processus doit être lancé au moment
du boot système (le niveau est ignoré).
bootwait reprend les actions de wait et de boot cumulées.
off désactive l’entrée
ondemand pour lancer les processus lors d'un pseudo passage en
ondemand runlevel.

A. El Hadri Administration Linux I - 116


Le fichier /etc/inittab (suite)
initdefault pour définir le niveau par défaut
sysinit définit un processus à lancer pendant le démarrage. Il sera
exécuté avant toutes les lignes boot ou bootwait
powerwait définit le processus à lancer quand init reçoit le signal
SIGPWR. init attendra que le processus soit terminé.
powerfail idem que powerwait mais init n'attend pas que le processus
soit terminé.
powerokwait définit le processus à lancer si un SIGPWR est reçu. Le
fichier /etc/powerstatus est contrôlé. Si celui-ci contient OK,
le problème d'alimentation est résolu.
ctrlaltdel définit le processus à lancer si la séquence de touches CTRL
+ ALT + SUPP est initiée.

A. El Hadri Administration Linux I - 117


Le scripte rc.sysinit

init exécute tout d'abord /etc/rc.d/rc.sysinit.

rc.sysinit
– termine la configuration de base du système :

mettre l'horloge du système à l'heure du CMOS,

charge la configuration clavier adéquate,

active la partition de swap,

configure le nom de la machine et la variable PATH
– vérifie aussi que le système de fichier racine ne
comporte pas d'erreur et le remonte en rw.
– Et active les modules nécessaires en appelant
/etc/rc.d/rc.modules.

A. El Hadri Administration Linux I - 118


Le scripte rc

init lance en suite le script /etc/rc.d/rc en lui passant
comme paramètre le niveau d’exécution souhaité.

À chaque niveau d’exécution (Run Level) correspond un
ensemble de services lancés automatiquement lorsque le
système entre le niveau en question.

La configuration de chaque runlevel est sauvegardée dans
le répertoire /etc/rc.d/rcX.d/ où X est le runlevel en
question

Les différents niveaux d'exécution peuvent être gérés via
une interface : ntsysv, tksysv ou chkconfig

A. El Hadri Administration Linux I - 119


Le répertoire /etc/rc.d
Ce répertoire contient les scripts utilisés pour l'initialisation du
système.

rc.sysinit exécuté une fois au démarrage pour initialiser
le système

rc script de gestion du niveau d'exécution. Il le
reçoit en paramètre.

rc.local script utilisé pour les initialisations particulières à
la machine

init.d répertoire contenant les scripts d'initialisation des
sous-systèmes

rc0.d, …, rc6.d répertoires contenant des liens sur les scripts
du répertoire init.d devant être lancés à un niveau
d'exécution particulier

A. El Hadri Administration Linux I - 120


Le répertoire /etc/rc.d/init.d

Contient l’ensemble des scripts de démarrage des différents
services installés

Tous les scripts ont pratiquement la même syntaxe
d’activation
/etc/init.d/script [start | stop | restart | status]

ou
service nom-script [start | stop | restart | status]

l’ensemble de ces scripts ont été mis en place au moment
de l’installation des paquetages correspondants.

A. El Hadri Administration Linux I - 121


Les répertoires /etc/rc.d/rcN.d

Contient des liens symboliques vers les services du répertoire
init.d

Les liens des répertoires rcN.d reprennent les noms des scripts
d'origine précédés par la lettre S ou K (respectivement pour
Start et Kill) et d'un nombre à deux chiffres.
– Le lien S55sshd du répertoire /etc/rc.d/rc3.d indique le
lancement du service sshd au niveau d’exécution 3
– Le lien K20nfs du /etc/rc.d/rc2.d indique l’exécution


La valeur numérique permet de spécifier l'ordre d'arrêt ou de
démarrage du service.

La plupart des démons du système enregistrent leur numéro de
processus dans un fichier du répertoire /var/run.

A. El Hadri Administration Linux I - 122


Configuration des RL

Manuellement en maniant directement les liens :
# ln -sf /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
problème:
– Il faut connaître exactement les priorités de lancement et
d’arrêt. Ceux-ci sont visibles dans les fichiers scripts
correspondants
– Lancer une commande pour chaque service et chaque niveau
d’exécution

Par la commande : chkconfig

Graphiquement à l’aide de l’application GUI disponible comme :
system-config-services , visible aussi sous le menu: paramètres
système → paramètres de serveur → services

A. El Hadri Administration Linux I - 123


GUI Configuration des RL

A. El Hadri Administration Linux I - 124


La commande chkconfig
Syntaxe:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
Permet de:
– visualiser la situation
– ajouter les liens nécessaires pour démarrer/arrêter les services
nouvellement installés.
– supprimer un service (supprime toutes les indications dem/arr)
– modifier la configuration des run level
Exemples : # chkconfig --list httpd
# chkconfig --level 35 httpd on

A. El Hadri Administration Linux I - 125


i n i t : récapitulatif

init /etc/rc.d/rc.sysinit

/etc/inittab /etc/rc.d/rc N /etc/rc.d/rcN.d/K* stop

/sbin/mingetty tty1
… /etc/rc.d/rcN.d/S* start
/sbin/mingetty tty6

X (pour le Niveau 5)

A. El Hadri Administration Linux I - 126


UpStart
• Malheureusement, SysVinit reste très basique, peu performant et
sujet à de nombreux problèmes. Il n’est pas très adapté à toutes
les évolutions modernes que connaît Linux.
• Ces principaux défauts :
– Le démarrage des services est séquentiel.
– La prise en charge des dépendances entre services est très
basique
– Tout ou presque est sous forme de scripts Shell ; ceci rend le
processus de démarrage lent et fastidieux.
– ...
• Dans le but de paralléliser le démarrage des services, UpStart a
été proposé comme remplaçant à sysVinit.

A. El Hadri Administration Linux I - 127


UpStart : Avantages
• Par rapport à sysVinit, UpStart présente les avantages
suivants :
– Lancement et arrêt des services par événement
– Gestion des dépendances pour permettre le
lancement parallèle des services au démarrage
– Possibilité de définir des services utilisateurs lancés
et arrêtés par ces derniers
– ...

A. El Hadri Administration Linux I - 128


systemd
• systemd est un gestionnaire du systeme et des services. Il
permet entre autre de lancer/arrêter les services de gérer les
points de montage, les sessions, les points de
communication socket et DBUS, etc.
• Par rapport à ses prédécesseurs, systemd :
– Parallélise efficacement le démarrage des services
– Gère les points de communication sockets et D-Bus
– Permet le lancement à la demande des services
– Les dépendance entre services sont traitées d'une
manière transactionnelle
– Supporte le « snapshotting and restoring »
– Maintient les points de montages

A. El Hadri Administration Linux I - 129


Systemd : Commandes
• systemd fournit un large panel de commande qui permet
d'avoir des informations ou de modifier l'état du système.
• Sans être exhaustif, voici les plus importantes :
– systemctl : contrôle systemd et gère les unités.
– journalctl : consultation du journal de systemd.
– loginctl : contrôle des sessions utilisateurs (systemd-
logind).

A. El Hadri Administration Linux I - 130


Systemctl : pour l’arrêt et
redémarrage du système

• Les actions sont envoyées en utilisant la commande


systemctl :
• Redémarrer ou arrêter :
# systemctl reboot
# systemctl poweroff
• Les commandes reboot et poweroff sont désormais des liens
vers systemctl
• Mettre en veille ou en hibernation :
# systemctl suspend
# systemctl hibernate

A. El Hadri Administration Linux I - 131


systemd : Unité
• Une unité représente un fichier de configuration. Entre
autres, une unité peut être un service (*.service), un target
(*.target), un montage (*.mount), un socket (*.socket)…
• Liste les unités:
# systemctl
# systemctl list-units
• Démarrer, arrêter, redémarrer ou recharger une unité:
# systemctl start <unit>
# systemctl stop <unit>
# systemctl restart <unit>
# systemctl reload <unit>

A. El Hadri Administration Linux I - 132


systemd : Unité
• Voir son statut:
# systemctl status <unit>
• Activer, désactiver une unité au démarrage:
# systemctl enable <unit>
# systemctl disable <unit>
• Lister les dépendances d'une unité:
# systemctl list-dependencies [<unit>]
• Note: Il faut utiliser le nom du fichier d'une unité en entier,
exemple:
# systemctl restart avahi-daemon.service

A. El Hadri Administration Linux I - 133


systemd : Unité
• Néanmoins, certains raccourcis d'écriture sont disponibles:
sans suffixe, systemctl présume qu'il s'agit d'un .service.
Ainsi, dbus et dbus.service sont équivalents:
# systemctl status dbus
• un point de montage est automatiquement retranscrit en
l'unité .mount appropriée. Par exemple /home est équivalent à
home.mount:
# systemctl status /home
• de la même manière, un périphérique est retranscrit en
l'unité .device appropriée. Ainsi, /dev/sda2 est équivalent à
dev-sda2.device:
# systemctl status /dev/sda2

A. El Hadri Administration Linux I - 134


systemd : Unité
• Recharger la configuration des services (après modification
d'une unité):
# systemctl daemon-reload
• Les unités peuvent correspondre à des instances d'un fichier
template, ceci permet d'avoir un fichier de configuration pour
plusieurs unités. Ces unités sont reconnaissables par le @
inclus dans leur nom. Un exemple concret est le service
dhcpcd@.service. Ce dernier permet d'activer le DHCP sur
une interface :
# systemctl start dhcpcd@eth0.service
• Pour activer le service au démarrage :
# systemctl enable dhcpcd@eth0.service

A. El Hadri Administration Linux I - 135


systemd : services
• Un service est une unité ayant comme suffixe .service. La
commande :
# systemctl list-unit-files -t service
permet d'afficher la liste de tous les services installés avev
leur état d'activation

A. El Hadri Administration Linux I - 136


systemd : target
• Un target est une unité particulière, elle permet de regrouper
d'autres unités. Son nom de fichier prend le suffixe .target
• Les targets permettent de fournir l'équivalent des niveaux
d'exécution (runlevel) de sysvinit :

A. El Hadri Administration Linux I - 137


systemd : target
SystemVinit Systemd Target Notes
Runlevel
0 runlevel0.target, poweroff.target Arrête le système
1, s, single runlevel1.target, rescue.target Mode single user.
Mode défini par
runlevel2.target, runlevel4.target,
2, 4 l'utilisateur, identique au 3
multi-user.target
par défaut.
3 runlevel3.target, multi-user.target Multi-utilisateur, non grap

5 runlevel5.target, graphical.target Multi-utilisateur, en mode

6 runlevel6.target, reboot.target Redémarre

emergency emergency.target Shell d'urgence

A. El Hadri Administration Linux I - 138


systemd : target
• Pourz voir ce que regroupe un target :
# systemctl show -p Wants -p Requires <target>
• Par exemple, on peut voir que graphical ne fait que rajouter un
gestionnaire de connexions en plus de multi-user :
# systemctl --no-pager show -p Wants -p Requires graphical.target
Requires=multi-user.target
Wants=display-manager.service systemd-update-utmp-runlevel.service
• Pour changer de target, par exemple pour passer au multi-user, lancez
l'une de ces commandes:
# systemctl isolate multi-user.target
# systemctl isolate runlevel3.target
# telinit 3

A. El Hadri Administration Linux I - 139


systemd : target
• Le target par défaut à l'installation est graphical :
# readlink /usr/lib/systemd/system/default.target
graphical.target
• Ou
# systemctl get-default
• Pour spécifier un autre niveau par défaut, par exemple le multi-user :
# ln -sf /lib/systemd/system/multi-user.target
/etc/systemd/system/default.target
• Ou
# systemclt set-default multi-user.target

A. El Hadri Administration Linux I - 140


L'arrêt du système
• La commande shutdown permet, selon les options utilisées :
– d'avertir les utilisateurs
– de demander aux applications de s'arrêter correctement en fermant
les connexions et fichiers ouverts (signal SIGTERM)
– de vider les tampons mémoire du cache disque (sync)
– de programmer l'heure de l'arrêt / redemarrage (now, hh:mm,
+minutes)
– de spécifier le mode d’arrêt (arrêt ou redémarrage avec ou non un
fsck)
– …
• Deux autres commandes : reboot et halt (brutales)

A. El Hadri Administration Linux I - 141


Gestion des paquetages
RPM
Paquetage RPM

Paquetage (package) RPM = Fichier archive contenant un
ou plusieurs programmes prêt à s’installer sur la machine
par une simple commande ou un clic de sourie.

Un paquetage RPM contient :
– Executables et librairies
– Fichiers de configuration
– Documentation (généralement des fichiers man)
– Informations et scripts pour installation / désinstallation
– Informations concernant les dépendances.
– Informations complémentaires (nom, version, description,
auteurs, dates, …)

A. El Hadri Administration Linux I - 143


L’outil RPM

RPM (Redhat Package Manager) = outil puissant de gestion
des paquetages, conçu par RedHat Labs et inspiré de dpkg
(gestionnaire de paquetage de Debian).

Placé sous licence GPL. Il est utilisé par les 3 grosses
distributions : RedHat, Mandrake et SuSe.

Permet de construire, installer, interroger, vérifier, mettre à
jour, et désinstaller des paquetages de logiciels tout en incluant
la notion de dépendance.

Maintient une base de donnée (/var/lib/rpm) des paquetages
installés.

Utilise PGP/GPG pour la vérification des signatures

A. El Hadri Administration Linux I - 144


RPM : Installation,
Désinstallation, Mise à jour

– Installer un nouveau paquetage : rpm –i fichier_paquetage

– Désinstaller un paquetage existant: rpm -e nom_du_paquetage

– Mettre à jour ou installer


s’il ne l’est pas encore : rpm -U fichier_paquetage

– Rafraîchir
(c-a-d : mettre à jour uniquement
si le paquetage est déjà installé) rpm -F fichier_paquetage

A. El Hadri Administration Linux I - 145


RPM : Installation,
Désinstallation, Mise à jour

– Les noms des fichiers paquetages ont tous la forme suivante :


nom_du_paquetage-version.plateforme.rpm
Ex: gcc-4.4.4-10.fc13.x86_64.rpm
gzip-1.3.13-4.fc13.i386.rpm
– En cas d’installation ou de mise à jour Le fichier paquetage peut être
spécifié par une URL ftp ou http, auquel cas le paquetage sera
téléchargé avant d'être installé.
la forme générale une URL ftp est :
ftp://<user>:<password>@site:<port>/chemin/vers/paquetage.rpm

A. El Hadri Administration Linux I - 146


RPM : Installation,
Désinstallation, Mise à jour

Quelques autres options


-v verbose
-vv Afficher un tas d'horribles informations de déboggage.
--quiet Seuls les messages d'erreur seront affichés.
--prefix <path> Si possible utiliser <path> comme chemin d’installation
--dbpath <chemin> Spécifier le chemin de la base de données RPM
--excludedocs Ne pas installer les fichiers de documentation.
--force Forcer l’opération en dépit des problèmes rencontrés
-h, --hash Afficher 50 marques de hachage quand l'archive est
déballée. A utiliser avec -v pour un bel affichage.
--nodeps Ne pas effectuer de vérification de dépendances.
--test Ne pas installer, rapporter les conflits potentiels.

A. El Hadri Administration Linux I - 147


RPM : Interrogation
• La forme générale d'une commande de requête rpm est :
rpm -q [options_de_requête]
• Exemples :
Pour rechercher la version installée d’un package
rpm -qa | grep package ou rpm –q package
Pour obtenir des informations sur un package :
rpm -qpi nom_du_package.rpm
rpm -qi package s’il est installé
Pour savoir le nom du package auquel appartient un fichier :
rpm -qf nom_du_fichier
Pour avoir la liste des fichiers installés par un package
rpm -ql package s’il est installé
rpm -qlp package.i386.rpm s’il ne l’est pas encore

A. El Hadri Administration Linux I - 148


RPM : Interrogation
• En générale Il y a deux sous-ensembles d'option pour les requêtes :
la sélection de paquetages et la sélection d'information.
• Quelques options de sélection de paquetages :
<nom_package> Interroger le paquetage intallé nommé
<nom_package>
-a, --all Afficher tous les paquetages installés.
--whatrequires <capacité> Afficher tous les paquetages qui ont besoin
de <capacité> pour leur fonctionnement
propre.
--whatprovides < capacité> Interroger tous les paquetages qui
fournissent la capacité < capacité>.
-f <fichier> Interroger le paquetage possédant <fichier>.
-p <fichier_package> Interroger le fichier paquetage spécifié.

A. El Hadri Administration Linux I - 149


RPM : Interrogation
Quelques options de sélection d’information :
-i Afficher l'information du paquetage, incluant son nom,
sa version, et sa description.
-R, --requires Lister les capacités dont dépend ce paquetage.
--provides Lister les capacités fournis par ce paquetage.
-l, --list Lister les fichiers inclus dans le paquetage.
-s, --state Afficher les états des fichiers du paquetage. L'état de
chaque fichier est soit normal, non installé, ou remplacé.
-d, --docfiles Lister uniquement les fichiers de documentation
-c, --configfiles Lister uniquement les fichiers de configuration
--scripts Lister les scripts post / pré installation /
désinstallation.
--dump Pour chaque fichier lister l’ensemble d’informations
associées: taille, droit d’accès, somme MD5, proprio, ...

A. El Hadri Administration Linux I - 150


RPM : vérification
• La forme générale d'une commande de vérification rpm est
rpm -V | --verify [verify-options]
• Compare les informations sur les fichiers installés avec celles
obtenues à partir du paquetage original et conservées dans la base de
données rpm.
• Entre autres choses, la vérification compare la taille, la somme MD5,
les permissions, le propriétaire et les groupes de chaque fichier.
• Les options de spécification de paquetage sont les mêmes que pour
l'interrogation.
• Les fichiers qui n'étaient pas installés en provenance du paquetage, par
exemple les fichiers de documentation exclus à l'installation en utilisant
l'option "--excludedocs", sont ignorés.

A. El Hadri Administration Linux I - 151


RPM : vérification
• Options pouvant être utilisées en mode de vérification :
--nodeps Ne pas vérifier les dépendances.
--nomd5 Ne pas vérifier la somme MD5 des fichiers.
--nofiles Ne pas vérifier les attributs des fichiers (dépendance seule).
• Le format de sortie est constitué d'une chaîne de 8 caractères suivie d’un
"c" éventuel dénotant un fichier de configuration, et ensuite le nom du
fichier.
• Chacun des 8 caractères dénote le résultat d'une comparaison d'un
attribut du fichier avec la valeur de cet attribut enregistré dans la
base de données rpm.
• Un simple "." (point) signifie que le test s'est bien passé, alors qu'un ‘?’
seul indique que le test n'a pas pu être effectué (p.ex. quand les
permissions d'accès aux fichier empêchent la lecture).

A. El Hadri Administration Linux I - 152


RPM : vérification
• Les caractères suivants dénote l'échec à certains tests :
S la taille (Size) du fichier diffère
M le Mode diffère (inclut les permissions et le type du fichier)
5 la somme MD5 diffère
D le numéro de périphérique (Device) majeur/mineur diffère
L le chemin renvoyé par readLink(2) diffère
U le propriétaire (User) diffère
G le Groupe diffère
T la date de dernière modification (mTime) diffère
• Exemple:
[shems]$ rpm -V httpd
SM5....T c /etc/httpd/conf/httpd.conf
..?..... /usr/sbin/suexec

A. El Hadri Administration Linux I - 153


RPM : signatures
• Les paquetages rpm peuvent être signés par leurs
distributeurs.
[Shems]$ rpm -qip airsnort-0.2.7e-5.fc4.i386.rpm |
grep -i signature
Signature : DSA/SHA1, Sat Aug 13 03:36:29 2005,
Key ID 82ed95041ac70ce6

• l’option -K ou –-checksig de la commande rpm permet de


vérifier l’intégrité et l’authenticité du paquetage en se basant
sur la signature elle même et la clé public du signataire.
[Shems]$ rpm -K airsnort-0.2.7e-5.fc4.i386.rpm
airsnort-...: (sha1) dsa sha1 md5 gpg OK

A. El Hadri Administration Linux I - 154


RPM : signatures
• En plus de la taille, 4 différents contrôles sont testés :
[Shems]$ rpm -Kv airsnort-0.2.7e-5.fc4.i386.rpm
airsnort-0.2.7e-5.fc4.i386.rpm:
Header V3 DSA signature: OK, key ID 1ac70ce6
Header SHA1 digest: OK (bcf7bdd5b5c2403deae3)
MD5 digest: OK (2a3b2a50ec82a1d01033571bb2)
V3 DSA signature: OK, key ID 1ac70ce6
• Si le paquetage n’est pas signé, seuls les hachages SHA1 de
l’entête et MD5 du corps (en plus de la taille) sont vérifiés :
[Shems ]$ rpm -qip skype.rpm |grep -i signature
Signature : (none)
[Shems]$ rpm -Kv skype-1.2.0.17-fc3.i586.rpm
skype.rpm:
Header SHA1 digest: OK (c06b173cbc3e57a68b0e4)
MD5 digest: OK (cd51f228559b0d0d0ea2aba8e6f1)

A. El Hadri Administration Linux I - 155


RPM : signatures
• En cas d’absence de la clé public de l’organisme signataire :
[Shems]$ rpm -K bandwidth-0.9.4-rc1.i386.rpm
bandwidth-0.9.4-rc1.i386.rpm: (SHA1) DSA sha1 md5
(GPG) NOT OK (MISSING KEYS: GPG#ba560df3)
1. Obtenir la clé public du distributeur à partir de :
• CD-ROM
• Internet
• Serveur de clés
2. Ajouter la clé en question au porte-clés (keyring)
[Shems]# rpm --import url
3. en suite, vérifier le paquetage
[Shems]# rpm -K bandwidth-0.9.4-rc1.i386.rpm
bandwidth...rpm (sha1) dsa sha1 md5 gpg OK

A. El Hadri Administration Linux I - 156


Dépôts de paquetages
• La plupart des distributions maintiennent des sites web/ftp (appelés
dépôts) contenant des paquetages.
• Pour CentOS les adresses de ces dépôts sont mise dans des fichiers
(ayant l'extension .repo) se trouvant sous /etc/yum.repos.d/
• Ces dépôts peuvent être consultés manuellement par n'importe quel
navigateur web
• Leur principal intérêt est qu'ils sont consultables automatiquement
par les interfaces graphiques d'installation/des-installation ou par la
commande yum

A. El Hadri Administration Linux I - 157


Dépôts de paquetages
• À l'installation de CentOS seuls les dépôts officiels suivant sont
reconnus:
– Base : dépôt de base contenant l'ensemble des paquetages
sélectionnés par CentOS
– Update: dépôt des mises à jour
– Extras : dépôt contenant des paquetages supplémentaires et
complètement compatible avec le dépôt de base

D'autres dépôts peuvent être rajoutés, en particulier : rpmfusion
Le détail concernant ce dépôt ainsi que la procédure d'ajout se
trouve à l'adresse : http://www.rpmfusion.org/

La liste des dépôts pour CentOs est disponible à l’adresse :
http://www.mgroup.fr/index.php?pages/centos_depots_tiers

A. El Hadri Administration Linux I - 158


Commande yum
• Yum, pour Yellowdog Updater Modified, est un gestionnaire de paquets
pour des distributions Linux telles que Fedora, CentOS et Red Hat
Enterprise Linux1, créé par Yellow Dog Linux.
• Il permet de gérer l'installation et la mise à jour des logiciels installés sur
une distribution. C'est une surcouche de RPM gérant les téléchargements et
les dépendances, de la même manière que APT de Debian ou Urpmi de
Mandriva.
• Yum est remplacé par DNF à partir de Fedora 22, CentOS et RedHat 8
• DNF étant une réécriture (fork) de Yum présente dans Fedora depuis Fedora
18

A. El Hadri Administration Linux I - 159


Commande yum
• Utilise les dépôts pour installer, des-installer et mettre à jour des paquetages
• Usage :
yum list all liste tous les paquetages disponibles dans les dépôts
yum info p1 affiche les informations concernant les paquetages
passés en argument
Yum search mot_clé recherche dans les dépôts les paquetages concernant
le mot_clé cité
yum install p1 installe les paquetages spécifiés
yum check-update affiche la liste des mises à jours disponibles
yum update [p1...] met à jour les paquetages spécifiés (à défaut,
applique toutes les mises à jour disponibles)
yum remove p1 ... dés-installe les paquetages passés en argument
yum repolist liste les dépôts disponibles
yum clean all vide les caches

A. El Hadri Administration Linux I - 160


Commande dnf
• DNF (Dandified Yum), est le nouveau gestionnaire de paquets pour les
distributions basées sur « RPM » (RPM Package Manager).
• Conçu de sorte à rester très proche de Yum à l'usage, il n'en reste pas moins
un tout nouvel outil nettement plus performant, doté de fonctions de gestions
et de résolutions des dépendances beaucoup plus avancées (librairie libsolv
+ API Hawkey).
• Disponible depuis Fedora 18, DNF est le gestionnaire de paquet par défaut
depuis Fedora 22, CentOS et RedHat 8
• Synopsis :
dnf [options] <command> [<args>...]

A. El Hadri Administration Linux I - 161


dnf: les commandes
• install et reinstall
• remove et autoremove
• update, upgrade, update_to, upgrade-minimal et downgrade
• check et check-updategroup
• history
• info
• List
• search
• repoinfo, repolist et repoquery
• alias, clean, makecache et help
• mark
• module
• provides
• shell

A. El Hadri Administration Linux I - 162


dnf: quelques options
• -4 | -6 Utilise respectivement la version 4 ou 6 du protocole IP
• --allowerasing Autorise la suppression des pkgs lors de la résolution de dépendance
• --assumeno | -y Répond automatiquement par no | yes aux questions posées
• -C, --cacheonly Exécutez entièrement à partir du cache système
• --disablerepo=<repoid> Désactive (uniquement pour l’opération en cours) le dépôt mentionné
• --downloaddir=<path>, --destdir=<path> Généralement utilisé avec --downloadonly
• --downloadonly Télécharge les pkgs sans exécuter aucune transaction rpm
• --enablerepo=<repoid>
• -x <pkg>, --exclude=<pkg> Exclure le pkg indiqué de l’opération
• --forcearch=<arch> Forcer l’utilisation de l’architecture indiquée
• -h, --help, --help-cmd Afficher l’aide
• --installroot=<path>
• --nogpgcheck Exécuter l’opération sans vérifier les signature, si « RPM policy » le permet.
• --repo=<repoid>, --repoid=<repoid> Exécuter l’opération en activant uniquement le dépôt indiqué
• --skip-broken Enlever les pkgs causant des problèmes lors de la résolution de dépendance
• --showduplicates Avec les commandes list et search, elle montre toutes les versions des pkgs
• -v, --verbose

A. El Hadri Administration Linux I - 163


Dnf : Mise à jour
• Mettre à jour tous les pkgs : dnf upgrade ou dnf update
• Pour avoir la liste des mises à jours sans les installer : dnf check-update
• Mettre à jour la distribution tout en excluant un paquet :
dnf upgrade --exclude=nomdupaquet
exemple : # dnf upgrade --exclude=kernel\*
• Mise à jour en activant et/ou désactivant un ou plusieurs dépôts :
# dnf upgrade --enablerepo=x\* --disablerepo=y\*
# dnf upgrade --repo=x\*
• Mettre à jour un pkg vers une version spécifique ; exemple :
dnf upgrade-to firefox-74.0-3.fc31
• Revenir vers une ancienne version : dnf downgrade pkg

A. El Hadri Administration Linux I - 164


Dnf : recherche
• Pour rechercher un paquet à partir d'un mot clef :
# dnf search <mot clef>
• Il s'agit d'une recherche large, en recoupant les informations contenues dans
le nom des paquets ainsi que dans leurs descriptions sommaires.
• L’option --all peut être rajouter pour chercher aussi dans la description
complète et l’URL
• Si vous avez déjà une idée plus précise du paquet recherché, il est possible
de restreindre la recherche au seul nom du paquet :
# dnf list <nom du paquet>
• Bien sûr, DNF accepte le caractère joker * (étoile, ou wildcard en anglais) :
# dnf list kernel\*

A. El Hadri Administration Linux I - 165


Dnf : info et list
• D’autres options pour lister les pkgs :
# dnf list --available pour lister les pkgs non installés
# dnf list --installed net\* les pkgs non installés dont le
nom commence par « net »
• # dnf list --extras les pkgs installés qui ne sont sur aucun des
dépôts actifs
• Pour obtenir des informations sur un paquet, par exemple avant de l'installer
ou de le supprimer:
# dnf info <nom du paquet>

A. El Hadri Administration Linux I - 166


Dnf : repoquery
• La forme génerale de la commande repoquery est :
# dnf [options] repoquery [<select-options>]
[<query-options>] [<package-file-spec>]
• Cherche dans les dépôts les informations spécifiées dans <query-
options> concernant les paquetages spécifiés
• C’est équivalent à  « rpm -q » pour les dépôts
• La commande : dnf [options] repoquery –querytags
fournie la liste des tags utilisés par l’option --queryformat
• repoquery-n, repoquery-na et repoquery-nevra sont trois variante de
repoquery permettant la spécification exacte d’arguments en format NEVRA
(Name-Epoch:Version-Release.Arch)

A. El Hadri Administration Linux I - 167


Dnf repoquery : exemples
• dnf repoquery 'light*' Affiche tous les pkgs dont le nom commence par light
• dnf repoquery-na 'light*.noarch' Seuls les pkgs noarch qui commencent par light
• dnf repoquery --all –repo=x Tous les pkgs du dépôt x 
• dnf repoquery --requires lighttpd Affiche les dépendances du paquetage lighttpd
• dnf repoquery --requires python –resolve Affiche la liste des pkgs fournissant les
dépendances de lighttpd
• dnf repoquery -l lighttpd Lister les fichiers appartenant à un pkg
• dnf repoquery --file /etc/lighttpd/lighttpd.con Le nom du pkg contenant le fichier
• dnf repoquery --queryformat '%{name}.%{arch} : %{reponame}' lighttpd
L’option --queryformat permet de préciser les informations à afficher
• dnf repoquery --whatprovides webserver Lister tous les pkgs fournissant la capacité
"webserver"

A. El Hadri Administration Linux I - 168


Dnf install & reinstall
• Pour installer un paquet : # dnf install <nom du paquet> ...
• Exemples
dnf install tito  Installe le pkg tito (tito étant le nom du package).
dnf install tito-0.6.12-2.fc31 Installe (ou mettre à jour vers) une version spécifique
dnf install ~/Downloads/tito-0.6.12-1.fc31.noarch.rpm Installe un fichier rpm
dnf install https://kojipkgs.fed.org//packages/tito-0.6.12-2.fc31.noarch.rpm
dnf install vim DNF saura automatiquement que vim n’est pas un nom de
package mais une capacité, et installera le pkg qui la fournie
dnf install '@Web Server' Installe le groupe 'Web Server'
dnf install /usr/bin/rpmsign Installe le pkg qui fournit le fichier /usr/bin/rpmsign
dnf -y install tito –setopt=install_weak_deps=False
Installe le pkg tito sans ses dépendances faibles

A. El Hadri Administration Linux I - 169


Dnf remove & autoremove
• Pour désinstaller un paquet : # dnf remove <nom du paquet> …
• Pour désinstalle tous les pkgs qui ont été installés pour des raisons de dépendance et qui ne
sont plus utilisés actuellement # dnf autoremove
• Exemples
dnf remove acpi tito Désinstalle les deux pkgs avec leurs dépendances, ainsi que tous
les pkgs non utilisés qui ont été installés pour satisfaire les dépendances de ceux supprimés
dnf remove acpi --noautoremove Désinstalle uniquement acpi et tous ceux qui l’utilisent
dnf remove $(dnf repoquery --extras –exclude=tito,acpi) Désinstalle tous les packages
qui ne sont présents dans aucun des dépôts actifs sauf tito et ecpi
dnf remove /boot/vmlinuz-4.18.0-1.el8.x86_64 Supprime le pkg fournissant le fichier
spécifié
dnf remove '@Web Server' Supprime tous les pkgs du groupe ‘Web Server’

A. El Hadri Administration Linux I - 170


Dnf : les groupes
• Les Groupes sont des collections de paquetages mises en place pour faciliter l'installation
/suppressions d'ensembles complexes, comme par exemple les environnements de
bureau.
• dnf group [summary] <group-spec>
affiche le nombre de groupes installés et disponibles répondant à « group-spec »
• dnf group info <group-spec> Affiche la liste des pkgs du groupe spécifié. Avec
l’option -v elle affiche si les pkgs sont installés et le dépôt où ils se trouvent sinon
• dnf group list [<group-spec>] Liste les groupes répondant à « group-spec ». Tous
les goupes si aucun proup-spec n’est mentionné. L’option --available restreint la liste aux
groupes non installés. De même, --installed liste uniquement les groupes installés
• dnf group install [--with-optional] <group-spec>…
Marque le groupe installé et installe les pkgs le constituant. L’option --with-optional
installe aussi les pkgs optionnels du groupe. Si le groupe est partiellement installé, la
commande installe le reste

A. El Hadri Administration Linux I - 171


Dnf : les groupes
• dnf group remove <group-spec>…
Marque le groupe non installé et supprime tout pkg du groupe n’appartenant à aucun
autre groupe installé et qui n’a pas été installé explicitement par l’admin
• dnf group upgrade <group-spec>…
Met à jour les pkgs constituant le groupe, installe les pkgs ajoutés au groupe et
désinstalle ceux qui ont été supprimés s’ils n’ont pas été installés explicitement.
• Les groupes peuvent être marqués installés ou non installés sans réellement installer ou
désinstaller des pkgs :
• dnf group mark install <group-spec>…
Marque le groupe spécifié installé. Aucun pkg n’est installé par la commande mais le
groupe sera considéré comme installé.
• dnf group mark remove <group-spec>…
Marque le groupe spécifié comme non installé. La commande ne désinstalle aucun pkg

A. El Hadri Administration Linux I - 172


Dnf : gestion des dépôts
• dnf repolist [--enabled|--disabled|--all]
liste respectivement les dépôts activés, désactivés ou tous les dépôts installés.
L’option -v fournie plus de détails
• dnf repoinfo [repo-id] Alias vers dnf -v repolist [repo-id]
• dnf config-manager --enable <repo-id> ou
dnf config-manager --set-enabled <repo-id>
pour activer un dépôt
• dnf config-manager --disable <repo-id> ou
dnf config-manager --set-disabled <repo-id>
pour désactiver le dépôt en question
• dnf config-manager --add-repo http://exemple.com/fedora/dépôt.repo ou
dnf config-manager --add-repo http://exemple.com/fedora/
ajoute le dépôt spécifié en plaçant le fichier « repo » indiqué sous le répertoire
/etc/yum.repos.d

A. El Hadri Administration Linux I - 173


Dnf history
• La commande dnf history permet à l’admin de voir ce qui s'est passé dans les transactions passées
et d'agir en fonction de ces informations.
• dnf history [list] [<spec>…] Liste les transactions indiquées (toutes, si aucun argument).
<spec> peut être soit un <transaction-spec>, qui spécifie directement une transaction, soit un
<transaction-spec> .. <transaction-spec>, qui spécifie une plage de transactions, ou un nom de pkg
qui spécifie toutes les transaction le manipulant.
<transaction-spec> peut être :
– n: un nombre positif  qui est le numéro de la transaction,
– last : qui désigne la dernière transaction ou
– last-n ou simplement -n qui désigne la nième avant dernière transaction
• dnf history info [<spec>…] Affiche le détail concernant la ou les transactions spécifiés (la
dernière si aucune transaction n’est indiquée)
• dnf history redo <transaction-spec> Ré-exécute la transaction indiquée
• dnf history undo <transaction-spec> Annule l’effet de la transaction spécifié en exécutant les
opérations opposées à toutes celles effectuées par la transaction en question.
• dnf history rollback <transaction-spec> Annule toutes les transactions exécutées après celle
indiquée

A. El Hadri Administration Linux I - 174


Dnf : autres commandes
• dnf clean all | packages | metadata
supprime les pkgs téléchargés et/ou les metadata des dépôts
• dnf check [--dependencies] [--duplicates] [--obsoleted] [--provides]
Contrôle la BD locale des pkgs et affiche les éventuels problèmes rencontrés
• dnf help [<command>]
• dnf shell [file-name] Ouvre un shell interactif pour écrire une transaction complète
constituée de plusieurs commandes. La dernière commande peut être run pour lancer la
transaction ou exit pour quitter.
• dnf makecache Télécharge et actualise les metadata des dépôts actifs.
• dnf makecache --timer --timer rend la commande plus sensible à la consommation de
ressources : ne fait rien si le cache est à jour ou si la machine est sur batterie
• dnf provides <provide-spec> Cherche et affiche qui fournit « provide-spec ». Ce
dernier peut être le chemin complet d’un fichier, une commande ou une capacité.

A. El Hadri Administration Linux I - 175


Interfaces graphiques

Deux interfaces graphiques sont disponibles dans les dépôts :
– PackageKit : est une suite conçue pour offrir une interface commune de gestion
pkgs capable d’interagir avec la plupart des systèmes de gestion de pkgs
comme : dnf, apt, pacman, ...
PackageKit offre plusieurs front-end comme :

Pkcon : PackageKit, en ligne de commande

GNOME-Software : interface graphique pour GNOME

Apper (anciennement KpackageKit) : interface graphique pour KDE.

...
– dnfdragora : héritier de l’ancien Yumex, offre une interface graphique intuitive
et fonctionnelle

D’autres outils graphiques sont disponibles mais moins utilisés comme yumex,
simple-dnf, dng-gui, ...

A. El Hadri Administration Linux I - 176


gnome-software

A. El Hadri Administration Linux I - 177


Apper

A. El Hadri Administration Linux I - 178


dnfdragora

A. El Hadri Administration Linux I - 179


yumex

A. El Hadri Administration Linux I - 180


Gestion
des
Utilisateurs
Définitions

Gérer
– Ajouter des utilisateurs et des groupes
– Modifier les attributs des utilisateurs et groupes
– Supprimer les utilisateurs et groupes


Outils utilisés
– L’ interfaces graphique

– Les commandes du système : useradd, userdel,


groupadd, groupdel, …
– Agir directement sur les fichiers de configuration

A. El Hadri Administration Linux I - 182


Principes

Chaque utilisateur est décrit par
– Nom de connexion (Username)
– Mot de passe (Password)
– Numéro identificateur (User ID) unique entre 0 et 65535
– Groupe primaire (Group ID)
– Groupes secondaires
– Nom complet et autres informations
– Répertoire de travail (Home Directory)
– Shell de connexion (Login Shell)
– Date d'expiration du compte
– Durée de validité du mot de passe
– ...
A. El Hadri Administration Linux I - 183
Principes

Chaque groupe est caractérisé par
– Un Nom (Group Name)
– Un numéro identificateur (Group ID)
– La liste de ses membres
– Éventuellement un mot de passe
– Éventuellement un ou plusieurs administrateurs
du groupe

A. El Hadri Administration Linux I - 184


Principes

Chaque utilisateur est
– membre d’un et d’un seul groupe primaire
– peut appartenir à plusieurs groupes secondaires

[ali@Shems ali]$ id
uid=510(ali) gid=501(ginfo)
groupes=501(ginfo),100(users),601(musiq)
[ali@Shems ali]$ groups
ginfo users musiq
[ali@Shems ali]$ lid -g musiq
ali(uid=510)
salia(uid=600)

A. El Hadri Administration Linux I - 185


Principes

Un ensemble d’utilisateurs et de groupes sont créés
automatiquement à l’installation du système ou de quelques
applications

Les UID de Ces utilisateurs sont < 500

Ils contrôlent l'accès aux différents services du système

Exemple:
– bin
– daemon
– apache
– lp
– ...

A. El Hadri Administration Linux I - 186


Les GUI

system-config-user

A. El Hadri Administration Linux I - 187


Les GUI

Permettent la majorité des opérations habituelles (ajout,
suppression, modif)

Simples et conviviales mais limitées

Dépendent des distributions

Pratiques si :
– On travaille sous X-Window
– On désire faire une manipulation classique

A. El Hadri Administration Linux I - 188


Les commandes Linux
useradd Créent un utilisateur
adduser Supportent un nombre important d’options pour la spécification
des différents attributs
useradd [-c commentaire] [-d rép_perso]
[-e date_expiration] [-f inactive_time]
[-g groupe_initial|-N|-U] [-G groupe[,...]]
[-m [-k rép_squelette] | -M] [-p mot_de_passe]
[-s shell] [-u uid [ -o]] [-r] login

userdel Supprime un utilisateur


l’option –r permet de supprimer aussi son espace de travail

A. El Hadri Administration Linux I - 189


Les commandes Linux

groupadd Ajoute un groupe


syntaxe:
groupadd [-g gid [-o]] [-r] [-f] group

groupdel Supprime un groupe


syntaxe:
groupdel group

un contrôle est effectué pour savoir si le groupe supprimé contient


ou non des membres.

A. El Hadri Administration Linux I - 190


Les commandes Linux
usermod Modifie les attributs d'un utilisateur
usermod [-c commentaire] [-d rép_perso [ -m]]
[-e date_expiration] [-f inactivité]
[-g groupe_initial] [-G groupe,… [-a]]
[-l new-login-name] [-p mot_de_passe]
[-s shell] [-u uid [ -o]] [-L|-U] login

groupmod Permet de modifier les attribus d'un groupe


groupmod [-g gid [-o]] [-n group_name ] group

A. El Hadri Administration Linux I - 191


Les commandes Linux
Les commandes suivantes permettent à un utilisateur de modifier
quelques caractéristiques de son compte

chsh Modifie le shell de connexion

chfn Modifie le champ GCOS contenant le nom et prénom et autres


informations personnelles

passwd Permet de modifier le mot de passe

gpasswd Permet d’administrer les groupes :


gpasswd groupe
gpasswd -a|-d utilisateur groupe
gpasswd -R groupe
gpasswd -r groupe
gpasswd [-A utilisateur,...] [-M utilisateur,...] groupe

A. El Hadri Administration Linux I - 192


La commande passwd

Utilisation: passwd [OPTION...] <accountName>

Les principales options sont :
-d, --delete supprime le mot de passe du compte
-l, --lock verrouiller le mot de passe du compte
-u, --unlock déverrouiller le mot de passe du compte
-e, --expire forcer l'expiration du mot de passe du compte
-f, --force force l'opération
-x, --maximum=DAYS durée de vie maximale du mot de passe
-n, --minimum=DAYS durée de vie minimale du mot de passe
-w, --warning=DAYS nombres de jours avant l'expiration du mot de passe
durant lesquels l'utilisateur recevra un avertissement
-i, --inactive=DAYS nombre de jours après expiration du mot de passe avant le
désactivation du compte
-S, --status affiche l'état du mot de passe du compte sélectionné

A. El Hadri Administration Linux I - 193


La commande chage

Utilisation: chage [OPTION...] <accountName>

Permet de modifier les informations de validité du mot de passe

Les principales options sont :
-d, --lastday LAST_DAY positionne la date du dernier changement du mot de
passe à LAST_DAY
-E, --expiredate EXPIRE_DATE modifie la date d’expiration du compte
-I, --inactive INACTIVE même effet que l’option -i de la commande passwd
-m, --mindays MIN_DAYS même effet que l’option -n de la commande passwd
-M, --maxdays MAX_DAYS même effet que l’option -x de la commande passwd
-W, --warndays WARN_DAYS même effet que l’option -w de la commande passwd
-l, --list liste les informations liées aux dates et durées de
validité

A. El Hadri Administration Linux I - 194


Fichiers d’enregistrement

La gestion des utilisateurs est assurée à l’aide de 4 fichiers de
base:
/etc/passwd : La liste des utilisateurs avec leurs
descriptions
/etc/shadow : Les mots de passe stockés d’une
manière cryptée + leurs durées de
validité
/etc/group : Définitions des groupes
/etc/gshadow : Les mots de passe des groupes (rarement
utilisé)

A. El Hadri Administration Linux I - 195


/etc/passwd

Chaque utilisateur est décrit par une seule ligne dans ce fichier.

Chaque ligne a la structure suivante :
login : passwd : uid : gid : comment : home : shell
login : Il s'agit du nom de connexion de l'utilisateur.
passwd : contenait le mot de passe codé de l’utilisateur en question.
Actuellement ce champ contient la seule lettre x pour signaler la
présence du fichier /etc/shadow
uid : Il s'agit d'un numéro unique de l'utilisateur. Compris entre 0 et un
max (65535). 0 est l’uid de l’administrateur
gid : Numéro de groupe. Chaque utilisateur appartient à un groupe
primaire. Il pourra également appartenir à des groupes secondaires.
comment : Nom complet de l'utilisateur.
home : Chemin complet du répertoire représentant l’espace de travail privé
attribué à l'utilisateur
shell : Chemin complet du shell de connexion.

A. El Hadri Administration Linux I - 196


/etc/passwd: quelques lignes

Comptes systèmes
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
......
......
es
samir:x:501:501:Samir Amiss:/home/depinfo/samir:/bin/bash
p t s
alia:x:502:501:alia hamza:/home/alia:/bin/bash m
Co sateur
i
Util

A. El Hadri Administration Linux I - 197


/etc/shadow

Contient les mots de passe des utilisateurs sous format codé

Chaque utilisateur possède une ligne dans ce fichier dont la structure est la suivante

login : passwd : last : may : must : warn : expire : disable :


login : Le nom de connexion de l'utilisateur.
passwd : Le mot de passe encodé
last: Date de la dernière modification (en nombre de jours depuis le 1 ier
janvier 1970).
may: Nombre de jours avant que le mot de passe puisse être modifié.
must: Nombre de jours avant que le mot de passe doive être modifié.
warn: Nombre de jours durant lesquels l'utilisateur est prévenu de
l'expiration de son mot de passe.
expire: Nombre de jours entre l'expiration du mot de passe et la fermeture du
compte.
disable : Date de la fermeture du compte (en nombre de jours depuis 1/1/1970).

A. El Hadri Administration Linux I - 198


/etc/shadow: quelques lignes
root:$1$ryiKUDlj$Quh56ZLg15C0ZCt1:12668:0:99999:7:::
bin:*:12668:0:99999:7:::
daemon:*:12668:0:99999:7:::
adm:*:12668:0:99999:7:::
lp:*:12668:0:99999:7:::
shutdown:*:12668:0:99999:7:::
mail:*:12668:0:99999:7:::
....
samir:$1$CdC9mrQu$OPB7u9D0ig1IHT0:12674:0:99999:7:::
alia:$1$Fr47ytUy$O.997i6anig1Igi9:12683:0:99999:7:::

A. El Hadri Administration Linux I - 199


/etc/group

Contient la description de l’ensemble des groupes définis
dans le système

Chaque groupe est décrit par les champs suivant

group : passwd : gid : membres

group : Le nom du groupe en question.


passwd : Le mot de passe du groupe.
gid : Le numéro identificateur du groupe
membres: Liste les membres séparés par des virgules.

A. El Hadri Administration Linux I - 200


/etc/group : quelques lignes

Groupes systèmes
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
lp:x:7:daemon,lp
sshd:x:74:
users:x:100:samir, ali, bouchra
... p es
r o u rs
ginfo:x:501: G a te u
t i li s
musiq:x:601:samir,alia U

A. El Hadri Administration Linux I - 201


les mots de passe de groupes

Le mots de passe d'un groupe est demandé uniquement aux
utilisateurs non membres qui utilisent la commande newgrp
pour en faire partie.
[ali@Shems ali]$ id
uid=510(ali) gid=501(ginfo)
groupes=501(ginfo),100(users),601(musiq)
[ali@Shems ali]$ newgrp astronomie
pasword :
[ali@Shems ali]$ id
uid=510(ali) gid=602(astronomie)
groupes=501(ginfo),100(users),601(musiq),
602(astronomie)

A. El Hadri Administration Linux I - 202


les mots de passe de groupes

Lorsque aucun mot de passe n’est défini pour un groupe, seuls les
membres peuvent utiliser newgrp pour en faire partie.

La commande gpasswd permet à l'administrateur système de
désigner un administrateur de groupe, d’ajouter des membres et
d'attribuer (ou modifier) les mots de passe des groupes

Les administrateurs de groupes peuvent modifier les mots de passes
des groupes correspondant et d’ajouter et supprimer des membres.

Le fichier /etc/gshadow (en lecture seule pour l'administrateur)
lorsqu'il existe, contient la liste de tous les groupes avec leurs mots
de passes, leurs administrateurs et leurs membres

A. El Hadri Administration Linux I - 203


/etc/gshadow

Contient principalement les mots de passe des groupes

Chaque ligne contient les champs suivant :

group : passwd : administrateurs : membres

group : Le nom du groupe en question.


passwd : Le mot de passe du groupe sous format
crypté.
administrateurs : Liste des administrateurs du groupe
membres : Liste les membres séparés par des virgules.

A. El Hadri Administration Linux I - 204


/etc/gshadow : quelques lignes
root:::root

Groupes systèmes
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon
lp:::daemon,lp
sshd:x::
users:::samir, ali, bouchra
...
ginfo:!:: Gro
musiq:!::samir,alia Util upes
is a t
astronomie:f3XsyLytVF.fg::samir,ali eur
s

A. El Hadri Administration Linux I - 205


Quelques considérations

Les 4 fichiers précédents peuvent être édités manuellement pour crées
ou modifier les utilisateurs et les groupes.

Dans ce cas les liens entre ces fichiers devront être respectés

Les commandes vipw et vigr (sans arguments) doivent être utilisées (à
la place de vôtre éditeur de texte préféré) pour éditer respectivement
les 2 couples de fichiers :
(/etc/passwd, /etc/shadow) et (/etc/group, /etc/gshadow)

vipw et vigr verrouillent les fichiers correspondant pour interdire aux
utilisateurs connectés de modifier les attributs de leurs comptes (mot
de passe, shell, ...) au moment de l'édition.

Utilisent l'éditeur spécifié dans la variable d'environnement EDITOR

A. El Hadri Administration Linux I - 206


Quelques considérations

La commande pwck teste l'intégrité des fichiers
/etc/passwd et /etc/shadow

grpck teste l'intégrité des fichiers /etc/group et /etc/gshadow

Le répertoire /etc/skel contient les fichiers de configuration
(comme: .bashrc, .bash_profile, .emacs, ...) copiés dans les
espaces de travail des utilisateurs nouvellement créés

Le fichier /etc/login.def contient les paramètres par défaut pris
en considération lors de la création des comptes par la
commande useradd ou les GUI.

A. El Hadri Administration Linux I - 207


Systèmes de fichiers Linux
Définition

Module du noyau de système d'exploitation

Rôle : Ranger, organiser et retrouver l'information sur
supports de stockage.

Système de fichier =
– Concepts visant à offrir une vision simple et efficace des
problèmes liés aux stockage et l'accès aux données
– Implémentation : structure d'accueil + modules
nécessaires

Plusieurs choix sont souvent offerts

A. El Hadri Administration Linux I - 209


Types

Plusieurs types sont supportés
UFS Unix File System est le système de fichier primitif
d’AT&T
FFS Fast File System est le système de fichiers Berkeley.
Plus rapide et plus performant que son prédécesseur.
Constitue la base de presque tous les sf tournant
actuellement sous les divers systèmes Unix
minix Le système de fichier de MINIX (le prédécesseur de
Linux) relativement performant, mais limité en
fonctionnalités et aussi dans ces capacités (64M max)

A. El Hadri Administration Linux I - 210


Types

Les systèmes natifs
EXT2 Second Extended Linux File System: système de
fichiers a de linux, très répandu, robuste et performant.

Conçu de manière évolutive: il prévoit l'ajout de


nouvelles capacités sans réécriture du code. Certaines
personnes sont en train de développer des extensions :
listes de contrôle d'accès se conformant à la sémantique
Posix, undelete, et compression à la volée.
EXT3 Système de fichiers journalisé de Linux. Hérite de
toutes les caractéristiques de ext2.
EXT4 Système de fichier natif utilisant les extents

A. El Hadri Administration Linux I - 211


Types (2)

Les autres systèmes de fichiers pour Linux
ReiserFS Système de fichiers conçu et développé par Hans
Reiser. Il est principalement utilisé par
GNU/Linux. Il fut le premier système de fichiers
journalisé à être intégré en standard dans le noyau
Linux. Très performant pour les fichiers de petite
taille
XFS Système de fichiers journalisé pour Linux
disponible chez SGI et prouvé sur les systèmes
Irix.
JFS Créé par IBM pour son Unix Aix. Et placer sous
licence GPL en 2000 pour en faire le portage sous
Linux.
A. El Hadri Administration Linux I - 212
Types (3)
Les autres :
FAT & VFAT Le système de fichiers de MsDos et
Windows. Utilisé particulièrement pour
accéder aux partitions Windows, aux
disquettes et aux mémoires flash.
NTFS Système de fichiers de Windows NT.
Supporté en lecture écriture
HPFS Le système de fichiers de OS/2
HFS, HFS+ Systèmes de fichiers de MacOS X

A. El Hadri Administration Linux I - 213


Types

Sans oublier :
NFS Network File Services. NFS est le système
de fichiers implanté physiquement sur une
autre machine et accessible à la machine
locale via le protocole NFS.
Iso 9660 Le système de fichiers standard pour CD-
ROMs. L'extension Rock Ridge qui permet
d'avoir des noms de fichiers plus long est
aussi supportée.

A. El Hadri Administration Linux I - 214


UFS - Structure
Boot Block
Super Block

Inode Table

Data
Blocks

A. El Hadri Administration Linux I - 215


UFS - Structure

Boot Block : Réservé pour contenir eventuellement le


programme d’amorce utilisé au démarrage
du système. Sa taille est de 512 octets.
Super Block: Stocke les informations globales de contôle
et de gestion du système de fichiers
Tables des inodes : Chaque entrée du système de fichiers est
representée par un inode contenant ses
attributs. La table a une taille fixe décidée
au moment de la création du système.
Blocs Espace réservé pour le stockage de contenu

A. El Hadri Administration Linux I - 216


Super Block

Contient l’ensemble des information nécessaire pour la
gestion et le contrôle du système de fichiers:
– Le nom de volume
– La taille du systèmes de fichiers
– La taille de la table des i-nodes
– Flag de modification du Super-Bloc
– Flag lecture seule pour les SF montés en RO
– Nombre total de blocs libres
– Nombre total des i-nodes libres
– Taille des blocs
– ...

A. El Hadri Administration Linux I - 217


Super Block


Les informations du Super Block sont utilisées
principalement par les différents appels système (creat,
mknod, write, mount, umount, ..).


Le système garde et utilise une copie du Super Block
en mémoire. Le Super Block disque est mis à jours à
l'exécution de la commande sync.

A. El Hadri Administration Linux I - 218


Structure de la T-inodes

Chaque entrée dans la table des inodes contient les
informations suivantes:
– type
– droits d'accès
– nombre de références
– propriétaire
– groupe
– taille
– table des adresses de blocs
– date de la dernière modification
– date de dernier accès
– date de la dernière modification de l'inode

A. El Hadri Administration Linux I - 219


La table d'adressage
Blocs d’adressage
Attributs

Blocs de
données

A. El Hadri Administration Linux I - 220


Répertoire UFS
1230
type = d mode = 0755
nb ref = 2 taille = 4096
user = 534 group = 100
.... Table d'inodes

. 1230
Noms de fichiers .. 1214
Numéros
et sous fic1 1234
d'inodes
répertoires
fic2 554
rep1 1200
5

A. El Hadri Administration Linux I - 221


Interprétation des chemins
● Pour accéder au fichier /home/Shems/pr.c le système effectue
les opérations suivantes :
– Accéder à l'inode n°2 (inode de la racine) pour chercher le
répertoire home
– Charger en mémoire l’inode de /home pour chercher le numéro
d'inode correspondant au répertoire Shems
– Chercher l’intérieur de Shems le numéro d’inode du fichier
pr.c
– Accéder à l’inode en question

À chaque chargement d’inode un contrôle d’accès est effectué.

A. El Hadri Administration Linux I - 222


Interprétation des chemins
2 1200 1300 1530
type = d type = d type = d type = f
mode = 0755 mode = 0755 mode = 0755 mode = 0600
nb_ref = 27 nb_ref = 51 nb_ref = 2 nb_ref = 1
taille = 4096 taille = 4096 taille = 4096 taille = 58 Table
user = 0
...
group = 0 ... user = 0
...
group = 0 ... user = 534 group =
100
... user = 534
group = 100 d'inodes
... ...

. 2
.. 2 . 1200
etc 123 .. 2 . 1300
home 1200 Ali 1235 .. 1200
bin 105 Shems 1300 mail 1283 #include <stdio.h>
main() {
Zayd 1500 pr.c 1530 printf("hello\n");
img 4005 }

A. El Hadri Administration Linux I - 223


Ext2

Apparut en 1994 comme successeur de ExtFS (Extended File
System) avec comme objectif :
– Corriger les bugs et problèmes de performance de son
prédécesseur
– pousser les limites des systèmes de fichiers de l'époque (Max
FS size, Max file size, Max file name, ...)
– Rendre le système de fichiers plus performant (optimiser les
temps de réponse, ...)
– Rendre le système plus robuste : réduire les problèmes de
crash et de perte de données
– Offrir un système extensible : possibilité d'ajout de nouvelles
extensions en garantissant une compatibilité totale.

A. El Hadri Administration Linux I - 224


Ext2 : Caractéristiques I

Supporte tous les types standards : fichiers réguliers,
répertoires, liens symboliques, sockets, …

peut gérer les partitions allant jusqu'à 16 TB.

Les nom de fichiers peuvent avoir jusqu'à 255 caractères,
avec possibilité d'extension à 1012 caractères.

Possibilité de définir des blocs logiques de 1, 2 et 4 Ko. La
taille de de 1Ko favorise le taux d'occupation et est prise
pour les systèmes de fichiers visant à contenir des fichiers
relativement cours en moyenne (< à quelques Ko).

A. El Hadri Administration Linux I - 225


Ext2 : Caractéristiques II


Découpage de chaque disque en groupes de cylindres
permettant :

Une dispersion de la table des i-nodes

Un rapprochement des inodes par rapport aux blocs
de données

Une réplication du super bloc assurant une meilleur
sécurité

A. El Hadri Administration Linux I - 226


Groupe de cylindres
Vue de dessus rotatio Piste
n

Secteu
r
Platea
u

Bloc

Tête de
lecture/écriture

Surface
s

Vue en coupe Cylindre

A. El Hadri Administration Linux I - 227


Groupe de cylindres
Super Block
Group Descriptors

Groupe de cylindre N
Groupe de cylindre 0 Data Block Bitmap
Inode Bitmap
Boot Block

Inode Table

Data
Blocks

A. El Hadri Administration Linux I - 228


Groupe de cylindres

Chaque groupe de cylindres contient :
– Une réplique du superbloc.
– Une réplique du descripteur de groupe contenant
principalement les adresses des blocs d’allocation et des
tables des inodes.
– Un Bitmap d’allocation des blocs de données
– Un Bitmap d’allocation des inodes.
– Une table d’inodes contenant les fichiers et répertoires
résidant dans le groupe.
– Un espace pour les blocs

A. El Hadri Administration Linux I - 229


Ext2 : Caractéristiques IV

Liens symboliques rapides

Mémorisation de l'état lors du montage/démontage

Compteur de forçage de vérifications

Caractéristiques spécifiques : suppression
sécurisée, compression automatique, ...
positionnées à l’aide d’attributs

Contrôles d’accès raffinés

A. El Hadri Administration Linux I - 230


Ext2 : Caractéristiques III

Les attributs suivants peuvent être positionnés pour chaque
fichier et répertoire du système ext2, (à l’aide de la commande
chattr)
A évite la modification du champs atime à chaque accès
Avec la commande : chattr +A file
le système ne modifie pas la date de dernier accès du fichier
file à chaque accès à ce dernier (pour augmenter la
performance)
L’attribut peut être retiré par la commande : chattr -A
file
a append : lorsque l'attribut a est positionné, le fichier
correspondant ne peut être ouvert qu'en ajout seul . Utile
pour les fichiers de journalisation

A. El Hadri Administration Linux I - 231


Ext2 : Caractéristiques III
● Autres attributs
d interdit l'archivage de fichiers par commande dump (lors de
l’archivage de toute la partition par exemple)
i immutable: avec cet attribut positionné, un fichier (ou
répertoire) ne peut être ni supprimé ni modifié, ni déplacé, et
aucun lien ne peut être créé vers ce fichier.
S exige l'écriture synchrone sur disque des modifications
apportées
● Tous les attributs peuvent être positionnés et retirés
respectivement par:
chattr +list-attributs file...
chattr -list-attributs file...
● Et peuvent être consultés par : lsattr file...

A. El Hadri Administration Linux I - 232


Ext2 : Caractéristiques III
● Les attributs suivants sont prévus pour les versions futurs
c Compress : active la compression/décompression
automatique.
t Tail-merging: interdit l'utilisation de fragment pour
l'allocation d'espace.
u Undelete: les fichiers possédant l'attribut u peuvent être
restaurés après leur suppression
s Secure delete : lors de suppression l'espace occupé par le
fichier est remplit de zéro pour garantir la suppression
physique des données

A. El Hadri Administration Linux I - 233


Systèmes de Fichiers Journalisés
● Lors d’opérations modifiant la structure du Système
de Fichiers : 2 approches
– Approche traditionnelle (ext2) = Travailler « sans filet
» :En cas de panne brutale : il faut tout vérifier (fsck)
– Approche Journalisée = Procéder en 2 temps :
1. Ecrire ce qui va être fait (journal)
2. Appliquer ce qui est dans le journal
En cas de panne brutale :
– Cohérence maintenue
– Vérification très rapide (indépendant de la taille du SF)

A. El Hadri Administration Linux I - 234


Systèmes de Fichiers Journalisés

Linux supporte plusieurs systèmes de fichiers journalisés :
Ext3, Ext4 Système de fichier natif de Linux
ReiserFS Système de fichiers conçu et développé par Hans
Reiser. Il est principalement utilisé par GNU/Linux. Il
fut le premier système de fichiers journalisé à être
intégré en standard dans le noyau Linux. Très
performant pour les fichiers de petite taille
XFS Système de fichiers journalisé pour Linux disponible
chez SGI et prouvé sur les systèmes Irix.
JFS Créé par IBM pour son Unix Aix. Et placer sous
licence GPL en 2000 pour en faire le portage sous
Linux.

A. El Hadri Administration Linux I - 235


Ext3

Ext3 = Ext2 + Journal
– Conserve l'organisation Ext2

Fonctionnalités avancées (immutable, compression, …)

Stabilité
– Conversion facile de ext2 en ext3
● tune2fs –j /dev/hda3


Ext3 devient le standard
– Préconisé par RedHat, Mandrake, etc…

A. El Hadri Administration Linux I - 236


Commandes d'administration

Les commandes d'administration de ext2 (et ext3)
– mkfs, mke2fs : création du SF (formatage)
– e2fsck : vérification et correction
– dumpe2fs : afficher les paramètres de la
partition
– tune2fs : réglage, configuration
– lsattr/chattr : lister/changer les attributs
– debugfs : déboguage manuel

A. El Hadri Administration Linux I - 237


mkfs

mkfs est utilisé pour formater un système de fichiers Linux sur
un périphérique, généralement une partition

SYNOPSIS
mkfs [-V] [ -t fstype ] [ fs-options ] filesys

filesys est le nom du périphérique (ex: /dev/hda1, /dev/sdb2)

mkfs est simplement une interface pour les divers formateurs de
système de fichiers. (mkfs.type_de_fs) disponibles sous Linux.
Le formateur du système de fichiers voulu est recherché dans
(/sbin, /sbin/fs, /sbin/fs.d, /etc/fs, /etc)

mkfs.ext2 et mkfs.ext3 sont des hard_link vers mke2fs

A. El Hadri Administration Linux I - 238


mke2fs

Permet de créer les systèmes de fichiers ext2 et ext3

SYNOPSIS:
mke2fs [ -c | -l filename ] [ -b block-size ] [ -f fragment-
size ] [ -i bytes-per-inode ] [ -j ] [ -J journal-
options ] [ -N number-of-inodes ] [ -n ]
[ -m reserved-blocks-percentage ] [ -o creator-os
] [ -O feature[,...] ] [ -q ] [ -r fs-revision-level ]
[ -R raid-options ] [ -v ] [ -F ] [ -L volume-label ]
[ -M last-mounted-directory ] [ -S ]
[ -T filesystem-type ] [ -V ]
device

A. El Hadri Administration Linux I - 239


mke2fs

Parmi les options intéressantes :
-c et -l : Recherche des blocs défectueux
-b Spécifie la taille des blocs
-i Spécifie le nombre d'inodes à créer par octet
-j Journalisation. Crée le système ext3
-J Permet de fixer quelques options de journalisation
-m Spécifie le pourcentage de blocs du système de fichiers
réservés pour les besoins de maintenance (5 % par
défaut)
-S Écrit uniquement le super bloc et les descripteurs de
groupes.

A. El Hadri Administration Linux I - 240


tune2fs

Ajuste les paramètres des systèmes de fichiers ext2 et ext3

SYNOPSIS:
tune2fs [ -l ] [ -c max-mount-counts ] [ -e errors-behavior ]
[ -i interval-between-checks ]
[ -j ] [ -J journal-options ]
[ -m reserved-blocks-percentage ]
[ -r reserved-blocks-count ] [ -s sparse-super-flag ]
[ -u user ] [ -g group ] [ -C mount-count ]
[ -L volume-name ] [ -M last-mounted-directory ]
[ -O [^]feature[,...] ] [ -U UUID ]
device

A. El Hadri Administration Linux I - 241


tune2fs

Parmi les options intéressantes :
-c Ajuste le nombre maximal de montages entre deux
vérifications.
-L Attribue un nom de volume au système
-i Ajuste la durée maximale entre deux vérifications
-j Ajoute un journal ext3 au système de fichiers.
-l Affiche le contenu du Superbloc du système de fichiers.
-m Définit le pourcentage de blocs réservés dans le système
-r Définit le nombre de blocs réservés dans le système de fichiers.
-u Définit l’utilisateur qui peut utiliser les blocs réservés dans le
système.

A. El Hadri Administration Linux I - 242


dumpe2fs
● Syntaxe:
dumpe2fs [-b] [-V] périphérique
● Description
– dumpe2fs affiche le super bloc et des informations sur les
groupes de cylindres du système de fichiers présent sur le
périphérique.
– dumpe2fs est semblable au programme dumpfs de Berkeley
pour le Système FFS de BSD (Fast File System).
● Options
– b affiche les blocs qui sont marqués défectueux.
– V affiche le numéro de version de dumpe2fs et sort.

A. El Hadri Administration Linux I - 243


e2fsck

Utilisé pour vérifier un système de fichiers Linux de type
ext2 ou ext3.

Vérifie en plusieurs passes le système ext2

Ext3 est vérifié directement par consultation du journal

Parmi les options de la commande :
-p Réparation automatique
-c Oblige e2fsck à exécuter le programme badblocks
pour trouver les blocs défectueux du système de
fichiers.
-f Force la vérification même si le système est
marqué « clean ».

A. El Hadri Administration Linux I - 244


Montage

Permet de raccorder un système de fichiers à
un répertoire initialement vide et accessible

Réalisé par la commande mount

L'opération tient en compte le type du
système monté et les paramètre de montage
spécifiés par l'administrateur

A. El Hadri Administration Linux I - 245


Montage

Avant le montage :

Deux systèmes de fichiers complètement indépendants

Le répertoire /usr du premier système est vide
Partition 1: Système de fichiers racine Partition 2

/ /

bin etc usr game X11R6 src


s

A. El Hadri Administration Linux I - 246


Montage
Après le montage :
/
# mount
/dev/hda2 /usr

Le deuxième système de
bin etc usr fichiers est maintenant
accessible sous le répertoire
/ /usr du premier

Transparence complète vis-à-
vis de l'utilisateur

La commande :
game X11R6 # umount /usr
src
s permet de déconnecter le
système et revenir à la
situation d'origine

A. El Hadri Administration Linux I - 247


mount

La forme standard de la commande mount :

# mount périphérique répertoire


attache le système de fichier du périphérique au répertoire
spécifié

Exemple :
# mount /dev/hda2 /usr
# ls /usr
games src X11R6

A. El Hadri Administration Linux I - 248


mount

Le système maintient le fichier /etc/mtab (ou /etc/mnttab)
qui contient l’ensemble des périphériques montés dans le
système.

La commande :
# mount [-t type]

Fournit la liste des systèmes de fichiers actuellement
montés (éventuellement ceux du type indiqué uniquement).

Le fichier /etc/fstab contient des lignes décrivant les
périphériques habituellement montés, leurs répertoires, et
leurs options.

A. El Hadri Administration Linux I - 249


/etc/fstab

Ce fichier a la structure suivante :

sysfich rep type options freq pass

sysfichle périphérique où réside le système de fichiers à monter


rep le répertoire de montage
type le type de ce système de fichiers
options options de montage
freq un nombre qui indique la fréquence de sauvegarde (dump)
pass l’ordre des testes par la commande fsck.

A. El Hadri Administration Linux I - 250


/etc/fstab

Parmi les options on trouve :
defaults Utilisation des options par défaut : rw, suid, dev, exec,
auto, nouser, et async.
noauto Ne peut être monté qu'explicitement.
noexec Ne pas permettre l'exécution de fichiers binaires sur le
système de fichiers monté.
nosuid Ne pas tenir compte des bits Set-UID ou Set-GID.
ro Montage du système en lecture seule.
user Autoriser les utilisateurs ordinaires (non root) à monter le
système de fichiers. Ceci entraîne l'utilisation des options
noexec,

A. El Hadri Administration Linux I - 251


/etc/fstab

Le fichier /etc/fstab est utilisé dans trois buts :
i. La commande mount -a [-t type]

(généralement exécutée dans un script de démarrage) monte tous


les systèmes de fichiers indiqués dans fstab (ou uniquement ceux
du type indiqué), à l'exception de ceux dont la ligne contient le
mot-clé noauto.
ii. Lorsque l'on monte un système de fichiers mentionné dans la fstab,
il suffit d'indiquer le point de montage ou le périphérique.
iii. Normalement, seul le Super-Utilisateur peut monter des systèmes
de fichiers. Néanmoins, si la ligne de la fstab contient l'option
user, n'importe quel utilisateur peut monter le système de fichiers
correspondant.

A. El Hadri Administration Linux I - 252


/etc/fstab : Exemple
# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1


LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/usr /usr ext3 defaults 1 2
/dev/hda10 swap swap defaults 0 0
/dev/hda5 /mnt/wind vfat user,ro 0 0

A. El Hadri Administration Linux I - 253


Quota

Objectif : instaurer une utilisation équitable du disque par les
utilisateurs et groupes.

Principes :
– Implémentation par système de fichiers
– Deux ressources disques à répartir : blocs et inodes
– Comptabilisation de ressources par utilisateur et/ou par
groupe
– Deux Limites : hard et soft
– Périodes de grâce

A. El Hadri Administration Linux I - 254


Quota: Configuration
1. Activation des quotas pour les systèmes de fichiers à
considérés dans /etc/fstab
2. Remontage du (ou des) système(s) de fichiers en
question
3. Création de la base de données des quotas par :
quotacheck
4. Attribution de quotas par utilisateurs et/ou groupes par :
edquota

A. El Hadri Administration Linux I - 255


Quota: Activation

Ajouter dans /etc/fstab les indications usrquota et grpquota
aux options de montage des systèmes de fichiers pour lesquels
on désir activer les quotas.

# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1


LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
none /proc proc defaults 0 0
...

A. El Hadri Administration Linux I - 256


Création de la base de données

La commande :
# quotacheck -cug /home
Crée sous /home (à la racine de la partition /home) les deux
fichiers aquota.user et aquota.group

Ces derniers contiennent des informations sur l'occupation
d'espaces (blocs et inodes) respectivement par utilisateur et
par groupe.

Les options utilisées dans la commande sont :
-c (Create) pour créer les fichiers
-u (User) pour créer le fichier aquota.user
-g (Group) pour créer le fichier aquota.group

A. El Hadri Administration Linux I - 257


Attributions des quotas

La commande :
# edquota username
ouvre l'éditeur par défaut (mis dans la variable
d'environnement EDITOR) pour permettre à
l'administrateur de spécifier les limites soft et hard en
terme de nombres de blocs et d'inodes à attribuer à
l'utilisateur en question.
# edquota zayd
Disk quotas for user zayd (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 1217620 0 0 17917 0 0

A. El Hadri Administration Linux I - 258


Attributions des quotas

La commande :
# edquota -p zayd ali
Attribut les mêmes limites à l'utilisateur Ali que celles
déjà attribuées à Zayd

Comme pour les utilisateurs, La commande :
# edquota -g groupe_name
permet de spécifier les limites qu'on veut associer au
groupe passé en argument

A. El Hadri Administration Linux I - 259


Attributions des quotas

La commande :
# edquota -t
Permet à l'administrateur de spécifier (à l'aide de l'éditeur
par défaut) la période de grâce.
# edquota -t
Grace period before enforcing soft limits for users
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda5 7days 7days

A. El Hadri Administration Linux I - 260


Autres commandes
● Activation : quotaon -augv
● désactivation : quotaoff -augv
● Contrôle : repquota -vug /home
Produit l'affichage suivant :
*** Report for user quotas on device /dev/hda5
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------
-
root 36 0 0 4 0 0
ali 540 0 0 125 0 0
zayd 40400 50000 55000 37418 0 0

A. El Hadri Administration Linux I - 261


Le système RAID

RAID : Redundant Array of Independent Disks.

But : rehausser la performance et la fiabilité

Comment?? Par l'utilisation simultanée de deux ou
plusieurs disque

De quelle façon précisément ??
Mirroring + Stripping + techniques de correction d'erreurs

A. El Hadri Administration Linux I - 262


Hardware RAID vs. Software RAID

Hardware RAID : contrôleur RAID gérant plusieurs unités de disques
➕ performance
➕ Indépendance vis à vis de l’OS
➖ Non flexible
➖ Couteuse

Software RAID
➕ Flexible
➕ Coût raisonnable
➕ Simple à implémenter (au niveau du kernel)
➖ Performance dépendante de la configuration du système (CPU +
Mémoire) : Consomme pré de 25% du cycle processeur

A. El Hadri Administration Linux I - 263


Linux Software RAID

Supporté à partir de la
version 2.6 du noyau Application

Niveaux de RAID File System
– Linear mode
– RAID-0: stripping Buffer Cache

– RAID-1: mirroring
Software RAID
– RAID-5
Device Driver
– RAID-10
– Autres niveaux rarement
utilisés: 2,3,4,6,50

Code source
– /usr/src/linux/drivers/md/raid0.c (or raid1.c, raid5 …)

A. El Hadri Administration Linux I - 264


Linear mode

Deux disques (ou plus) sont combinés en un seul périphérique
RAID.

Taille du périphérique RAID = Σ des tailles des disques

L'écriture sur le périphérique RAID remplira d'abord le disque
0, puis le disque 1 et ainsi de suite.

Les disques ne doivent pas nécessairement être de la même
taille.

Il n'y a pas de redondance dans ce niveau.

Pas d’impact notable sur Les performances en lecture ou en
écriture

A. El Hadri Administration Linux I - 265


RAID 0

Aussi appelé « stripe mode ». Les disques
doivent (mais pas nécessairement) avoir la
même taille.

Les opérations sur la baie seront réparties sur
les disques; par exemple, une grande écriture
peut être divisée en 64 kiB sur disque 0,
64 kiB sur disque 1, 64 kiB sur disque 2, puis
64 kiB sur disque 0, et ainsi de suite. Les
écritures sont exécutées en parallèle

Il n'y a pas non plus de redondance dans ce
niveau.

Avantage principale : la performance.

A. El Hadri Administration Linux I - 266


RAID 1

Appelé « Mirroring Mode » C'est le premier
mode qui a réellement la redondance.

RAID-1 peut être utilisé sur deux disques ou plus
avec zéro ou plusieurs disques de rechange. Ce
mode maintient une copie exacte des blocs du
premier disque, sur tous les autres disques.

Si jusqu'à N-1 disques sont supprimés, toutes les
données peuvent être restaurées.

Si des disques de réserve sont disponibles la
reconstruction commence immédiatement après la
détection du problème.

La performance d'écriture se voit dégradée celle
de lecture est améliorée.

A. El Hadri Administration Linux I - 267


RAID 4

Ce niveau de RAID n'est pas très souvent utilisé.
nécessite trois disques ou plus.

Garde les informations de parité sur un disque et
écrit les données sur les autres disques à la même
manière de RAID-0.

La taille du périphérique sera (N-1) * S, où S est
la taille du plus petit disque.

Si un disque tombe en panne, les informations de
parité peuvent être utilisées pour reconstruire
toutes les données.

La raison pour laquelle ce niveau n'est pas
fréquemment utilisé est que le disque de parité
constitue un goulot d'étranglement, s'il n'est pas
beaucoup plus rapide que les autres.

A. El Hadri Administration Linux I - 268


RAID 5

C'est peut-être le mode le plus utilisé lorsque l'on
souhaite combiner performance et disponibilité

RAID-5 nécessite trois disques ou plus, avec zéro
ou plusieurs disques de rechange. La taille du
périphérique RAID-5 qui en résulte est (N-1) * S,
tout comme RAID-4.

La grande différence par rapport à RAID-4 est que
les informations de parité sont réparties
uniformément entre tous les disques.

Si l'un des disques tombe en panne, toutes les
données peuvent être récupérées, grâce aux
informations de parité.

Les performances de lecture et d'écriture sont
généralement meilleures.

A. El Hadri Administration Linux I - 269


RAID 6

Est une extension de RAID-5 pour fournir plus de
résilience.

RAID-6 nécessite quatre disques ou plus, avec zéro
ou plusieurs disques de rechange. La taille du
périphérique RAID-6 qui en résulte est (N-2) * S.

La grande différence entre RAID-5 et 6 est qu'il
existe deux blocs de parité différents, et ceux-ci sont
répartis sur tous les disques.

Comme il y a deux blocs de parité; si un ou deux des
disques échouent, toutes les données peuvent être
récupérées.

Les performances de lecture sont presque similaires à
RAID-5, mais les performances d'écriture sont moins
bonnes.

A. El Hadri Administration Linux I - 270


RAID 10


Combine RAID-1 et RAID-0.

Ce qui signifie avoir les avantages des deux -
de bonnes performances et une bonne gestion
du basculement.

Est le niveau le plus couteux

Aussi appelé «RAID imbriqué».

A. El Hadri Administration Linux I - 271


RAID: Étapes de mise en place

Installation de l’outil mdadm

Préparation des disques physiques

Création des périphériques RAID

Utilisation : création des systèmes de
fichiers et montage

Gestion et administration

A. El Hadri Administration Linux I - 272


RAID: commande mdadm

mdadm (multiple devices admin) est un outil extrêmement utile pour créer,
gerer et surveiller des périphériques RAID. Ces derniers peuvent être
construits à partir des disques entiers ou des partitions.

Avant tout, il faut s'assurer d'avoir l’outil mdadm : # rpm -q mdadm

Le cas écheant : # dnf -y install mdadm

Synopsis : mdadm [mode] <raiddevice> [options] <component-devices>

Exemple :

mdadm --query /dev/sda permet de savoir si le périphérique donné est
une matrice RAID ou en fait partie et fournit de brèves infos sur le
périphérique.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ac]1
Crée le périphérique RAID1 /dev/md0 composée de /dev/sda1 et /dev/sdc1.

A. El Hadri Administration Linux I - 273


Préparation des disques

La commande fdisk permet de vérifier la la présence des disques avec
lesquels nous souhaitons créer un système RAID :
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc: 2 GiB, 2147483648 bytes, 4194304 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
● La commande fdisk montre 2 disques identiques /dev/sdb et /dev/sdc
de 2 Go chacun

A. El Hadri Administration Linux I - 274


Préparation des disques

Il est préférable de créer dans chacun de ces deux disques une partition couvrant la totalité de
l’espace

Pour cela, on peut utilier : gparted, parted ou fdisk.

Dans le premier disque /dev/sdc, on commence par créer une table de partition puis ensuite
une seule partition de type_id = fd. Le type fd correspond à « Linux RAID autodetect »

Dans le deuxième disque /dev/sdd on peut rapidement reproduire le travail effectué au niveau
de /dev/sdc on utilisant la commande :
sfdisk -d /dev/sdb | sfdisk /dev/sdc

La commande : fdisk -l /dev/sdc doit afficher maintenant :
Disk /dev/sdc: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos Disk identifier: 0xae6bab13
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 4194303 4192256 2G fd Linux raid autodetect

A. El Hadri Administration Linux I - 275


Création des périphériques RAID

La commande suivante crée la grappe Raid de niveau 1 /dev/md0 regroupant les
deux partitions /dev/sdb1 et /dev/sdc1 :
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1

Pour créer un Raid 1 avec disque de rechange ; il faut commencer par préparer ce
disque en lui appliquant la même procédure effectuée pour les deux autres. Puis :
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1
--spare-devices=/dev/sdd1

Les trois commandes suivantes permettent d’afficher l’état d’activation du service
RAID ainsi que toutes les informations concernant la grappe et les disques qui la
constituent.
# cat /proc/mdstat
# mdadm -E /dev/sd[b-d]1
# mdadm --detail /dev/md0

A. El Hadri Administration Linux I - 276


Création du système de fichiers

L’étape suivante consiste à créer dans le périphérique Raid construit un système de
fichier (ext4, xfs, jfs, ...) :
# mkfs -t ext4 /dev/md0

Le périphérique RAID /dev/md0 peut éventuellement être partitionné en plusieurs
partitions avant de créer un système de fichiers dans chacune d’elles

Le système de fichiers ainsi créé peut être monté et utilisé
# mkdir /mnt/RAID1
# mount /dev/md0 /mnt/RAID1

Pour le montage automatique à chaque démarrage du système, il faut rajouter la ligne
suivante dans le fichier /etc/fstab :
/dev/md0 /mnt/RAID1 ext4 defaults 0 0

A. El Hadri Administration Linux I - 277


Sauvegarde de la configuration

Sauvegarder en suite la configuration dans le fichier /etc/mdadm.conf
# cat << END > /etc/mdadm.conf
MAILADDR root
AUTO +all
DEVICE partitions
END
# mdadm --detail --scan >> /etc/mdadm.conf


Puis relancer le service mdmonitor
# systemctl restart mdmonitor.service
# systemctl status mdmonitor.service

A. El Hadri Administration Linux I - 278


Surveillance


Informations sur le statut du RAID :
# cat /proc/mdstat

Pour surveiller en temps réel un agrégat
# watch -n 1 cat /proc/mdstat

Lister les grappes RAID présents sur le système :
# mdadm --detail --verbose --scan

Lister les informations détaillées d'une grappe :
# mdadm --detail /dev/md0

A. El Hadri Administration Linux I - 279


Administration et test
# mdadm --detail /dev/md0
Creation Time : Sat …………
Raid Level : raid1
Array Size : 2094080 (2045.00 MiB 2144.34 MB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent Les deux disques sont actifs
Update Time : Sat ………… (en mirroring)
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync

Number Major Minor RaidDevice State


0 253 17 0 active sync /dev/sdb1
2 253 33 1 active sync /dev/sdc1

A. El Hadri Administration Linux I - 280


Administration et test

Le périphérique Raid /dev/md0 est maintenant monté sous /mnt/RAID1 :
# lsblk --list /dev/md0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
md0 9:0 0 2G 0 raid1 /mnt/RAID1

On commence par créer un fichier sous /mnt/RAID1
# echo 'test' > /mnt/RAID1/test

Puis on marque l’un des deux disques (partition) comme défectueux
# mdadm /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0

La commande mdadm --detail /dev/md0 doit montrer maintenant que seul
/dev/sdc1 est actif dans la grappe

A. El Hadri Administration Linux I - 281


Administration et test
# mdadm --detail /dev/md0

State : clean, degraded
Active Devices : 1
L’état de la grappe est marqué
Working Devices : 1 ‘degrated’ vu qu’elle ne compte
Failed Devices : 1 maintenant qu’un seul disque actif
Spare Devices : 0
Consistency Policy : resync

Number Major Minor RaidDevice State


- 0 0 0 removed
2 253 33 1 active sync /dev/sdc1
0 253 17 - faulty /dev/sdb1

A. El Hadri Administration Linux I - 282


Administration et test

Même avec un seul disque le montage est toujours actif :
# lsblk --list /dev/md0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
md0 9:0 0 2G 0 raid1 /mnt/RAID1
# echo /mnt/RAID1/test
test

On ajoute un deuxième fichier :
# cal 1 > /mnt/RAID1/test2

Puis on réactive le disque défectueux :
# mdadm /dev/md0 –re-add /dev/sdb1
mdadm: re-add /dev/sdb1 to md0 succeed

La commande mdadm --detail /dev/md0 doit montrer que les deux disques
sont maintenant actifs et synchronisés

A. El Hadri Administration Linux I - 283


Administration et test

Maintenant on prépare un troisième disque pour le rajouter entant que disque de rechange (spare disk)  :
# sfdisk -d /dev/sdb | sfdisk /dev/sdd
# fdisk -l /dev/sdd
Disk /dev/sdd: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xae6bab13

Device Boot Start End Sectors Size Id Type


/dev/sdd1 2048 4194303 4192256 2G fd Linux raid autodetect


Puis on le rajoute à la grappe Raid  entant que disque de rechange :
# mdadm /dev/md0 --add-spare /dev/sdd1
mdadm: added /dev/sdd1
● La commande mdadm --detail /dev/md0 doit montrer que la nouvelle état

A. El Hadri Administration Linux I - 284


Administration et test
# mdadm --detail /dev/md0
Creation Time : Sat …………
Raid Level : raid1
Array Size : 2094080 (2045.00 MiB 2144.34 MB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat …………
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync

3 253 17 0 active sync /dev/sdb1


2 253 33 1 active sync /dev/sdc1
4 259 1 - spare /dev/sdd1

A. El Hadri Administration Linux I - 285


Administration et test

Le disque de remplacement sera synchronisé et activé automatiquement si l’un des disques principaux tombe en pane  :
# sfdisk -d /dev/sdb | sfdisk /dev/sdd
# mdadm /dev/md0 --fail /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0
# mdadm --detail /dev/md0

State : clean, degraded, recovering


Active Devices : 1
Working Devices : 2
Failed Devices : 1
Spare Devices : 1
Consistency Policy : resync
Rebuild Status : 50% complete
Number Major Minor RaidDevice State
3 253 17 0 active sync /dev/sdb1
4 259 1 1 spare rebuilding /dev/sdd1
2 253 33 - faulty /dev/sdc1

A. El Hadri Administration Linux I - 286


Administration et test

Après sa synchronisation le disque de remplacement redevient actif et prend la place du disque
défectueux :
# mdadm --detail /dev/md0

State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Consistency Policy : resyn
Number Major Minor RaidDevice State
3 253 17 0 active sync /dev/sdb1
4 259 1 1 active sync /dev/sdd1
2 253 33 - faulty /dev/sdc1

/dev/sdc1 doit maintenant être retiré et remplacé
# mdadm /dev/md0 --remove /dev/sdc1 /dev/sdc1 est ajouté entant que
spare disk
# mdadm /dev/md0 --add /dev/sdc1

A. El Hadri Administration Linux I - 287


Supprimer la grappe RAID

On commence par démonter le périphérique :
# umount -l /dev/md0


Maintenant on arrête la grappe
# mdadm –stop /dev/md0


Puis on supprime le périphérique
# mdadm –remove /dev/md0


Et pour finir, on met à zéro les superblocs de tous les périphériques constituant la
grappe RAID
# mdadm –zero-superblock /dev/sd[b-d]1


Maintenant les disques sont prêts à être utilisés pour autres choses

A. El Hadri Administration Linux I - 288


Logical Volume Manager

LVM est une couche logicielle permettant de définir et de gérer des unités (volumes)
logiques de stockage plus souples que les partitions classiques

A. El Hadri Administration Linux I - 289

Vous aimerez peut-être aussi