Créer et activer un fichier d'échange (Swap) sous Linux

CompTIABeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez apprendre une tâche d'administration fondamentale : la création et l'activation d'un fichier d'échange (swap) sous Linux. Ce processus permet d'augmenter la mémoire virtuelle de votre système, ce qui s'avère crucial lorsque la mémoire vive (RAM) physique est saturée. Vous acquerrez une expérience pratique des utilitaires en ligne de commande essentiels pour gérer efficacement les ressources système, offrant ainsi une alternative flexible à la création d'une partition de swap dédiée.

Vous suivrez l'intégralité du flux de travail, en commençant par l'examen de l'espace de swap actuel via la commande swapon. Ensuite, vous créerez un fichier destiné à la zone d'échange avec dd, vous le formaterez pour une utilisation en tant que swap avec mkswap, puis vous l'activerez. Pour conclure l'atelier, vous vérifierez que le nouveau fichier de swap est correctement configuré et reconnu par le système.

Examiner l'espace de swap actuel avec swapon

Dans cette étape, vous apprendrez à vérifier la configuration actuelle de l'espace d'échange sur votre système Linux. L'espace de swap est une portion du disque dur utilisée comme mémoire virtuelle lorsque la mémoire physique (RAM) est pleine. Cela permet au système d'exécuter plus d'applications qu'il ne pourrait en contenir dans la seule RAM physique.

Pour commencer, vous utiliserez la commande swapon, un utilitaire permettant de spécifier les périphériques et les fichiers pour la pagination et l'échange. Nous l'utiliserons avec l'option --show pour afficher un résumé des périphériques de swap actifs. Comme la gestion de l'espace de swap est une tâche administrative, vous devez utiliser sudo pour exécuter la commande avec les privilèges root.

Dans votre terminal, qui se trouve déjà dans le répertoire ~/project, exécutez la commande suivante :

sudo swapon --show

Vous verrez une sortie similaire à celle-ci. Les détails, tels que le NAME (nom) et la SIZE (taille), peuvent varier selon la configuration initiale de votre machine virtuelle. Il est également possible qu'aucun espace de swap ne soit configuré, auquel cas cette commande ne produira aucun résultat.

NAME        TYPE      SIZE USED PRIO
/dev/loop12 partition   2G   0B   -2

Analysons les colonnes de la sortie :

  • NAME : Le nom du périphérique ou du fichier de swap. Dans cet exemple, il s'agit d'un périphérique loop (/dev/loop12).
  • TYPE : Le type d'espace de swap, qui peut être une partition (partition) ou un fichier (file).
  • SIZE : La taille totale de l'espace de swap.
  • USED : La quantité d'espace de swap actuellement utilisée.
  • PRIO : La priorité de l'espace de swap. Si vous avez plusieurs espaces de swap, celui ayant la priorité la plus élevée sera utilisé en premier.

En exécutant cette commande, vous avez examiné avec succès la configuration actuelle du swap sur le système. Dans les étapes suivantes, vous apprendrez à créer et à activer un nouveau fichier de swap, ce qui constitue un moyen flexible d'ajouter de l'espace d'échange sans avoir à repartitionner un disque.

Créer un fichier pour l'espace de swap avec dd

À l'étape précédente, vous avez appris à visualiser la configuration de swap existante. À présent, vous allez créer un fichier dédié qui servira de nouvel espace d'échange. L'utilisation d'un fichier pour le swap est une méthode flexible car elle ne nécessite pas de modifier les partitions de votre disque dur.

Nous allons utiliser la commande dd, un utilitaire puissant pour copier et convertir des données. Elle est idéale pour cette tâche car elle peut créer un fichier d'une taille précise en lisant depuis un périphérique système spécial appelé /dev/zero, qui génère un flux continu de caractères nuls (zéros).

Pour créer un fichier de 250 Mo nommé swapfile dans votre répertoire actuel (~/project), exécutez la commande suivante. L'usage de sudo est nécessaire car ce fichier sera à terme géré par le système.

sudo dd if=/dev/zero of=swapfile bs=1M count=250

Analysons les arguments de cette commande :

  • sudo : Exécute la commande avec les privilèges root.
  • dd : L'utilitaire en ligne de commande utilisé.
  • if=/dev/zero : Spécifie le fichier d'entrée (input file). /dev/zero est un fichier spécial qui produit un flux de caractères nuls.
  • of=swapfile : Spécifie le fichier de sortie (output file). Cela crée un fichier nommé swapfile dans le répertoire courant.
  • bs=1M : Définit la taille de bloc (block size) à 1 Mégaoctet. dd lira et écrira les données par blocs de 1 Mo.
  • count=250 : Copie 250 blocs. Comme notre taille de bloc est de 1 Mo, cela génère un fichier de 250 * 1 Mo = 250 Mo.

Après avoir exécuté la commande, vous verrez un message confirmant que l'opération a réussi :

250+0 records in
250+0 records out
262144000 bytes (262 MB, 250 MiB) copied, 0.270222 s, 970 MB/s

Vous avez maintenant créé avec succès un fichier de 250 Mo. Dans l'étape suivante, vous formaterez ce fichier pour qu'il soit reconnu comme espace de swap et vous lui attribuerez les permissions appropriées.

Formater le fichier en tant que swap avec mkswap

À l'étape précédente, vous avez créé un fichier nommé swapfile rempli de zéros. Cependant, le système d'exploitation ne le reconnaît pas encore comme une zone d'échange valide. Vous devez le formater spécifiquement à cet effet. C'est ici qu'intervient la commande mkswap.

La commande mkswap configure une zone d'échange Linux sur un périphérique ou dans un fichier. Elle écrit une signature spéciale dans le fichier que le noyau peut identifier.

Tout d'abord, formatons le swapfile que vous avez créé. Dans votre terminal, lancez la commande suivante :

sudo mkswap swapfile

Après l'exécution, vous verrez un message indiquant que l'espace de swap a été configuré. Le système attribuera un identifiant unique (UUID) à votre nouvelle zone d'échange. Vous pourriez également voir un avertissement concernant des permissions non sécurisées, ce que nous allons régler immédiatement.

mkswap: swapfile: insecure permissions 0644, fix with: chmod 0600 swapfile
Setting up swapspace version 1, size = 250 MiB (262139904 bytes)
no label, UUID=aabf0226-9f7b-47f5-9ad3-10248552795c

Note importante sur la sécurité : Un fichier de swap peut potentiellement contenir des données sensibles provenant de la mémoire de votre ordinateur. Pour des raisons de sécurité, il est crucial que seul l'utilisateur root ait la permission de lire et d'écrire dedans. Les autres utilisateurs du système ne doivent avoir aucun accès.

Pour définir les permissions correctes, nous utiliserons la commande chmod. Nous réglerons les permissions sur 600, ce qui donne au propriétaire (root) l'accès en lecture et en écriture, et révoque tout accès pour tous les autres.

Exécutez la commande suivante pour sécuriser votre swapfile :

sudo chmod 600 swapfile

Cette commande ne produira aucune sortie si elle réussit. Vous avez maintenant formaté le swapfile avec succès et sécurisé ses accès. Il est désormais prêt à être activé et utilisé par le système, ce que vous ferez à l'étape suivante.

Activer le nouveau fichier de swap avec swapon

Vous avez créé et préparé avec succès votre swapfile. Il est formaté et possède les bonnes permissions, mais le noyau Linux ne l'utilise pas encore comme mémoire virtuelle. Dans cette étape, vous allez activer le fichier de swap pour le rendre disponible pour le système.

Pour ce faire, vous utiliserez à nouveau la commande swapon. Lors de la première étape, vous l'avez utilisée avec l'option --show pour voir la configuration actuelle. Cette fois, vous passerez le chemin de votre swapfile en argument pour l'activer.

Dans votre terminal, toujours situé dans ~/project, exécutez la commande suivante pour activer votre nouvel espace de swap :

sudo swapon swapfile

Analysons la commande :

  • sudo : C'est indispensable car l'activation de l'espace de swap est une opération au niveau du système qui nécessite les privilèges root.
  • swapon : La commande pour activer les périphériques et fichiers d'échange.
  • swapfile : Le nom du fichier que vous souhaitez activer. Comme vous êtes dans le répertoire ~/project où se trouve le fichier, il n'est pas nécessaire de spécifier le chemin complet.

Si la commande réussit, elle ne produira aucune sortie. C'est le comportement standard de nombreuses commandes Linux : l'absence de message est signe de succès.

Votre swapfile est maintenant actif et utilisé par le système comme mémoire virtuelle supplémentaire. Dans la dernière étape, vous vérifierez que le nouvel espace de swap a bien été ajouté aux ressources mémoire totales du système.

Vérifier la configuration du nouvel espace de swap

Félicitations ! Vous avez créé, formaté et activé avec succès un nouveau fichier de swap. Dans cette étape finale, vous allez vérifier que le système reconnaît et est prêt à utiliser cette nouvelle ressource. Cela confirmera que toutes les étapes précédentes ont été correctement effectuées.

Commençons par utiliser la même commande qu'au début de cet atelier, swapon --show. Son exécution devrait maintenant afficher une liste mise à jour des espaces de swap actifs, incluant le swapfile que vous venez d'ajouter.

Dans votre terminal, exécutez la commande suivante :

sudo swapon --show

La sortie affichera désormais deux entrées : la partition de swap d'origine (si elle existait) et votre nouveau fichier de swap. Notez la nouvelle ligne correspondant à /home/labex/project/swapfile.

NAME                         TYPE      SIZE USED PRIO
/dev/loop12                  partition   2G   0B   -2
/home/labex/project/swapfile file      250M   0B   -3

Comme vous pouvez le voir, le système reconnaît maintenant un espace de swap de type file de 250M. Une priorité (PRIO) lui a également été assignée. Le noyau utilisera en priorité l'espace de swap ayant la valeur la plus élevée.

Une autre commande utile pour vérifier l'utilisation de la mémoire et du swap est free. L'utilisation de l'option -h (--human) rend la sortie plus lisible en affichant les tailles en mégaoctets (M) ou gigaoctets (G).

Exécutez la commande free -h :

free -h

Vous verrez un résumé de la mémoire du système. Portez une attention particulière à la ligne Swap.

               total        used        free      shared  buff/cache   available
Mem:           3.5Gi       608Mi       732Mi        16Mi       2.2Gi       2.7Gi
Swap:          2.2Gi          0B       2.2Gi

La valeur total sur la ligne Swap doit maintenant refléter la taille combinée de l'espace de swap d'origine et de votre nouveau fichier de 250 Mo. Par exemple, si vous aviez commencé avec 2 Go de swap, le nouveau total sera d'environ 2,2 Go.

Vous avez ajouté et vérifié avec succès un nouveau fichier de swap sur votre système Linux, lui offrant ainsi plus de mémoire virtuelle pour fonctionner.

Résumé

Dans cet atelier, vous avez appris à créer et à activer un fichier de swap pour ajouter de la mémoire virtuelle à un système Linux. Vous avez commencé par examiner la configuration existante de l'espace d'échange à l'aide de la commande sudo swapon --show afin de comprendre l'état actuel de la mémoire virtuelle du système et d'interpréter ses résultats.

Après cet examen initial, vous avez procédé à la création d'un nouveau fichier de swap en utilisant la commande dd pour allouer l'espace disque souhaité. Vous avez ensuite formaté ce fichier pour une utilisation en swap avec mkswap et l'avez activé avec la commande swapon, le rendant immédiatement disponible pour le système. Enfin, vous avez vérifié que le nouveau fichier de swap a été correctement ajouté et activé en exécutant à nouveau swapon --show, confirmant ainsi la mise à jour de la configuration.