Ajouter un nouveau fichier d'échange. Comment modifier fstab pour activer l'échange après le redémarrage?

50

J'ai supprimé ma partition de swap existante en raison d'un problème de partitionnement. Je n'ai pas d'espace d'échange maintenant, j'ai donc créé un fichier d'échange avec:

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

Voici après swapon -s:

/root/myswapfile    file    1048572    1320    -1

Maintenant, je veux modifier mon /etc/fstabpour activer le fichier d'échange après le redémarrage.

jojo
la source
1
L’échange sur SSD est dangereux car les disques SSD ont une durée de vie réduite lors d’écritures intenses. Cela signifie que vous pouvez vraiment consommer votre précieux et cher disque SSD comme ça.
2
Avis qui bs=1G count=1donnerait le même résultat, consultez la page de manuel dd pour les autres unités.
LiveWireBT

Réponses:

79

Voici les étapes à suivre pour créer un échange sur un fichier:

Créez un fichier volumineux, par exemple avec

sudo mkdir -p /var/cache/swap/   # create a directory that holds the swap file
sudo dd if=/dev/zero of=/var/cache/swap/myswap bs=1M count=4096 # for 4 GByte

Bien entendu, toute autre méthode de création d'un fichier de taille définie conviendrait.

Annoncer un échange au système

sudo chmod 0600 /var/cache/swap/myswap # only root should have access
sudo mkswap /var/cache/swap/myswap # format as swap
sudo swapon /var/cache/swap/myswap # announce to system

Insérez la ligne suivante dans /etc/fstabswap à partir du prochain démarrage:

/var/cache/swap/myswap    none    swap    sw    0   0

Remarque: si vous avez vos fichiers système sur un disque SSD, vous pouvez envisager de conserver votre fichier d'échange sur un emplacement de disque dur.

Remarque: vous ne pouvez pas utiliser de fichier d'échange pour l'hibernation (voir Ubuntu SwapFaq ).

Note complémentaire pour Ubuntu> = 17.04: Un fichier d'échange /swapfileest créé par défaut dans une nouvelle installation (lorsqu'aucune partition d'échange n'était présente). Nous pouvons créer manuellement une partition de swap ultérieurement si nous le souhaitons.

Si nous voulons remplacer un swap existant (par exemple une partition) par un autre swap (par exemple sur un fichier), nous devons supprimer l'ancien swap avec

sudo swapoff -a  # for all

Ensuite, supprimez l'entrée de /etc/fstabremplacement ou remplacez-la par le nouveau remplacement, respectivement.

Takkat
la source
1
Pourquoi ne voudriez-vous pas votre échange sur le SSD également?
Joseph Garvin
1
@JosephGarvin: comme l'usure n'est peut-être pas un problème, vous perdez encore beaucoup d'espace disque (coûteux) lors de la permutation sur SSD. En fonction de la mémoire RAM de votre système, il se peut que vous n’ayez pas besoin d’être échangé trop souvent. askubuntu.com/questions/178661/do-i-need-swap-with-new-ssd
Takkat le
1
Merci, comment vérifieriez-vous que le /etc/fstabfichier d'échange serait monté correctement sans avoir à redémarrer? Je ne peux pas voir le fichier d'échange si je le faismount -a && mount
Don Giulio
2
@ user72464 Pour afficher tous les échanges utilisés, nous pouvons les émettre swapon -s. Le swap disponible est également affiché sur free -h.
Takkat
1
@ user72464 Simple .. domount -a
heemayl