Назад | Перейти на главную страницу

Лучший способ отключить свопинг в Linux

Я использую скомпилированное ядро ​​3.18.9, и мне интересно, как лучше всего отключить свопинг в системе. Я также использую init, если это имеет значение.

Достаточно ли прокомментировать или удалить строку подкачки в /etc/fstab чтобы своп не работал / монтировался при загрузке, или я должен перекомпилировать ядро ​​без Support for paging of anonymous memory (swap) быть уверенным на 100%, что он не включается?

Я запускаю зашифрованные разделы и хочу предотвратить случайную утечку на жесткий диск. Технические характеристики моей системы также достаточно хороши, чтобы я мог выжить в среде без подкачки.

  1. Определите настроенные устройства подкачки и файлы с cat /proc/swaps.
  2. Отключите все устройства и файлы подкачки с помощью swapoff -a.
  3. Удалите все совпадающие ссылки, найденные в /etc/fstab.
  4. По желанию: Уничтожьте все устройства или файлы подкачки, найденные на шаге 1, чтобы предотвратить их повторное использование. Из-за вашего беспокойства по поводу утечки конфиденциальной информации вы можете рассмотреть возможность выполнения какой-либо безопасной очистки.

обмен людьми

Раньше меняли только разделы подкачки в /etc/fstab использовались автоматически, однако systemd может это немного изменить. Возможно, вам потребуется сделать:

systemctl mask dev-sdXX.swap

(измените sdXX) на ваш настоящий форматированный раздел подкачки, что вызывает вопрос, почему у вас есть раздел подкачки, если вы не хотите, чтобы он использовался ...

Если вы не используете systemd, то удалите записи подкачки из /etc/fstab должно хватить (насколько я знаю).

Возможно, реальное решение - избавиться от разделов подкачки, чтобы они не использовались случайно. Чтобы удалить разделы подкачки, я бы использовал fdisk, чтобы изменить тип раздела с подкачки на другой, а затем переформатировать раздел или использовать: dd if=/dev/zero of=/dev/old-swap-partition чтобы обнулить его и предотвратить его использование.

Смотрите также Настройте использование раздела подкачки с помощью systemd.

Если вы действительно уверены, что хотите отключить подкачку (примечание: это не рекомендуется, даже если вы почти уверены, что физической памяти более чем достаточно), выполните следующие действия:

  1. бегать swapoff -a: это немедленно отключит своп
  2. удалить любую запись свопа из /etc/fstab
  3. reboot система. Если своп пропал, хорошо. Если по какой-то причине он все еще здесь, вам пришлось удалить раздел подкачки. Повторите шаги 1 и 2, а затем используйте fdisk или parted чтобы удалить (теперь неиспользуемый) раздел подкачки. Будьте осторожны здесь: удаление неправильного раздела будет иметь катастрофические последствия!
  4. reboot

На Распбиан 10 (Бастер) чистый ответ был бы:

Чтобы отключить это до следующей перезагрузки, как указано в */etc/fstab*:

sudo /sbin/dphys-swapfile swapoff

Чтобы отключить подкачку при загрузке:

sudo systemctl disable dphys-swapfile

(Оказывается, я нигде не мог найти эту информацию ...)

На моем Linux Mint коробка (версия 19.3 (Tricia), на базе Ubuntu 18.04 (Bionic Beaver)) без раздела подкачки или вообще без подкачки, systemctl сообщал, что swapfile.swap сбой при каждом запуске. Его можно было отключить командой:

sudo systemctl disable swapfile.swap

Swapfile.swap - это «особая» часть systemd, о которой вы можете прочитать в man, используя man systemd.special команда.

Когда я смотрю / etc / fstab файл на Raspbian я вижу комментарий, говорящий

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

Но чтобы полностью отключить предварительно настроенный файл подкачки, это отлично работает:

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

Мне это решение кажется немного быстрым и грязным, однако вы можете просто включить его снова:

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