Chapitre 1 : Présentation
1. Notion de système d’exploitation
Unix est un système d’exploitation, constitué du noyau Unix, d’un interpréteur de
commandes et d’un grand nombre d’utilitaires.
Le noyau assure la gestion des ressources physiques (processeur, mémoires,
périphériques) et logicielles (processus, fichiers…). L’interface entre les programmes des
utilisateurs et le noyau est définie par un ensemble de procédures et de fonctions, soit
directement au niveau du noyau, soit par l’intermédiaire de bibliothèques.
Comme c’est le cas avec tout système d’exploitation, l’utilisateur d’Unix n’accède pas
directement au noyau mais à un interpréteur de commandes : le shell (le choix de ce terme
indique qu’Unix est caché à l’intérieur de cette coquille qui en est la seule partie visible par
l’utilisateur).
Une différence importante entre Unix et les autres systèmes d’exploitation est qu’il
existe plusieurs shells. L’interface utilisateur d’Unix est donc constituée :
• Un ensemble de programmes exécutables : les commandes.
• Shell, interpréteur de commandes mais aussi langage de commandes permettant d’écrire
des programmes d’une grande complexité.
2. Linux
Linux, système Unix libre sur plate–forme PC, était au départ un projet de loisirs de
Linus Torvalds, étudiant finlandais. Le 5 octobre 1991, Linus Torvalds annonça la première
version officiellede Linux, la version 0.02.
Linux a continué à évoluer grâce à Linus Torvalds et aussi aux efforts de nombreux
volontaires répartis aux 4 coins du monde, reliés entre eux par le réseau Internet. Sous la
pression de ces co-développeurs, Linus Torvalds a accepté que tout le code soit sous licence
GPL (General Public Licence), créant ainsi un noyau Unix totalement libre. Grâce à ce réseau,
toute personne intéressée par le développement de ce système peut aider (porter des
programmes, écrire de la documentation, corriger des bogues).
À ce jour, Linux est un vrai système 32-64 bits, multitâches, multi-utilisateurs, réseau et
complet. Il s’installe sur la plupart des PC (avec ou sans autre système d’exploitation). Il
supporte une large gamme de programmes tels que X Window, TCP/IP, C/C ++GNU et
d’autres outils GNU, le courrier électronique, les news, ou des outils de bureautique. Une
machine sous Linux est modulaire et paramétrable à souhait. Elle peut donc servir de station
personnelle ou de serveur (Web, ftp…).
Linux est le plus souvent diffusé sous forme d’une distribution (noyau, sources des
utilitaires, commandes, applications) formant après installation un système complet. Par
conséquent, il est de plus en plus utilisé dans les sociétés commerciales comme station de
travail et serveur. Le succès de Linux tient à plusieurs facteurs :
- Le code source du système, ainsi que le noyau, les programmes utilisateurs, les outils
de développement sont librement distribuables (licence GPL, ou GNU), compatible
avec un certain nombre de standards Unix
- Un très grand nombre d’applications Unix gratuites disponibles sur Internet se
compilent sous Linux sans aucune modification,
- Le système Linux a été développé pour les processeurs Intel et utilise toutes les
fonctionnalités de ce processeur.
Chapitre 2 : Installation de Linux et Logiciels
Linux et Windows ne fonctionnent pas de la même manière. Sous Windows, les
librairies sont propriétaires, et donc personne ne sait ce qu'il y a dedans. Pour cette raison, les
développeurs de logiciels doivent écrire des programmes totalement complets,
Sous Linux, toutes (ou presque) les librairies sont libres et ouvertes. Ainsi, les programmes
fonctionnent avec le principe des dépendances : pour qu'un programme fonctionne bien, il faut
que d'autres paquetages dont dépend le programme soient installés. Ce système apporte une
plus grande vitesse de développement, mais aussi une plus grande rapidité du système. Par
contre, il n'est généralement pas possible, sous Linux, de “télécharger un programme sur le
site du fabricant, cliquer sur le .exe et installer”. C'est le rôle des gestionnaires de paquetages.
1- Qu'est-ce qu'un Paquet ?
Un paquet est une archive comprenant les fichiers informatiques, les informations et
procédures nécessaires à l'installation d'un logiciel sur un système d'exploitation, en s'assurant
de la cohérence fonctionnelle du système ainsi modifié. Ces paquets peuvent être des logiciels
(des applications, ou des extensions d'applications ou du système), mais aussi de la
documentation, des sources de logiciels, du contenu multimédia, des typographies, etc.
2- Qu'est-ce qu'un gestionnaire de paquetages ?
Un gestionnaire de paquetage est un système qui permet d'installer des paquets de contenu
informatique, de les maintenir à jour et de les désinstaller est un programme permettant de
déterminer pour chaque programme quelles sont les dépendances nécessaires, de les
télécharger et les installer automatiquement.
Le gestionnaire de paquets permet d'effectuer différentes opérations sur les paquets
disponibles :
• Installation, mise à jour, et désinstallation ;
• Utilisation des paquets provenant de supports variés (CD d'installation, dépôts sur
internet, partage réseau…) ;
• Vérification des sommes de contrôle de chaque paquet récupéré pour en vérifier
l'intégrité ;
• Vérification des dépendances logicielles afin d'obtenir une version fonctionnelle
d'un paquetage ;
3- Les différents types de paquetages
Il existe plusieurs types de paquetages sous Linux. De manière générale, on peut classer les
distributions Linux selon 3 grandes familles :
• Les distributions DEB
• Les distributions RPM (RedHat Package Manager),
• Les distributions basées sur les sources (Slackware, Gentoo , Arch…).
Ces gestionnaires de paquetages fonctionnent tous selon le principe des dépôts : pour pouvoir
fonctionner correctement, le gestionnaire a besoin d'une liste de dépôts (internet, CD-ROM ou
sur le disque dur) où se trouvent un grand nombre de paquetages, permettant d'installer un
maximum de programmes par cette méthode de gestion des dépendances.
Sous Linux ces paquets proviennent la plupart du temps de dépôts centralisés. Les
dépôts officiels sont des services fournis par les mainteneurs de la distribution utilisée
L'utilisation de dépôts centralisés assure que les éléments soient compatibles entre eux et avec
le système, les installations de paquets hors dépôt sont donc plutôt déconseillées.
Il est cependant parfois aussi possible de gérer des paquets indépendants, qu'on peut par
exemple trouver sur les sites d'éditeurs de logiciels, ou encore compiler les paquetages depuis
leurs sources sur la machine sur laquelle ils vont être utilisés, afin d'optimiser le système. Ces
distributions sont généralement plus difficiles à installer et configurer. (Il est préférable dans
ce cas d'utiliser d'autres systèmes qui, par isolation, permettent d'installer d'autres logiciels
sans interférer avec son système. On trouve entre autre les
systèmes snap, flatpak, appimage, distrobox ou docker.)
Sur les systèmes d'exploitation GNU/Linux, BSD, il existe de nombreux logiciels
gestionnaires de paquets. On peut citer notamment :
• dpkg (Debian, Ubuntu et autres dérivées).
• RPM (Red Hat, Fedora, openSUSE, etc.).
4- Le gestionnaire de paquetage Debian
a) dpkg
dpkg est l’outil de gestion de paquetage pour la distribution Debian. Il permet d’installer,
de désinstaller, de visualiser, de configurer et de construire des paquetages Debian. Les
options courantes de la commande dpkg sont :
• -i [Link] : installe l’application [Link].
• -r [Link] : désinstalle l'application [Link].
• -l | grep appli : cherche si le paquetage appli est installé. Sans le grep, liste tous les
paquetages.
• -L nom-application : liste les fichiers du paquetage nom-application (s’il est installé) et
leur emplacement.
• --unpack : permet de désarchiver mais de ne pas effectuer l’opération de configuration
du paquetage.
• dpkg-reconfigure permet de reconfigurer un paquetage déjà installé.
Les options contrôlant le comportement de la commande dpkg sont décrites dans le fichier
/etc/dpkg/[Link].
La base de données des paquetages Debian se trouve dans l’arborescence /var/lib/dpkg.
b) apt-get
Le système de gestion de paquetages Debian est doté d'un autre outil de gestion avancé
appelé apt (Advanced Package Tool). APT utilise toujours la commande dpkg mais
ajoute des fonctionnalités supplémentaires : la définition de la source des applications à
installer (disques locaux, cédérom ou sur Internet par le protocole HTTP ou FTP) et la
gestion des dépendances.
La définition des sources des applications à installer s’effectue dans le fichier
/etc/apt/[Link].
Les options de fonctionnement générales de la commande apt sont décrites dans le fichier
[Link]. Le fichier de configuration principal se trouve dans /etc/apt/[Link] (ou parfois
/etc/[Link]), les options personnelles peuvent être modifiées dans un fichier [Link] se
trouvant dans le répertoire home de l’utilisateur.
apt-get se connecte à tous les sites indiqués dans /etc/apt/[Link], et recherche la liste
des programmes disponibles.
Les options de base de la commande apt sont :
• apt-get install nom-paquetage : installe le paquetage nom-paquetage ;
• apt-get remove nom-paquetage : désinstalle le paquetage nom-paquetage ;
• apt-get --purge remove nom-paquetage : désinstalle nom-paquetage et ses fichiers de
configuration ;
• apt-get --reinstall nom-paquetage1 : réinstalle le paquetage nom-paquetage1 ;
• apt-get update : met à jour la liste des paquetages disponibles ;
• apt-get upgrade : met à jour tous les paquetages pouvant être mis à jour ;
• apt-get dist-upgrade : met à jour le système tout entier (nouvelle version de la Debian) ;
• apt-get source paquetage : télécharge le paquetage source paquetage (-b pour compiler)
• apt-get build-dep nom-paquetage : télécharge les dépendances du paquetage source
nom-paquetage qui va être compilé.
D'autres commandes de la famille apt existent. Elles permettent d'avoir des informations
sur les paquetages :
• apt-show-versions -u : affiche une liste des paquetages pouvant être mis à jour ;
• apt-cache depends package : montre les dépendances de package ;
• apt-file search nom-fichier : affiche le nom du paquetage qui fournit nom-fichier ;
• apt-file list package : affiche le contenu de package.
c) aptitude
Le programme aptitude est une interface en mode texte pour la gestion des paquetages
Debian. Il permet à l’utilisateur de connaître la liste des paquetages et de réaliser des
tâches d’administration comme l’installation, la mise à jour et la suppression des
paquetages.
Le programme aptitude fonctionne en mode interactif ou à partir de la ligne de commande.
5- Le gestionnaire de paquetage RPM et YUM
a) RPM (Red Hat Package Manager)
RPM est utilisé originellement par la distribution Red Hat mais actuellement employé par bon
nombre de distributions. La gestion des paquetages est principalement réalisée par la
commande rpm. RPM stocke sa base de données dans le répertoire /var/lib/rpm. Les noms des
paquetages au format RPM respectent souvent la syntaxe [Link]
Exemple : [Link]
Les options courantes de la commande rpm :
• -i (ou --install) : installe un paquetage ;
• -U (ou --update) : met à jour un paquetage déjà installé ou l’installe s’il n’est pas encore
présent dans le système ;
• -e (ou --erase) : désinstalle un paquetage ;
• -q (ou --query) : envoie une requête sur un paquetage afin d'afficher des informations ;
• -V (ou --verify) : vérifie l’intégrité d’un paquetage ;
• -F (ou --freshen) : met à jour un paquetage déjà installé ;
• --version : affiche la version de la commande rpm;
• --help : affiche les options de la commande rpm.
Options à utiliser avec l'option -q (ou --query) :
• c : affiche la liste des fichiers de configuration d'un paquetage donné ;
• f : affiche le nom du paquetage auquel appartient un fichier donné ;
• i : affiche les informations relatives à un paquetage ;
• l : affiche tous les fichiers et répertoires relatifs à un paquetage ;
• p : spécifie que la requête est spécifique au fichier du paquetage ;
• b : crée un paquetage rpm à partir d'un répertoire contenant les fichiers sources ;
• --rebuild : crée un paquetage à partir d'un fichier de source rpm ;
• --requires PACKAGE : pour connaître la liste des paquetages dépendants d’un
paquetage.
Les options spéciales :
• --nodeps : installe un paquetage sans se soucier des dépendances ;
• --force : force la mise à jour ;
• --import : importe le fichier de signature d'un paquetage ;
• --checksig : vérifie l'authenticité du paquet par sa signature ;
• h : ajoute l'état d'avancement d'un processus en cours ;
• v : mode bavard ;
• a : applique l'option à tous les paquetages installés.
Le fichier rpmrc contrôle les actions de la commande rpm. Il permet de définir l’architecture
machine et le système sur lequel la commande rpm s’exécute. Il contient également des
informations allant du chemin des bases de données rpm jusqu’aux noms des personnes ayant
développé les paquetages.
Plusieurs fichiers rpmrc sont présents sur le système, /usr/lib/rpm/rpmrc, /etc/rpmrc ainsi que
des fichiers rpmrc personnalisés dans le répertoire home de l’utilisateur. Ils sont traités dans
l’ordre énoncé précédemment, les différentes options étant modifiées par les derniers fichiers
considérés. Le contenu final est affiché par l’option –showrc de la commande rpm.
La base de données des paquetages RPM se trouve dans l’arborescence /usr/lib/rpm.
b) YUM (Yellow dog Updater Modified)
YUM est un outil permettant l’installation, la mise à jour et la suppression des paquetages rpm.
YUM gère les dépendances entre les paquetages. Il trouve ces paquetages sur différentes
sources appelées dépôts : des fichiers images ISO Red Hat, le réseau Red Hat, etc.
La configuration de YUM se fait à travers le fichier /etc/[Link] qui contient deux types de
sections :
• [main] : définit les options globales de configuration ;
• [repository] : définit la configuration pour chaque dépôt.
Des fichiers de configuration supplémentaires sont également lus à partir des répertoires
configurés par l’option reposdir, du fichier [Link], dont la valeur par défaut est le répertoire
/etc/yum/repos.d. Les options de base de la commande yum sont :
• yum install paquetage(s) : installe la dernière version d'un paquetage ou d’un groupe de
paquetages en s'assurant que toutes les dépendances sont satisfaites ;
• yum update paquetage(s) : met à jour les paquetages indiqués. Si aucun nom de
paquetage n'est fourni avec la commande, update met à jour tous les paquetages
installés. Lors de la mise à jour des paquetages, yum s'assure que toutes les dépendances
sont satisfaites ;
• yum remove paquetage(s) ou yum erase paquetage(s) : supprime du système le(s)
paquetage(s) indiqué(s), ainsi que tous les paquetages qui en dépendent ;
• yum search chaine : cherche des paquetages dont la description, le résumé, le nom, ou
le nom de l'empaqueteur, contiennent la chaîne indiquée. Très pratique pour chercher
un paquetage quand on ne connait pas le nom mais que l’on connaît quelques mots clés
s'y rapportant ;
• yum list : affiche diverses informations sur les paquetages.
La commande list peut prendre plusieurs arguments :
• yum list [all | glob_exp1] [glob_exp2] [...] : affiche tous les paquetages disponibles et
installés ;
• yum list available [glob_exp1] [...] : affiche tous les paquetages disponibles dans le(s)
dépôt(s) pouvant être installés ;
• yum list updates [glob_exp1] [...] : affiche tous les paquetages dont des mises à jour
sont disponibles dans le(s) dépôt(s) ;
• yum list installed [glob_exp1] [...] : affiche les paquetages mis à jour ;
• yum list extras [glob_exp1] [...] : affiche les paquetages installés sur le système qui ne
sont disponibles dans aucun dépôt du fichier de configuration ;
• yum list obsoletes [glob_exp1] [...] : affiche les paquetages installés sur le système qui
sont rendus obsolètes par des paquetages des dépôts du fichier de configuration ;
• yum list recent : affiche les paquetages récemment ajoutés aux dépôts.
Toutes les options décrites précédemment prennent en argument des noms de paquetages ou
des expressions génériques du shell .
Exemple : yum list available 'foo*' affichera tous les paquets disponibles dont le nom
commence par « foo ». L'utilisation des apostrophes permet de s'affranchir du développement
de l'expression par le shell.
On peut utiliser la commande yum downloader suivie du nom de paquetage, et la dernière
version de ce paquetage sera téléchargée dans le répertoire courant. Cela peut être pratique si
on a besoin de mettre à jour un système qui n’est pas connecté à Internet.
6- Gestion des bibliothèques
Les bibliothèques (libraries) sont des fonctions généralement partagées utilisées par un
programme binaire sous sa forme exécutable. Il existe deux sortes de bibliothèques :
• Les bibliothèques statiques, qui sont incluses dans le fichier image de l'exécutable.
• Les bibliothèques dynamiques ou partagées, quand les codes du programme ne sont pas
inclus dans le fichier image de l'exécutable.
Les bibliothèques statiques se présentent sous forme de fichier avec l'extension .a tandis que
les bibliothèques partagées sont identifiées par l'extension .so (shared object). Les
bibliothèques dynamiques peuvent être appelées par plusieurs programmes simultanément, et
elles sont associées au processus seulement durant l'exécution.
Les bibliothèques dynamiques sont chargées par l'utilitaire [Link] en utilisant l'ordre de
recherche suivant :
• Les répertoires mentionnés dans la variable d'environnement LD_LIBRARY_PATH ;
• Le fichier cache /etc/[Link] qui contient la liste des bibliothèques des répertoires
de recherche. Il est mis à jour par la commande ldconfig qui scrute les différents
répertoires mentionnés dans le fichier /etc/[Link] ;
• Les répertoires /lib et /usr/lib, usr/local/lib, etc.
La commande ldd permet d'avoir la liste des bibliothèques partagées nécessaires à un
exécutable.
Chapitre 3 : Disques durs et partitionnement
Un disque dur est composé de plateaux reliés à un moteur central, avec des têtes de
lecture de part et d’autre de chacun des plateaux. Sur chaque plateau se trouvent des pistes
cylindriques découpées en secteurs. L’adressage d’un secteur est une référence au cylindre, à
la tête de lecture utilisée, à la piste, et enfin au secteur.
À l’installation, un disque dur n’est ni partitionné, ni formaté. Partitionner signifie définir sur
le disque un ou plusieurs espaces, ou partitions, et formater signifie préparer une partition à
recevoir des informations en utilisant un système de fichiers défini.
Les partitions : Une partition de disque est une division logique d’un disque physique ou
d’un dispositif de stockage. Elle vous permet de diviser le disque en plusieurs sections
indépendantes, chacune avec son propre système de fichiers et son propre point de montage.
Ces partitions peuvent être utilisées pour stocker différents types de données, comme les
fichiers du système d’exploitation, les données utilisateur ou l’espace swap.
Une partition est définie par son type, son emplacement de début de partition et enfin soit
sa taille, soit son emplacement de fin de partition. Un partitionnement est réversible (non
physique).
Un disque est composé d’une ou plusieurs partitions dont la table est contenue dans le
MBR (Master Boot Record) ou dans le GUID Partition Table (GPT) :
• Le MBR (Master Boot Record) définit des tables primaires, étendue, logiques.
• On utilse fdisk pour configurer le MBR et gdisk pour configurer le GPT.
Une partition peut être utilisée pour héberger :
• un système de fichiers
• un espace Swap
• une application
Une seule partition est activée à la fois au niveau du BIOS : cette activation indique où le
BIOS doit aller chercher le noyau du système d’exploitation pour le démarrage. Il existe trois
sortes de partitions :
• Les partitions principales : leur nombre est limité à quatre et elles supportent tous
types de systèmes de fichiers ;
• La partition étendue : elle ne peut contenir que des partitions logiques et ne peut pas
recevoir de systèmes de fichiers. Elle ne peut exister que s’il existe une partition
principale ;
• Les partitions logiques : elles sont contenues dans une partition étendue. Elles ne
sont pas limitées en nombre et acceptent tous types de systèmes de fichiers.
1. Organisation des partitions sous Linux : Les descripteurs de disques durs dans le
répertoire /dev commencent par hd pour les périphériques de type IDE ou par sd pour
les périphériques de type SCSI. Une lettre additionnelle est ajoutée au descripteur pour
désigner le périphérique.
Il y a généralement deux contrôleurs IDE en standard sur un PC, chaque
contrôleur supportant deux périphériques (disques, lecteur de cédérom/DVD, lecteur
ZIP...).
Primaire Secondaire
Maitre A c
Esclave B d
Pour le périphérique maître sur le contrôleur primaire : hda
Pour le périphérique esclave sur le contrôleur secondaire : hdd.
Les périphériques SCSI sont désignés en fonction de leur position dans la chaîne SCSI (sda,
sdb, sdc, etc.).
On utilise la commande fdisk pour configurer une nouvelle partition. Par exemple, pour le
premier disque IDE : fdisk /dev/hda
Voici une liste des différentes commandes internes de fdisk :
- a : (dés)active un indicateur ‶ bootable ″ ;
- b : édite le libellé de disque bsd ;
- c : (dés)active l'indicateur de compatibilité DOS ;
- d : supprime une partition ;
- l : répertorie les types de partition connus ;
- m : affiche la liste des commandes ;
- n : ajoute une nouvelle partition ;
- o : crée une nouvelle table de partition DOS vide ;
- p : affiche la table de partition ;
- q : quitte le programme sans enregistrer les modifications ;
- s : crée un nouveau libellé de disque Sun vide ;
- t : change l'ID système d'une partition ;
- u : change l'unité d'affichage/saisie ;
- v : vérifie la table de partition ;
- w : écrit la table sur le disque et quitte le programme ;
- x : fonctions supplémentaires (experts seulement).
3. Formatage et types de systèmes de fichiers
Les principaux types de système de fichiers supportés par Linux sont
Système de fichiers Commande de création
ext2 mke2fs ou mkfs.ext2
ext3 mke2fs -j ou mkfs.ext3
ext4 mkfs.ext4
reiserfs Mkreiserfs
Xfs [Link]
vfat [Link]
Le système de fichiers ext4 est une extension évolutive du système de fichiers ext3, il
peut prendre en charge des fichiers et des systèmes de fichiers jusqu'à 16 téraoctets. et un
nombre illimité de sous-répertoires (le système de fichiers ext3 n'en prend en charge que
jusqu'à 32 000)
Le système de fichiers ext3 est une simple extension du format standard ext2 de Linux : il
intègre un journal qui enregistre toutes les opérations effectuées sur le disque. Ceci permet
une récupération plus rapide et sûre du système en cas d'arrêt brutal de la machine.
L'instruction générale de création d’un système de fichiers est :
mkfs -t type de fichier partition
Il existe des commandes équivalentes pour chaque type de systèmes de fichiers, par exemple
mkfs.ext3, [Link]
Exemples de formatage de la partition hda1 avec création d'un système de fichiers de type
ext3 (les trois commandes sont équivalentes) :
mkfs.ext3 /dev/hda1
mkfs -t ext3 /dev/hda1
mke2fs -j /dev/hda1 # création du journal spécifique
Il est aussi très facile de transformer une partition ext2 en ext3 avec l'instruction tune2fs pour
créer le journal :
tune2fs -j /dev/hda1
La structure d’un file system est globalement la même dans toutes les versions d’Unix/Linux :
chaque file system est composé d’un grand nombre de blocs contigus. La structure de base
d’un file system :
• Le bloc 0 contient le boot et l’identification du disque.
• Le bloc 1, appelé aussi superbloc, contient des informations sur le file system (date de
dernière mise à jour, le nombre de fichiers qu’il peut contenir, la taille du file system,
un pointeur sur la liste des blocs libres.)
• Les blocs 2 à k contiennent les inodes.
a. Les fichiers et Les inodes
Sous Unix/Linux, un fichier est une suite d’octets (8 bits) non structurée. Toutes les
informations concernant un fichier sont regroupées dans une structure de données, appelée
inode, décrivant la taille du fichier, son emplacement sur disque, son propriétaire, etc. Un
fichier n’est pas repéré par son nom mais par le numéro (index) de l’inode qui le
caractérise. Cet index permet de retrouver l’inode dans la table des inodes. C’est donc
l’inode qui caractérise le fichier.
Le nombre d’inodes, et donc le nombre de blocs qui est réservé à l’enregistrement
des inodes, est déterminé à la création du file system.
Chaque inode est repéré par un numéro (index) variant de 1 à n et permettant de
retrouver son emplacement dans la table des inodes. Aucun fichier n’utilise le numéro 1.
Le numéro 2 représente la racine du file system. Les informations contenues dans un
inode sont :
● Le type de fichier (répertoire, fichier ordinaire,…),
● Les 12 bits de permissions : suid, sgid, t, rwxrwxrwx
● Le nombre de liens,
● Le numéro de propriétaire (UID),
● Le numéro de groupe (GID),
● La taille du fichier en octets,
● Des pointeurs vers les blocs de données correspondants,
● Les date et heure du dernier accès,
● Les date et heure de la dernière modification,
● Les date et heure de la dernière modification de l’inode.
b. Mémoire SWAP (La zone swap)
Tout système Linux comporte au moins une partition spéciale appelée partition swap. Pour
des raisons de performances, cette partition n’a pas de structure de file system. Elle est utilisée
par Linux pour le gestion de la mémoire virtuelle : à un instant donné, la mémoire centrale
(RAM) ne contient pas la totalité de la mémoire nécessaire aux processus en cours. Le
mécanisme de mémoire virtuelle ne place en RAM que ce qui est indispensable à cet instant,
et effectue un va-et-vient entre la RAM et la partition swap.
La mémoire swap est un espace de stockage visant à pallier à un manque de mémoire vive du
système. La mémoire swap sert à étendre la mémoire utilisable par un système d’exploitation
par un fichier d’échange ou une partition dédiée.
• mkswap <dev> est la commande qui permet de créer un espace swap
• swapon <dev> permet d’activer une swap
• swapoff <dev> permet de désactiver une swap
Les arguments possibles pour désigner l’espace de stockage swap :
• un fichier
• un périphérique type bloc, un disque, une partition
• un LABEL avec l’option -L
• un UUID avec l’option -U
La commande swapon -s permet de voir la configuration des mémoire SWAP.
4- GESTION DE L’OCCUPATION DISQUE
Le répertoire dans lequel vous vous trouvez après connexion s’appelle le répertoire d’accueil
($HOME). Ce répertoire est dans un file system dont la capacité en octets est fixée. La
création de fichiers va au fur et à mesure remplir le file system jusqu’à ce que le message file
system full apparaisse. Un file system peut être plein pour deux raisons :
• soit il n’y a plus de place pour un nouvel inode (table des inodes)
• soit il n’y a plus de bloc de données disponible (blocs de données)
Dans le premier cas, le file system peut être rempli avec un petit nombre de grands fichiers.
Dans le deuxième cas, il peut être rempli avec un très grand nombre de fichiers de taille
réduite (ou même nulle). Dans un cas comme dans l’autre, il est impossible de continuer à
travailler, et il faudra faire de la place. Il est donc nécessaire de gérer l’espace disque, en
veillant à éliminer les fichiers devenus inutiles (core, fichiers temporaires,….) et en archivant
les fichiers qui ne sont plus utilisés afin de pouvoir les supprimer, ou tout au moins de les
conserver sous forme d’une archive compressée. En effet, une archive est un seul fichier
contenant toute une arborescence, ce qui économise de l’espace dans la table des inodes. Si de
plus elle est compressée, il y a aussi économie de blocs de données.
La commande df indique le nombre de blocs de 1 Ko disponibles par file system
La commande du noms affiche le nombre de blocs (1 Ko) occupés par les fichiers et
répertoires spécifiés par noms. Cette commande est récursive : un nom de répertoire désigne
toute l’arborescence sous ce répertoire. Si noms n’est pas indiqué, le répertoire de travail (.)
est pris par défaut.
L’option s n’indique que le nombre total de blocs pour chaque noms.
L’option a (all) liste l’occupation disque de chaque fichier ou sous-répertoire.
a. Contrôle de l'intégrité du système de fichiers et réparation
Si le système de fichiers est endommagé ou corrompu, l'utilitaire fsck est utilisé pour vérifier
et corriger le système.
L'instruction générale de vérification du système de fichiers est :
fsck -t type-de-fichier partition
De même que précédemment, il existe des commandes équivalentes pour chaque type de
systèmes de fichier, par exemple fsck.ext3.
L'option -i permet de laisser l'utilitaire fsck essayer de corriger lui-même les problèmes
rencontrés. Un expert pourrait mieux faire, mais en général l’opération se déroule bien.
L'exemple qui suit permet de vérifier l'intégrité d'un système de fichiers reiserfs :
[Link] /dev/hda1
Une vérification de toutes les partitions est faite au démarrage du système par la commande
fsck.
La commande e2fsck est équivalente à fsck –t ext2.
En cas de problèmes plus important, il est possible d’utiliser l’utilitaire debugfs. Il est utilisé
pour examiner et modifier l’état d’un système de fichiers formaté en ext2. Il permet par
exemple de retrouver des inodes de fichiers supprimés (récemment) et de les restaurer.
L’utilitaire dumpe2fs permet d’afficher les informations d’un système de fichiers formaté en
ext2. Il est par exemple ainsi possible de connaître la date du dernier montage d’un système de
fichiers.
b. Montage et démontage d'un système de fichiers
• Montage et démontage manuel
Pour pouvoir utiliser un système de fichiers, celui-ci doit être monté sur un point de
montage de l'arborescence Linux : son contenu est alors accessible comme un simple
répertoire. Le système d'exploitation réalise alors diverses tâches de vérification afin
de s'assurer que tout fonctionne correctement.
La commande mount accepte deux arguments :
- le premier est le fichier spécial correspondant à la partition contenant le système
de fichiers ;
- le second est le répertoire sous lequel il sera monté (point de montage).
Il peut être nécessaire de spécifier le type de fichiers avec l'option -t au cas où Linux
ne parviendrait pas à le déterminer automatiquement.
La commande umount permet le démontage du système de fichiers.
Voici un exemple de montage et de démontage d'une clé USB de type « flashdisk »
décrite par le fichier device sda :
mount /dev/sda1 /mnt/flashdisk umount /mnt/flashdisk
• Montage et démontage automatique
Le fichier /etc/fstab est utilisé pour le montage automatique des systèmes de fichiers
au moment du démarrage du système.
Chaque ligne du fichier fstab décrit la manière de montage d’un système de fichiers,
et ceci à travers six champs séparés par des espaces.
#cat /etc/fstab
LABEL=/ / ext3 defaults 0 1
/dev/hda5 /home ext3 defaults 0 2
none /proc proc defaults 0 0
/dev/cdrom /media/cdrom iso9660 ro,noauto,owner 0 0
/dev/hda3 /usr ext3 defaults 0 2
/dev/hda6 /var ext3 defaults 0 2
/dev/hda2 swap swap defaults 0 0
• Le premier champ donne le nom de périphérique ou l’étiquette (LABEL) associé à ce
périphérique.
• Le second champ indique le point de montage, qui est le chemin d’accès dans
l’arborescence Linux ;
• Le troisième champ décrit le type de système de fichiers (ext2, ext3, iso9660, etc…)
• Le quatrième champ indique les options de montage. (liste des options de la
commande mount séparées par des virgules
• Le cinquième champ est destiné théoriquement à être utilisé par l’utilitaire dump pour
déterminer les systèmes de fichiers à sauvegarder (en pratique ce champ n’est pas
exploité et il est presque toujours à 0)
• Le sixième champ est utilisé par l’utilitaire fsck pour déterminer l’ordre de
vérification de l’intégrité des systèmes de fichiers lors du démarrage du système (La
racine doit avoir la valeur 1, les autres systèmes de fichiers ont la valeur 2 et seront
vérifiés à la suite. Si ce champ vaut 0, fsck ne vérifie pas le système de fichier).
Les commandes mount et umount utilisent le fichier fstab. Il est important que les données de
ce fichier soient complètes et exactes.
La commande mount –a monte tous les systèmes de fichiers répertoriés dans le fichier fstab.
Cette commande est généralement exécutée au moment de démarrage du système.
c. Les quotas
L’attribution de quotas dans un système de fichiers est un outil qui permet de maîtriser
l’utilisation de l’espace disque par les utilisateurs.
Les quotas consistent à fixer une limite d'espace pour un utilisateur ou un groupe
d'utilisateurs. Pour cela, voici les étapes à suivre :
• éditer le fichier /etc/fstab et rajouter usrquota dans les options de montage ;
• remonter la partition sur laquelle on veut définir des quotas pour que le montage
prenne en compte les nouvelles options :
mount -o remount device
• commencer la vérification des quotas avec la commande quotacheck :
quotacheck -ca
• éditer les quotas pour chaque utilisateur avec edquota :
edquota -u utilisateur
La commande ouvre un éditeur (vi ou emacs selon le contenu de la variable EDITOR), qui
permet de modifier directement les fichiers [Link] ou [Link] ;
• débuter la prise en compte des quotas par la commande quotaon ;
quotaon partition
• afficher un résumé des informations sur les quotas définis sur un système de fichiers
et sur leur utilisation de ces quotas par les différents utilisateurs avec la commande
repquota.
repquota partition
La commande quotaoff arrête la prise en compte des quotas
5- Concepts RAID
Le RAID (Redundant Arrays of Independent Disks : regroupement redondant de disques
indépendants) est un ensemble de techniques de virtualisation du stockage permettant de
répartir des données sur plusieurs disques durs afin d’améliorer soit les performances, soit la
sécurité ou la tolérance aux pannes de l’ensemble du ou des systèmes.
Le système RAID est :
• soit un système de redondance qui donne au stockage des données une certaine
tolérance aux pannes matérielles (ex : RAID1).
• soit un système de répartition qui améliore ses performances (ex : RAID0).
• soit les deux à la fois, mais avec une moins bonne efficacité (ex : RAID5).
Le système RAID est donc capable de gérer d’une manière ou d’une autre la répartition et la
cohérence de ces données. Ce système de contrôle peut être purement logiciel ou utiliser un
matériel dédié.
RAID 0 : volume agrégé par bandes
Le RAID 0, également connu sous le nom d’entrelacement de disques ou de volume agrégé
par bandes (striping en anglais), est une configuration RAID permettant d'augmenter
significativement les performances de la grappe
Capacité : La capacité totale est égale à celle du plus petit élément de la grappe multiplié par
le nombre d'éléments présents dans la grappe, car le système d'agrégation par bandes se
retrouvera bloqué une fois que le plus petit disque sera rempli. L'espace excédentaire des
autres éléments de la grappe restera inutilisé. Il est donc conseillé d'utiliser des disques de
même capacité.
Fiabilité : Le défaut de cette solution est que la perte d'une seule unité de stockage entraîne la
perte de toutes les données du volume RAID.
Coût : Dans un RAID 0, qui n'apporte aucune redondance, tout l'espace disque disponible est
utilisé (à condition que les supports soient de même capacité).
RAID 1 : Disques en miroir
Le RAID 1 consiste en l'utilisation des disques redondants, chaque disque de la grappe
contenant à tout moment exactement les mêmes données, d'où l'utilisation du mot « miroir »
(mirroring en anglais).
Capacité : La capacité totale est égale à celle du plus petit élément de la grappe, l'espace
excédentaire des autres éléments de la grappe restant inutilisé. Il est donc conseillé d'utiliser
des éléments de capacité identique.
Fiabilité : Cette solution offre un excellent niveau de protection des données. Elle fonctionne
tant qu'il reste au moins un disque fonctionnel.
Coût : Les coûts de stockage sont élevés et directement proportionnels au nombre de miroirs
utilisés, alors que la capacité utile reste inchangée. Plus le nombre de miroirs est élevé, et plus
la sécurité augmente, mais plus son coût devient rédhibitoire.
RAID 5 : volume agrégé par bandes à parité répartie
Le RAID 5 combine la méthode du volume agrégé par bandes (striping) à une parité répartie(
ensemble à redondance). La parité, qui est incluse avec chaque écriture, se retrouve répartie
circulairement sur les différents disques. si on veut écrire dans un bloc, il faut :
- lire le bloc à modifier ;
- lire le bloc de parité de la bande ;
- écrire le bloc de données et le bloc de parité.
Avantages :
- Performances en lecture aussi élevées qu'en RAID 0,
- Tolère la perte d'un disque.
Inconvénients :
- Ralentissement en écriture du fait du calcul de la parité,
- Capacité utile de n-1 disques sur un total de n disques.
- Temps de reconstruction long pour les disques durs de grande capacité.
2. Logical Volume Manager LVM
LVM (Logical Volume Manager) est un ensemble d’outils de l’espace utilisateur Linux pour
fournir des commodités de gestion du stockage (volumes).Il répond principalement aux
besoins:
• d’évolutivité des capacités de stockage
• tout en assurant la disponibilité du service.
Plus simplement il s’agit de redimensionner un système de fichiers (FS) dynamiquement (en
augmentant ou en réduisant le nombre de disques physiques disponibles) avec un minimum
d’interruption.
Exemple de Configuration : Création de 4 espaces de stockage de 1 Go à des fins de partage
dans un volume de 8 Go (2 disques)
• Physical Volumes PV : 2 X 4 Go
• Volume Group VG: 8 Go
• Logical Volumes LV : 50 %
o /opt/share1 : 1 Go en EXT4
o /opt/share2 : 1 Go en XFS
o /opt/share3 : 1 Go en BTRFS
o /opt/share4 : 1 Go