web-dev-qa-db-fra.com

Le meilleur moyen de désactiver le swap sous Linux

J'utilise un noyau 3.18.9 compilé personnalisé et je me demande quelle est la meilleure façon de désactiver le swap sur le système. J'utilise également init si cela fait une différence.

Est-il suffisant de commenter ou de supprimer la ligne de swap dans /etc/fstab Pour empêcher le swap de fonctionner/monter au démarrage ou dois-je recompiler le noyau sans Support for paging of anonymous memory (swap) pour être sûr à 100% qu'il ne soit pas activé ?

J'exécute des partitions chiffrées et je veux éviter les fuites accidentelles sur le disque dur. Les spécifications de mon système sont également suffisamment importantes pour que je puisse survivre dans un environnement sans échange.

57
user283167
  1. Identifiez les périphériques et fichiers d'échange configurés avec cat /proc/swaps.
  2. Désactivez tous les périphériques et fichiers d'échange avec swapoff -a.
  3. Supprimez toute référence correspondante trouvée dans /etc/fstab.
  4. Facultatif: Détruisez tous les périphériques ou fichiers d'échange trouvés à l'étape 1 pour empêcher leur réutilisation. En raison de vos préoccupations concernant la fuite d'informations sensibles, vous souhaiterez peut-être envisager d'effectuer une sorte de nettoyage sécurisé.

homme swapoff

85
Aaron Copley

Si vous êtes vraiment sûr de vouloir désactiver l'échange (remarque: ceci n'est pas recommandé, même lorsque vous êtes à peu près sûr que le physique RAM est plus que suffisant), procédez comme suit:

  1. courir swapoff -a: cela désactivera immédiatement le swap
  2. supprimer toute entrée d'échange de /etc/fstab
  3. reboot le système. Si l'échange est parti, tant mieux. Si, pour une raison quelconque, il est toujours là, vous avez dû supprimer la partition de swap. Répétez les étapes 1 et 2 et, après cela, utilisez fdisk ou parted pour supprimer la partition de swap (désormais inutilisée). Faites très attention ici: supprimer la mauvaise partition aura des effets désastreux!
  4. reboot
11
shodanshok

Auparavant, seules les partitions échangées dans /etc/fstab ont été utilisés automatiquement, cependant, systemd peut changer cela légèrement. Vous devrez peut-être faire:

systemctl mask dev-sdXX.swap

(changez sdXX) en votre véritable partition d'échange formatée, ce qui pose la question de savoir pourquoi vous avez une partition d'échange si vous ne voulez pas qu'elle soit utilisée ...

Si vous n'utilisez pas systemd, supprimez les entrées de swap de /etc/fstab devrait être suffisant (pour autant que je sache).

Peut-être que la vraie solution est de se débarrasser des partitions de swap, afin qu'elles ne soient pas utilisées accidentellement. Pour supprimer les partitions de swap, j'utiliserais fdisk pour changer le type de partition de swap en quelque chose d'autre, puis reformater la partition ou utiliser: dd if=/dev/zero of=/dev/old-swap-partition pour le mettre à zéro et empêcher son utilisation.

Voir aussi Configurer l'utilisation de la partition de swap avec systemd.

11
Gregor

Sur Raspbian 1 (Buster), la réponse propre serait:

Pour le désactiver jusqu'au prochain redémarrage , comme indiqué dans */etc/fstab*:

Sudo /sbin/dphys-swapfile swapoff

Pour désactiver l'échange au démarrage:

Sudo systemctl disable dphys-swapfile

(Il s'avère que je n'ai trouvé cette information nulle part ...)

2
Michaël GENAY

Sur mon Linux Mint box (version 19.3 (Tricia), basé sur buntu 18.04 (Bionic Beaver)) sans partition de swap ou sans aucun swap du tout, systemctl a signalé que swapfile .swap a échoué à chaque démarrage. Il pourrait être désactivé avec la commande:

Sudo systemctl disable swapfile.swap

Le swapfile.swap est une partie "spéciale" de systemd, que vous pouvez lire sur man, en utilisant le man systemd.special commande.

1
piotao

Lorsque je consulte le fichier / etc/fstab sur Raspbian, je vois un commentaire disant

a swapfile is not a swap partition, no line here
  use dphys-swapfile swap[on|off] for that

Mais pour désactiver complètement le fichier d'échange préconfiguré, cela fonctionne parfaitement:

swapoff -a
chmod -x /etc/init.d/dphys-swapfile
reboot

Cette solution me semble un peu rapide et sale, mais vous pouvez simplement la réactiver avec:

chmod +x /etc/init.d/dphys-swapfile
reboot
0
Ilka31415