Gérer les partitions et les systèmes de fichiers Linux

CompTIABeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez acquérir les compétences fondamentales nécessaires pour gérer les partitions de disque et les systèmes de fichiers dans un environnement Linux. Vous travaillerez avec des utilitaires en ligne de commande tels que fdisk pour inspecter les disques disponibles, créer de nouvelles partitions et les formater avec un système de fichiers standard. Afin de garantir une expérience d'apprentissage sécurisée, toutes les opérations seront effectuées sur un disque virtuel secondaire dédié, /dev/sdb, laissant le disque principal du système d'exploitation intact.

Remarque : Dans cet environnement de laboratoire, /dev/sdb est implémenté comme un périphérique de boucle (un fichier qui agit comme un disque). Lorsque vous créerez des partitions, elles apparaîtront sous des noms tels que loop13p1, mais vous créerez des liens symboliques pour y accéder en tant que /dev/sdb1, /dev/sdb2, etc., comme vous le feriez avec du matériel réel.

Tout au long des exercices, vous créerez une partition Linux standard, la formaterez avec le système de fichiers ext4 et apprendrez à la monter pour une utilisation immédiate. Vous configurerez ensuite le système pour monter ce système de fichiers automatiquement au démarrage en modifiant le fichier /etc/fstab. Enfin, vous approfondirez vos compétences en créant et en gérant une partition d'échange (swap) Linux dédiée, un composant essentiel pour les performances du système.

Inspecter les disques et créer une nouvelle partition Linux avec fdisk

Dans cette étape, vous apprendrez à inspecter les disques disponibles et leurs tables de partitions. Vous utiliserez ensuite l'utilitaire fdisk, un puissant outil en ligne de commande, pour créer une nouvelle partition sur un disque secondaire. Dans un scénario réel, vous devez être extrêmement prudent lors de la modification des partitions, car les erreurs peuvent entraîner une perte de données. Pour cet atelier, nous travaillerons sur un disque virtuel dédié, /dev/sdb, afin de garantir que le disque principal du système d'exploitation (/dev/sda) reste intact.

Tout d'abord, obtenons une vue d'ensemble de tous les périphériques blocs (disques et partitions) connectés à votre système. La commande lsblk fournit une vue arborescente claire.

lsblk

La sortie affichera les disques disponibles, y compris votre disque système principal (vda) et un périphérique de boucle (loop13) qui représente notre disque virtuel pour cet atelier.

NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
...
loop13       7:13   0     2G  0 loop
vda        252:0    0    40G  0 disk
├─vda1     252:1    0     1M  0 part
├─vda2     252:2    0   200M  0 part /boot/efi
└─vda3     252:3    0  39.8G  0 part /

Notez que le périphérique de boucle (accessible via /dev/sdb par un lien symbolique) est un disque virtuel de 2 Go ne possédant pas encore de partitions. Utilisons maintenant fdisk pour obtenir un aperçu plus détaillé de la table de partitions de /dev/sdb. L'option -l liste les tables de partitions pour les périphériques spécifiés puis quitte le programme. Comme fdisk nécessite des privilèges root pour inspecter les informations au niveau du disque, vous devez utiliser sudo.

sudo fdisk -l /dev/sdb

La sortie fournit des détails sur le disque, notamment sa taille, ses secteurs et son identifiant. Comme il n'y a pas encore de partitions, la liste des périphériques en bas sera vide.

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

Remarque : S'il s'agit de la première utilisation du disque, vous pourriez voir un message concernant la création d'une nouvelle étiquette de disque DOS (disklabel).

Ensuite, vous allez lancer fdisk en mode interactif pour créer une nouvelle partition. Ce processus implique une séquence de commandes composées d'une seule lettre. Exécutez la commande suivante pour commencer à gérer /dev/sdb :

sudo fdisk /dev/sdb

Vous êtes maintenant dans l'utilitaire fdisk, indiqué par l'invite Command (m for help):. Suivez attentivement ces étapes :

  1. Créer une nouvelle partition : Tapez n et appuyez sur Entrée.
  2. Choisir le type de partition : Il vous sera demandé de sélectionner un type de partition (primaire ou étendue). Par défaut, il s'agit de primaire (p), ce que nous souhaitons. Appuyez sur Entrée pour accepter la valeur par défaut.
  3. Choisir le numéro de partition : La valeur par défaut est 1, car il s'agit de la première partition. Appuyez sur Entrée pour l'accepter.
  4. Spécifier le premier secteur : La valeur par défaut est le premier secteur disponible sur le disque. C'est presque toujours le bon choix. Appuyez sur Entrée pour accepter la valeur par défaut.
  5. Spécifier le dernier secteur ou la taille : Au lieu de calculer les secteurs, vous pouvez spécifier une taille lisible par l'homme. Créons une partition de 500 Mo. Tapez +500M et appuyez sur Entrée.
  6. Afficher la table de partitions en mémoire : Avant d'enregistrer, il est de bonne pratique de vérifier vos modifications. Tapez p et appuyez sur Entrée pour voir la nouvelle disposition des partitions. Vous devriez voir un nouveau périphérique, /dev/sdb1.
  7. Écrire les modifications sur le disque : Les modifications que vous avez apportées ne sont encore qu'en mémoire. Pour les enregistrer dans la table de partitions du disque, tapez w et appuyez sur Entrée. Cela écrira les modifications et quittera fdisk.

Voici un résumé de la session interactive :

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x54041549.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4194303, default 4194303): +500M

Created a new partition 1 of type 'Linux' and of size 500 MiB.

Command (m for help): p
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
Disklabel type: dos
Disk identifier: 0x54041549

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 1026047 1024000  500M 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Invalid argument

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).

Après avoir écrit la table de partitions, vous remarquerez peut-être un message indiquant que le noyau n'a pas pu relire immédiatement la table de partitions. C'est normal lors de l'utilisation de périphériques de boucle. La commande partprobe demande au noyau du système d'exploitation de relire la table de partitions.

sudo partprobe

Maintenant, vérifiez que le système reconnaît la nouvelle partition en exécutant à nouveau lsblk.

lsblk /dev/sdb

La sortie devrait montrer le périphérique de boucle et sa nouvelle partition. En raison de la configuration du périphérique de boucle, la partition apparaîtra sous le nom loop13p1 :

NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop13       7:13   0    2G  0 loop
└─loop13p1 259:0    0  500M  0 part

Comme la partition apparaît sous le nom loop13p1 mais que l'atelier nécessite /dev/sdb1 pour fonctionner, nous devons créer un lien symbolique pour la partition. Tout d'abord, identifions le périphérique de partition réel :

PARTITION_DEVICE=$(lsblk -lno NAME /dev/sdb | grep p1 | head -1)
echo "Partition device: /dev/$PARTITION_DEVICE"

Créez maintenant un lien symbolique pour la partition :

sudo ln -s /dev/$PARTITION_DEVICE /dev/sdb1

Vérifiez que /dev/sdb1 fonctionne désormais :

lsblk /dev/sdb1

La sortie devrait maintenant montrer la partition accessible en tant que /dev/sdb1 :

NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop13p1   259:0    0  500M  0 part

Vous avez créé avec succès une nouvelle partition Linux de 500 Mo sur /dev/sdb et l'avez rendue accessible via /dev/sdb1.

Créer et formater un système de fichiers ext4 avec mkfs.ext4

Dans cette étape, vous allez formater la nouvelle partition que vous avez créée, /dev/sdb1, avec un système de fichiers. Un système de fichiers fournit la structure nécessaire pour stocker et organiser les fichiers et les répertoires. Sans système de fichiers, le système d'exploitation ne peut ni lire ni écrire sur la partition. Nous utiliserons ext4, qui est le système de fichiers par défaut et le plus largement utilisé pour les distributions Linux modernes en raison de ses performances, de sa fiabilité et de ses fonctionnalités.

La commande pour créer un système de fichiers est mkfs, qui signifie "make filesystem" (créer un système de fichiers). C'est une interface pour divers constructeurs spécifiques aux systèmes de fichiers, tels que mkfs.ext4, mkfs.xfs, etc. Nous utiliserons directement mkfs.ext4. Cette opération est destructive et effacera toutes les données existantes sur la partition, c'est pourquoi elle nécessite les privilèges sudo.

Pour formater la partition /dev/sdb1 avec le système de fichiers ext4, exécutez la commande suivante :

sudo mkfs.ext4 /dev/sdb1

La commande créera le système de fichiers et affichera des informations sur le processus, notamment l'UUID du système de fichiers, la taille des blocs et le nombre d'inodes.

mke2fs x.xx.x (xx-xxx-xxxx)
Creating filesystem with 128000 4k blocks and 32000 inodes
Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
 32768, 98304

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Après le formatage, vous pouvez vérifier que le système de fichiers a été créé avec succès. La commande blkid est un excellent outil pour cela, car elle affiche les attributs des périphériques blocs, y compris leur type de système de fichiers.

sudo blkid /dev/sdb1

La sortie devrait clairement indiquer que /dev/sdb1 a maintenant un TYPE égal à ext4.

/dev/sdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1a2b3c4d-01"

Pour une vue plus détaillée, vous pouvez utiliser la commande dumpe2fs avec l'option -h pour afficher les informations du superbloc. Le superbloc contient des métadonnées critiques sur le système de fichiers.

sudo dumpe2fs -h /dev/sdb1

Cette commande produira beaucoup de texte. Recherchez les lignes clés telles que Filesystem magic number et Filesystem state pour confirmer l'intégrité du système de fichiers.

dumpe2fs x.xx.x (xx-xxx-xxxx)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
...

Vous avez maintenant formaté la partition avec succès, et elle est prête à être montée et utilisée pour stocker des données.

Monter, tester et démonter le système de fichiers

Dans cette étape, vous apprendrez comment rendre votre système de fichiers nouvellement formaté accessible au système d'exploitation. Ce processus est appelé "montage". Le montage attache le système de fichiers d'un périphérique (comme /dev/sdb1) à un répertoire spécifique dans l'arborescence du système de fichiers, appelé "point de montage". Une fois monté, vous pouvez interagir avec la partition comme avec n'importe quel autre répertoire.

Tout d'abord, vous devez créer un point de montage. Il s'agit simplement d'un répertoire vide. Il est d'usage de créer des points de montage temporaires sous le répertoire /mnt. Créons un répertoire nommé /mnt/data. Comme /mnt est un répertoire système, vous aurez besoin de sudo.

sudo mkdir /mnt/data

Maintenant, utilisez la commande mount pour attacher la partition /dev/sdb1 au répertoire /mnt/data.

sudo mount /dev/sdb1 /mnt/data

Pour vérifier que le système de fichiers est monté, vérifions d'abord si la commande de montage a réussi en examinant l'état du montage. Nous utiliserons plusieurs commandes pour confirmer le montage :

## Vérifier si le point de montage a le système de fichiers monté
mountpoint /mnt/data

Si le montage a réussi, vous devriez voir :

/mnt/data is a mountpoint

Vérifions maintenant l'utilisation du disque avec df. En raison de la configuration du périphérique de boucle, la partition peut apparaître avec son nom de périphérique réel plutôt qu'avec le nom du lien symbolique :

df -h /mnt/data

Vous devriez voir une entrée montrant le système de fichiers monté :

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop13p1   488M  2.6M  459M   1% /mnt/data

Vous pouvez également vérifier avec la commande mount :

mount | grep /mnt/data

Cela devrait afficher :

/dev/loop13p1 on /mnt/data type ext4 (rw,relatime)

Testons maintenant si nous pouvons écrire des données sur notre nouveau système de fichiers. Tout d'abord, vérifions le propriétaire et les permissions actuels du point de montage :

ls -ld /mnt/data

Vous devriez voir quelque chose comme :

drwxr-xr-x 3 root root 4096 Dec 12 10:00 /mnt/data

Essayez maintenant de créer un fichier dans le point de montage :

touch /mnt/data/testfile

Cette commande échouera probablement avec une erreur "Permission denied" (Permission refusée). C'est parce que le répertoire racine du système de fichiers monté appartient à l'utilisateur root. Pour corriger cela, changez le propriétaire du point de montage pour votre utilisateur actuel, labex :

sudo chown labex:labex /mnt/data

Maintenant, essayez de créer à nouveau le fichier :

touch /mnt/data/testfile

Cette fois, la commande devrait réussir. Vérifiez que le fichier a été créé :

ls -l /mnt/data

Vous devriez voir :

total 16
drwx------ 2 root  root  16384 Dec 12 10:00 lost+found
-rw-r--r-- 1 labex labex     0 Dec 12 10:05 testfile

Le répertoire lost+found est une fonctionnalité standard des systèmes de fichiers ext4, utilisée pour récupérer des fichiers en cas de corruption du système de fichiers.

Lorsque vous avez fini d'utiliser le système de fichiers, vous devez le démonter à l'aide de la commande umount. Il est important de noter que vous ne pouvez pas démonter un système de fichiers s'il est actuellement utilisé, par exemple, si votre répertoire de travail actuel se trouve à l'intérieur du point de montage. Voyons cela en action.

Tout d'abord, changez votre répertoire pour /mnt/data :

cd /mnt/data

Maintenant, essayez de le démonter. Vous pouvez désigner un système de fichiers soit par son nom de périphérique, soit par son point de montage.

sudo umount /mnt/data

Vous recevrez un message d'erreur indiquant que la cible est occupée.

umount: /mnt/data: target is busy.

Pour le démonter avec succès, vous devez d'abord sortir du répertoire. Retournons dans votre répertoire personnel.

cd ~

Maintenant, exécutez à nouveau la commande umount.

sudo umount /mnt/data

La commande devrait s'exécuter sans aucune sortie. Vous pouvez vérifier qu'il n'est plus monté en exécutant la commande mountpoint :

mountpoint /mnt/data

Vous devriez voir :

/mnt/data is not a mountpoint

Enfin, vous pouvez faire le ménage en supprimant le répertoire du point de montage :

sudo rmdir /mnt/data

Note de dépannage : Si vous rencontrez des problèmes avec la commande mount, vous pouvez essayer de monter en utilisant le nom réel du périphérique de boucle au lieu du lien symbolique :

## Trouver le nom réel du périphérique
ACTUAL_DEVICE=$(readlink -f /dev/sdb1)
echo "Actual device: $ACTUAL_DEVICE"

## Monter en utilisant le nom réel du périphérique
sudo mkdir /mnt/data
sudo mount $ACTUAL_DEVICE /mnt/data

Configurer le montage persistant dans /etc/fstab

Dans cette étape, vous apprendrez comment faire en sorte que votre système de fichiers se monte automatiquement à chaque démarrage du système. La commande mount que vous avez utilisée à l'étape précédente est temporaire ; le montage sera perdu après un redémarrage. Pour créer un montage persistant, vous devez ajouter une entrée dans un fichier de configuration spécial appelé /etc/fstab (filesystem table).

Le système lit /etc/fstab pendant le processus de démarrage pour déterminer quels systèmes de fichiers monter. C'est un fichier critique, il est donc toujours judicieux d'en créer une sauvegarde avant de le modifier.

Tout d'abord, créons une sauvegarde du fichier fstab actuel.

sudo cp /etc/fstab /etc/fstab.bak

Ensuite, nous avons besoin d'un point de montage permanent. À l'étape précédente, nous avons utilisé /mnt/data puis nous l'avons supprimé. Pour les montages permanents, il est courant de créer un répertoire dans le système de fichiers racine. Créons un répertoire nommé /data.

sudo mkdir /data

Bien que vous puissiez utiliser le nom du périphérique (/dev/sdb1) dans /etc/fstab, cela n'est pas recommandé. Les noms de périphériques peuvent parfois changer entre les redémarrages, surtout si vous ajoutez ou retirez du matériel. Une méthode beaucoup plus fiable consiste à utiliser l'identifiant unique universel (UUID) de la partition, qui est une chaîne unique attribuée au système de fichiers lors de sa création et qui ne change pas.

Pour trouver l'UUID de /dev/sdb1, utilisez à nouveau la commande blkid :

sudo blkid /dev/sdb1

La sortie affichera l'UUID. Copiez cette valeur (sans les guillemets).

/dev/sdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1a2b3c4d-01"

Maintenant, vous allez modifier /etc/fstab à l'aide de l'éditeur nano. Vous devez utiliser sudo car il s'agit d'un fichier système.

sudo nano /etc/fstab

Allez à la fin du fichier et ajoutez une nouvelle ligne pour votre partition. Le format d'une entrée fstab est :
<identifiant_périphérique> <point_de_montage> <type_système_fichiers> <options> <dump> <pass>

Ajoutez la ligne suivante, en remplaçant xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx par l'UUID réel que vous avez copié de la commande blkid.

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2
  • UUID=... : Identifie la partition par son ID unique.
  • /data : Le répertoire où le système de fichiers sera monté.
  • ext4 : Le type du système de fichiers.
  • defaults : Un ensemble standard d'options de montage adaptées à la plupart des cas.
  • 0 : Le champ dump. Il s'agit d'un indicateur pour un utilitaire de sauvegarde obsolète et il doit être à 0.
  • 2 : Le champ pass. Il indique à l'utilitaire fsck l'ordre de vérification des systèmes de fichiers au démarrage. 1 est pour le système de fichiers racine, 2 pour les autres systèmes de fichiers permanents, et 0 désactive la vérification.

Après avoir ajouté la ligne, enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, et enfin Entrée.

Maintenant, au lieu de redémarrer pour tester, vous pouvez utiliser la commande mount -a. Cette commande monte tous les systèmes de fichiers répertoriés dans /etc/fstab qui ne sont pas déjà montés.

sudo mount -a

S'il n'y a pas d'erreurs, la commande se terminera silencieusement. Vous pouvez maintenant vérifier que votre système de fichiers est correctement monté à l'aide de la commande df.

df -h | grep /data

La sortie devrait confirmer que /dev/sdb1 est monté sur /data.

/dev/sdb1       488M  2.6M  459M   1% /data

Votre partition sera désormais montée automatiquement à chaque démarrage du système.

Créer et gérer une partition d'échange (swap) Linux

Dans cette étape, vous découvrirez un autre type de partition spécial : le swap Linux. L'espace d'échange est utilisé par le système d'exploitation comme mémoire virtuelle lorsque la RAM physique est pleine. Il permet au système de déplacer les pages de mémoire inactives vers le disque, libérant ainsi de la RAM pour les processus actifs. Bien qu'il ne remplace pas une quantité suffisante de RAM, le fait de disposer d'une partition de swap peut empêcher le système de planter en raison d'erreurs de manque de mémoire.

Note importante : Avant de créer une nouvelle partition, assurez-vous que tous les systèmes de fichiers existants sur /dev/sdb sont démontés. Si le périphérique est actuellement monté (suite aux étapes précédentes), vous pourriez rencontrer des erreurs "Device or resource busy" (Périphérique ou ressource occupé) en essayant de modifier la table de partitions.

Nous allons créer une nouvelle partition sur /dev/sdb et la configurer comme espace d'échange. Tout d'abord, assurons-nous que le périphérique n'est pas monté, puis utilisons fdisk pour créer la partition. Nous avons déjà créé /dev/sdb1, donc cette nouvelle partition sera /dev/sdb2.

## Tout d'abord, vérifiez si le périphérique est monté et démontez-le si nécessaire
lsblk /dev/sdb
sudo umount /data /mnt/data 2> /dev/null || true

## Maintenant, créez la partition
sudo fdisk /dev/sdb

Dans l'invite interactive fdisk, suivez ces commandes :

  1. Créer une nouvelle partition : Tapez n et appuyez sur Entrée.
  2. Choisir le type et le numéro de partition : Acceptez les valeurs par défaut pour une partition primaire (p) et le numéro de partition 2 en appuyant deux fois sur Entrée.
  3. Spécifier les secteurs : Acceptez le premier secteur par défaut. Pour la taille, créons une partition de 256 Mo. Tapez +256M et appuyez sur Entrée.
  4. Changer le type de partition : C'est l'étape cruciale. Tapez t pour changer le type d'une partition. Lorsque le numéro de partition est demandé, entrez 2. Lorsqu'on vous demande le code hexadécimal, entrez 82, qui correspond à "Linux swap / Solaris".
  5. Afficher et vérifier : Tapez p pour examiner les modifications. Vous devriez voir /dev/sdb2 avec son type répertorié comme Linux swap / Solaris.
  6. Écrire les modifications : Tapez w pour enregistrer la nouvelle table de partitions et quitter.
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1026048-4194303, default 1026048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-4194303, default 4194303): +256M

Created a new partition 2 of type 'Linux' and of size 256 MiB.

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
...
Device     Boot   Start     End   Sectors   Size Id Type
/dev/sdb1          2048 1026047   1024000   500M 83 Linux
/dev/sdb2       1026048 1550335    524288   256M 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Après avoir créé la partition, nous devons créer un lien symbolique pour /dev/sdb2 tout comme nous l'avons fait pour /dev/sdb1. Tout d'abord, exécutez partprobe pour vous assurer que le noyau reconnaît la nouvelle partition :

sudo partprobe

Maintenant, identifiez et créez le lien symbolique pour la deuxième partition :

PARTITION2_DEVICE=$(lsblk -lno NAME /dev/sdb | grep p2 | head -1)
sudo ln -s /dev/$PARTITION2_DEVICE /dev/sdb2

Vérifiez que la partition est accessible :

lsblk /dev/sdb2

Avant de formater la partition en tant qu'espace d'échange, nous devons nous assurer que le périphérique n'est pas occupé. Si vous rencontrez une erreur "Device or resource busy", cela signifie que le périphérique est peut-être monté. Vérifions d'abord et démontons tous les montages existants :

## Vérifier l'état actuel du montage
lsblk /dev/sdb

## Si le périphérique est monté, démontez-le
sudo umount /data /mnt/data 2> /dev/null || true

Maintenant que la partition est créée et accessible, vous devez la formater pour l'utiliser comme espace d'échange avec la commande mkswap.

sudo mkswap /dev/sdb2

Après le formatage, vous pouvez activer l'espace d'échange. Tout d'abord, vérifiez l'utilisation actuelle du swap avec la commande free -h.

free -h

La sortie affichera probablement 0B pour le Swap.

              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       151Mi       1.6Gi       0.0Ki       202Mi       1.7Gi
Swap:            0B          0B          0B

Maintenant, activez la nouvelle partition de swap à l'aide de la commande swapon.

sudo swapon /dev/sdb2

Vérifiez à nouveau l'utilisation du swap avec free -h et swapon -s (résumé).

free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       152Mi       1.4Gi       0.0Ki       202Mi       1.6Gi
Swap:         256Mi          0B       256Mi
swapon -s
Filename    Type  Size Used Priority
/dev/sdb2                               partition 262140 0 -2

Vous pouvez voir que l'espace d'échange total a augmenté. Pour désactiver une partition de swap, utilisez la commande swapoff.

sudo swapoff /dev/sdb2

Vérifiez qu'elle a été désactivée en exécutant à nouveau free -h. L'espace d'échange reviendra à zéro. Cela démontre comment gérer dynamiquement l'espace d'échange sur un système en cours d'exécution.

Note de dépannage : Si vous rencontrez des erreurs "Device or resource busy" au cours de cette étape, cela signifie généralement :

  1. Le périphérique ou l'une de ses partitions est actuellement monté.
  2. Un processus accède au périphérique.

Pour résoudre ce problème, assurez-vous que tous les points de montage sont démontés avec sudo umount /data /mnt/data avant de procéder aux opérations sur les partitions.

Résumé

Dans cet atelier, vous avez acquis les compétences essentielles pour gérer les partitions de disque et les systèmes de fichiers sur un système Linux. Vous avez commencé par inspecter les périphériques blocs disponibles à l'aide de lsblk, puis vous avez utilisé l'utilitaire fdisk pour créer une nouvelle partition primaire sur un disque secondaire. Après la création de la partition, vous l'avez formatée avec le système de fichiers ext4 à l'aide de mkfs.ext4. Vous vous êtes également exercé à monter le nouveau système de fichiers dans un répertoire, à vérifier son état et à le démonter. Enfin, vous avez configuré le montage persistant en modifiant le fichier /etc/fstab avec l'UUID de la partition pour garantir son montage automatique au démarrage du système.

De plus, l'atelier a couvert le processus de création et de gestion d'un espace d'échange (swap) dédié. Cela a impliqué d'utiliser à nouveau fdisk pour créer une partition et de changer son type en "Linux swap". Vous avez ensuite préparé cette partition comme zone d'échange avec la commande mkswap et l'avez activée à l'aide de swapon. Pour rendre l'espace d'échange persistant après les redémarrages, vous avez également ajouté une entrée correspondante dans le fichier /etc/fstab.