Ajouter un fichier de Swap sous Linux

Samuel Chevalley
10 mars 2016

 

On va par exemple créer le fichier file.swap d’une taille de 512Mo à l’aide de la commande suivante :

[root@test tmp]# dd if=/dev/zero of=file.swap bs=1024 count=512000
512000+0 records in
512000+0 records out
524288000 bytes (524 MB) copied, 2.26171 s, 232 MB/s

Explication : la commande dd crée et copie des zéros dans le fichier file.swap contenant 512000 blocs de 1024 octets chacun, soit un fichier approximatif de 512 Mo (voir 524 Mo).


 
On utilise à présent « mkswap » pour formater le fichier en tant qu’espace d’échange ou de « swap » :

[root@test tmp]# mkswap -f file.swap

 

On peut maintenant ajouter ce fichier d’échange (« swapon -s » pour voir les partitions/fichiers de swap) :

[root@test tmp]# swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2097144 0 -1

[root@test tmp]# swapon file.swap

[root@test tmp]# swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2097144 0 -1
/tmp/file.swap file 511992 0 -2

 

Nous pouvons aussi tout aussi bien supprimer le fichier de l’espace d’échange :

[root@test tmp]# swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2097144 0 -1
/tmp/file.swap file 511992 0 -2

[root@test tmp]# swapoff file.swap

[root@test tmp]# swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 2097144 0 -1

 

Remarque

Il est donc, grâce à cette méthode, possible d’étendre une partition de swap (impossible à chaud) :

  • Créer un fichier d’échange de taille suffisante (au cas où la RAM ne soit pas suffisante)
  • L’ajouter à la zone d’échange
  • Enlever de la zone d’échange la partition de swap (elle va basculer ce qu’elle contient sur le fichier de swap)
  • Étendre cette partition et la rajouter à la zone d’échange
  • Enlever de la zone d’échange le fichier de swap (qui va donc tout re-basculer sur la partition)