Comment passer d’une partition swap à un fichier swap sous Linux

Comment passer d’une partition swap à un fichier swap sous Linux

Lors d’une nouvelle installation d’Ubuntu (depuis 18.04) ou de Linux Mint (depuis 19.x), un fichier swap, à la racine du système, remplace la traditionnelle partition swap. Mais, si vous mettez à jour depuis une ancienne version (comme Ubuntu 16.04 ou Linux Mint 18.x) vers les versions, le système conserve la partition swap. Aussi, voici comment passer d’une partition swap à un fichier swap sous Linux (Ubuntu, Linux Mint, Debian,…).

Quelques précisions sur le fichier swap sous Linux

Le swap est un espace d’échange qui sert à étendre votre mémoire vive (RAM) dans un fichier ou une partition sur un disque dur.

Sous Linux, historiquement, il fallait créer une partition pour cet espace, car cette dernière donnait de meilleures performances que le fichier. Mais depuis la sortie du noyau Linux 2.6, les performances des deux sont équivalentes. Aussi, un fichier swap est plus facilement redimensionnable.

Par contre, vous ne pouvez pas l’utiliser sur un système de fichier Btrfs. Et la fonction de mise en veille prolongée du système (hibernation) ne sera plus possible si vous l’utilisiez avant.

Créer un fichier swap sous Linux

Avant de commencer, vérifiez que vous avez suffisamment d’espace disque pour accueillir le fichier swap en gardant au moins 10% de l’espace libre.

Les opérations qui suivent, se font dans un terminal.

Création du fichier qui deviendra le fichier swap

La commande fallocate permet de réserver un espace du disque pour un fichier :

sudo fallocate -l <taille du fichier> <chemin et nom du fichier>

-l : permet d’indiquer la taille du fichier en octet. Pour 1 Mio, vous pouvez indiquer 1M ou 1MiB, pour 1 Gio, 1G ou 1 GiB, etc.

Par exemple, pour créer un fichier swap swapfile de 4 Go à la racine du système :

sudo fallocate -l 4G /swapfile

Sécurisation du fichier swap

Puis, il faut modifier les permissions de ce fichier pour qu’il ne soit accessible que par le système :

sudo chmod 600 <chemin et nom du fichier>

Par exemple :

sudo chmod 600 /swapfile

Définition de ce fichier comme étant un fichier swap

Il faut aussi dire au système, que ce fichier est un fichier d’échange :

sudo mkswap <nom du fichier>

Par exemple :

sudo mkswap /swapfile

Activation du fichier swap

La commande qui suit, permet d’activer le fichier swap temporairement (jusqu’au prochain redémarrage de l’ordinateur) en plus de la partition swap existante.

Donc pour activer ce nouvel espace d’échange, entrez la commande suivante :

sudo swapon <nom du fichier>

Par exemple :

sudo swapon /swapfile

Aussi, pour vérifier que le fichier swap est bien actif, entrez la commande suivante :

swapon

Vous devriez avoir une réponse de ce type :

NAME TYPE SIZE USED PRIO
/dev/sda5 partition 4G 0B -1
/swapfile file 4G 0B -2

La ligne 2 correspond à la partition swap. Et la ligne 3 correspond au fichier swap créé.

Désactivation du fichier swap

Pour désactiver le fichier swap, entrez la commande suivante :

sudo swapoff <nom du fichier>

Par exemple :

sudo swapoff /swapfile

Remplacer la partition swap par le fichier swap

Pour cela, il faut modifier le fichier /etc/fstab. Mais, avant de commencer la modification de ce fichier, je vous recommande de le sauvegarder :

sudo cp /etc/fstab /etc/fstab.backup
Fichier fstab d'origine


Pour éditer le fichier, vous pouvez le faire avec l’éditeur de texte nano :

sudo nano /etc/fstab

Utilisez les touches pour se déplacer dans le texte et faites Ctrl + O puis Entrée pour sauvegarder et Ctrl + X pour quitter.

Activation du fichier swap de façon permanente

Pour cela, ajoutez à la fin du fichier /etc/fstab :

# Fichier swap créé manuellement
/swapfile none swap sw 0 0

Désactiver la partition swap au démarrage

Pour que la partition swap ne soit plus active au prochain démarrage du système, il faut supprimer la ligne correspondante à son montage. Cette dernière est généralement du style :

UUID=1edc89ba-e7af-437d-82f8-ceed790e5083 none swap sw 0 0

Si vous ne voulez pas la supprimer, vous pouvez ajouter # au début de la ligne correspondante. Cela la passera en commentaire et donc la désactivera.

Suppression de la partition swap plus utilisée

Pour supprimer la partition swap, il faut d’abord la désactiver. Pour connaître l’emplacement de la partition swap, faites :

lsblk

Le résultat retourné dépend de votre configuration. Par exemple :

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
sda 8:0 0 20G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 4G 0 part [SWAP]
└─sda1 8:1 0 16G 0 part /<br data-mce-bogus="1">

Ici, la partition swap est sur la partition sda5. Alors pour la désactiver, faites :

sudo swapoff /dev/sda5

Et maintenant, vous pouvez la supprimer et réaffecter l’espace libérer à une partition existante ou en créer une nouvelle avec, par exemple, GParted (sudo apt install gparted si pas installé).

Pour aller plus loin

Pour vous aider à déterminer la taille du swap, vous pouvez lire l’article SwapFaq (en anglais) sur le site d’aide d’Ubuntu.

Vous pouvez aussi consulter les articles Wikipédia sur :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

2 Commentaires

  1. Tuto très clair, très bien expliqué sans excès et en bon français (ce qui est rare).
    Les explications fournies m’ont permis d’appliquer le changement sur un desktop Pentium 4 en dual-boot Ubuntu 16.04.7 LTS / Win XP SP3, et cela fonctionne parfaitement. L’indication du niveau de noyau 2.6 m’a incité à essayer avec un noyau 4.4, en suivant scrupuleusement la procédure (sauf l’éditeur, pour lequel j’utilise GEDIT par habitude).
    De réels compliments au rédacteur : ni trop, ni trop peu, avec les mises en garde nécessaires.
    Utile à 100% dans mon cas, après un passage loupé à Ubuntu 18.04.5 LTS (en 32 bits) qui ne fonctionnait qu’en mode sans échec, et m’a conduit à tout reprendre à zéro avec le dvd de la version 16.04.1 LTS, puis de l’ensemble des mises à hour.

    1. Merci.

      Petite remarque : Suivant votre modèle de Pentium 4, il pourrait être 64 bits. Si c’est le cas, je vuos recommande d’installer Ubuntu en 64 bits pour continuer de le mettre à jour vers les nouvelles versions. Et vous pouvez garder le DualBoot avec Windows XP en 32 bits, même si je déconseille de garder XP (surtout si vous allez sur internet) pour des raisons de sécurité car plus maintenu depuis des années…

      Pour savoir si votre CPU est 64 bits, faites sous Linux uname -m Si la réponse est x86_64, votre système est 64 bits et vous pouvez installer Ubuntu 20.04 LTS. Mais si c’est i686 ou i386, il est 32 bits et vous ne pourrez plus mettre à niveau après Ubuntu 18.04 LTS. Par contre, vous pouvez passer à Debian (ou autres distrib basée sur Debian comme LMDE, Debian-Facile,…) qui propose toujours des installeurs 32 bits.

      Cordialement