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.
cat /proc/swaps
.swapoff -a
./etc/fstab
.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:
swapoff -a
: cela désactivera immédiatement le swap/etc/fstab
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!reboot
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.
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 ...)
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.
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