4.6. Création de la partition de swap

En cas de manque de mémoire vive, Linux peut utiliser une partie du disque dur pour y stocker les données temporairement inutilisées afin de libérer de l'espace mémoire. Cette opération permet de continuer à travailler, même si la machine ne dispose pas de suffisamment de mémoire vive pour exécuter tous les processus dont elle a la charge. L'inconvénient de cette méthode est évidemment la dégradation des performances, mais c'est un bon compromis si l'on considère le prix du méga-octet de mémoire par rapport à celui des disques durs d'une part, et le fait qu'il vaut mieux parvenir à faire son travail, même lentement, que de ne pas le faire du tout.

L'espace disque consacré par Linux pour ce stockage temporaire est appelé « swap », du terme anglais « to swap » qui fait référence à l'échange des données de la mémoire vers le disque dur (et inversement, lorsqu'elles sont rechargées en mémoire). Linux est capable de gérer plusieurs formes de swap. Il est capable d'utiliser des fichiers d'échange, qui sont stockés dans un système de fichiers, ou les partitions de swap. Ces dernières ont l'avantage d'être bien plus rapides, puisque le noyau n'a pas à se préoccuper de la structure du système de fichiers lors des opérations de swap (qui, rappelons-le, constituent déjà un ralentissement notable de la machine). En revanche, elles ont l'inconvénient majeur d'être très contraignantes, puisqu'elles nécessitent de réserver une partition pour le swap de manière permanente. Cependant, il est tout à fait acceptable de consacrer 128 ou 256 Mo de disque dur pour une partition de swap de nos jours. Linux est capable de gérer jusqu'à 8 partitions de swap dont la taille peut aller jusqu'à 2 Go chacune, plus les fichiers d'échange que l'on peut rajouter ultérieurement. Nous ne décrirons que la manière de créer une partition de swap, car les fichiers d'échange ne constituent plus le meilleur compromis avec les tailles de disques que l'on rencontre de nos jours.

Bien entendu, le programme d'installation de votre distribution prend certainement déjà en charge la création des partitions de swap. Il est donc recommandé, encore une fois, d'utiliser ce programme, même si la description qui suit vous permettra de comprendre ce dont il s'agit.

Les partitions de swap peuvent être créées, comme toutes les partitions, à l'aide du programme fdisk. En fait, la seule distinction entre une partition de swap et une partition réservée à un système de fichiers est tout simplement son identificateur. Comme on l'a déjà vu lors du partitionnement du disque, l'identificateur utilisé pour les partitions de systèmes de fichiers Linux est 83, et celui pour les partitions de swap est 82. Vous devrez donc affecter cet identificateur à votre partition de swap lorsque vous partitionnerez votre disque dur. Il est recommandé de placer la partition de swap au début du disque dur, car c'est à cet emplacement que le taux de transfert est le plus élevé (et donc c'est à cet emplacement qu'on obtiendra les meilleures performances en cas de manque de mémoire vive).

Une fois créée, la partition de swap peut être préparée pour que le noyau puisse l'utiliser. Cette préparation revient à peu près à formater un système de fichiers, à ceci près que les structures de données écrites dans la partition de swap sont beaucoup plus simples car il ne s'agit plus ici de stocker une arborescence complète de fichiers. La commande mkswap permet de préparer les partitions pour être utilisées en tant que partition de swap. Elle s'utilise selon la syntaxe suivante :

mkswap -c partition
partition est la partition à préparer pour le swap. Notez que, en réalité, mkswap peut tout aussi bien travailler sur un fichier que sur une partition.

Lorsque la partition aura été préparée pour le swap, il est possible de demander à Linux de l'utiliser avec la commande suivante :

swapon partition
partition est la partition de swap à utiliser. Cette zone de swap est alors automatiquement prise en compte par le système. La commande suivante permet d'arrêter le swapping sur une partition :
swapoff partition

Normalement, vous n'aurez jamais à utiliser ces commandes manuellement. Le programme d'installation de votre distribution configure le swap, et fait en sorte que les partitions de swap sont chargées automatiquement lors du démarrage de la machine. Notez cependant que cette méthode de configuration dynamique permet d'ajouter temporairement un fichier d'échange si les besoins s'en font sentir, sans avoir à redémarrer la machine.