Comment désactiver le swap?


83

J'ai des données sensibles en RAM que je préfère ne pas être sur le disque. Comment désactiver le swap? J'ai plus alors assez de bélier. Si le ram devient trop important, je n'ai aucun problème avec les processus en cours d'arrêt. Comment désactiver le swap?

Remarque: je n'ai pas de partition de swap et elle s'exécute sur une machine virtuelle (VMWare).

swap 

2
Même si vous avez beaucoup de RAM, ce n’est pas la meilleure idée de travailler complètement sans swap (voir par exemple alexonlinux.com/swap-vs-no-swap ). En fonction de vos besoins, vous pouvez envisager de placer la partition de swap sur un périphérique sécurisé dm-crypt, de sorte que tout ce qui y est écrit soit crypté. Dans ce cas, vous devez vous assurer que le swap est activé une fois que les volumes chiffrés sont disponibles et qu'il est désactivé avant que le mappage de périphérique ne soit désactivé (je pense que c'est par défaut sous Ubuntu, mais je ne suis pas sûr). Il suffit de chercher sur le Web «échange crypté» pour trouver de nombreux guides.
Soulsource

1
À propos: askubuntu.com/questions/248158/… Vous n'avez pas besoin d'échanger jusqu'à ce que vous en ayez besoin. Et puis vous en avez vraiment besoin.

Qu'en est-il d'un cryptswap? / dev / mapper / cryptswap1

Réponses:


121

En utilisant

sudo swapoff -a  

est le moyen habituel pour désactiver swap, avec la swapon -acommande utilisée pour le réactiver. Voir man swapoff pour plus d'informations sur la désactivation de l'échange pour les périphériques explicites.


7
Cela ne semble pas persister lors d'un redémarrage?
ebyrob

19
Les modifications permanentes d’échange sont généralement effectuées dans / etc / fstab.
ubfan1

Est-ce que nous copions simplement ceci dans / etc / fstab
Max

6
Non. Au lieu de cela, vous commentez la ligne de swap dans / etc / fstab.
Torsten Bronger

Vous pouvez lire dans d'autres réponses comment commenter.
Carolus

25

Vous pouvez désactiver le swap après le redémarrage en commentant simplement (en ajoutant # devant la ligne) l'entrée swap dans le /etc/fstabfichier. Cela empêchera la partition d'échange de monter automatiquement après un redémarrage. Pour faire cela en une seule commande:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

ou simplement:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

Votre entrée de swap /etc/fstabressemblera à ceci:

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

Avec vos propres chiffres et lettres minuscules au lieu des lettres "x".


2
Pourquoi votre UUID cité a-t-il des chiffres concrets? Devraient-ils être identiques pour tous les UUID? Les UUID de mes partitions ne coïncident pas avec les chiffres que vous avez spécifiés.
Ruslan,

Vos commandes sed ne fonctionnent pas si les champs sont séparés par des tabulations (pas d'espaces). Il vaut mieux écrire sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS: j’ai aussi ajouté #?pour éviter d’apporter des modifications supplémentaires à / etc / fstab lorsque la ligne est déjà désactivée.
Alek_A

4

Si vous êtes préoccupé par le contenu du swap, vous pouvez toujours le désactiver comme indiqué de la manière habituelle sudo swapoff -a, puis remplir le périphérique de swap avec des zéros ou des données aléatoires à l'aide de dd.

Commencez par utiliser le contenu de fstab pour trouver votre fichier d'échange ou votre périphérique ( less /etc/fstab)

Après l'avoir localisé et vérifié deux ou trois fois son emplacement, par exemple sda5 ou /swapfile (les partitions d'échange ont été remplacées par défaut par un fichier d'échange dans 17.04 et au-delà.) .

Dans le cas d'une partition ou d'un lecteur d'échange: (préfacé par / dev), exécutez la commande "destructeur de disque" (à ne pas utiliser à la légère)

sudo dd if=/dev/zero of=swapremplacer le mot swap par le périphérique de swap ou le fichier dans lequel vous vous trouvez/etc/fstab

faire sauter plein de zéros ou

sudo dd if=/dev/random of=swapremplacer à nouveau le swap de mot avec le périphérique de swap ou le fichier que vous avez situé dans/etc/fstab

faire sauter plein de données aléatoires.

Dans le cas d’un fichier swap (préfacé par un chemin uniquement): vous pouvez simplement supprimer le fichier avecrm /path/to/swapfile

La prochaine fois que vous activez l'échange avec

swapon -a

Le système l'utilisera volontiers à nouveau. Si vous avez beaucoup de RAM, vous n'avez peut-être pas besoin d'échange. Émettre la commande

free lorsque le système est soumis à une charge importante et voyez combien est utilisé pour prendre cette décision.

Si vous déterminez que vous n'avez définitivement pas besoin d'échange (pour l'hibernation ou toute autre chose), vous pouvez simplement commenter cette ligne dans fstab comme suggéré ici.

libre


3

C'est peut-être une solution boiteuse, mais je l'ai souvent utilisée. Vous pouvez simplement taper

sudo -s
crontab -e

Et ajouter

@reboot sudo swapoff -a  

Donc, il sera désactivé automatiquement au démarrage.


4
J'espère que cela va sans dire que c'est une très mauvaise méthode. Pourquoi créer une tâche de démarrage pour désactiver une autre option, alors qu’un autre fichier peut être édité pour empêcher son activation
immédiate

Peut-être pas aussi esthétique, mais il n’ya rien de pauvre. Si vous êtes déjà très habitué à utiliser crontab, cette solution simplifiera la tâche et lui donnera plus de sens que de simplement copier à l'aveuglette ce que d'autres utilisateurs de SE vous ont dit de faire avec / etc / fstab. Et, vous vous souviendrez toujours comment le faire sur un nouvel ordinateur sans avoir à exécuter à nouveau Google. Je ne sais même pas ce qu'est crontab et je suis beaucoup plus familier avec les partitions de disque, mais la logique est toujours valable.
Nicholas Pipitone

En fait, cela pourrait être la meilleure solution. Parce que les suggestions / etc / fstab ne fonctionnent que pour les partitions swap. Cette solution s’applique aux configurations linux, qu’elles utilisent ou non une partition ou un fichier d'échange.
Nicholas Pipitone

2
sudo swapoff -a

La commande ci-dessus désactive le swap uniquement pour une session en cours , vous devez commenter la partition de swap dans le fichier / etc / fstab . Pour ce faire, il vous suffit d'ajouter "#" (ligne de commentaire) au début de la ligne d'échange. Les étapes sont les suivantes:

  1. Ouvrez le fichier fstab, tapez sudo gedit /etc/fstabterminal.

Le contenu du fichier ressemblerait à ceci:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. Il suffit d’ajouter hash (#) au début de la ligne de partition d’échange, de sorte que la ligne se présente comme suit:

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. Redémarrez votre PC

0

Allez dans le terminal et exécutez la commande suivante : gnome-disks. Il n'est pas installé dans toutes les distributions. Si tel est le cas, suivez les instructions imprimées pour l’installer et réessayez. Recherchez un périphérique avec le mot "swap" dans le volet de gauche. Il a généralement la même taille que votre mémoire physique. Cliquez sur le bouton carré pour le désactiver. Authentifiez cette modification avec votre mot de passe root.

Capture d'écran: http://imgur.com/Og6igqb

Dans l'application Moniteur système (gnome-system-monitor), vous verrez qu'elle indique que la zone d'échange est «non disponible». La zone d'échange est désactivée mais pas supprimée. Vous pouvez l'activer facilement à nouveau à l'avenir. La suppression de l’espace de permutation n’a causé aucun dommage à mon système, mais vous créerez plus de travail si vous décidez de le récupérer (veille prolongée) à l’avenir.

edit: pour empêcher le montage au démarrage, vous devez aller dans "Modifier les options de montage ..." dans gnome-disks et décocher "Montage au démarrage".


1
Pensez-vous que cela répond aux préoccupations des utilisateurs quant à la présence de données sensibles sur la partition de swap? Peux-tu nous dire pourquoi?
Elder Geek

1
Le point principal de l'utilisateur était de savoir comment désactiver le swap. Si vous avez des données sensibles, vous devriez utiliser un cryptage de pré-démarrage idéalement.
user170544

1
Je suis respectueusement en désaccord. Lorsque je lis la question, la première phrase que je rencontre est la suivante: "J'ai des données sensibles en RAM que je préfère ne pas être sur le disque". Je crois que c'était sa principale préoccupation et c'est pourquoi il a commencé avec cela. Quoi qu'il en soit, je pense avoir couvert tous les aspects de sa question dans ma réponse. Considérez cela comme un exemple utile.
Elder Geek

0

Remplacez le defaultsavec par sw,noautodans la ligne qui consiste en l'entrée swap du fichier /etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(Le chemin /dev/mapper/centos-swapest probablement différent pour vous).

Maintenant, vérifiez la sortie après le redémarrage, votre swap n'est jamais monté:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.