Swap
Версия от 19:13, 7 ноября 2023; Petr-akhlamov (обсуждение | вклад)
Примечание: Данная инструкция подходит только для дисков с файловой системой ext2/3/4
swap — это специальная системная область, предварительно выделенная на накопителе (жёстком диске) и используемая операционной системой с целью резервирования свободного пространства, которое может быть задействовано при нехватке ОЗУ.
В Linux используется два варианта области подкачки:
- В виде раздела на накопителе.
- В виде файла.
В современных условиях предпочтительнее использовать swap в виде файла.
Особенности swap-файла:
- Можно легко изменять размер или полностью удалить, что затруднительно для варианта в виде раздела.
- В сравнении со swap-разделом есть незначительное снижение производительности.
- Для использования гибернации требуется дополнительная подготовка (получение UUID и смещения заголовка) и пересоздание загрузочного образа initrd.
Создание swap-файла
- Все дальнейшие операции необходимо выполнять с правами суперпользователя:
- Удостоверьтесь, что swap отсутствует:
- Начиная с ядра Linux 5.7, согласно документации mkswap, для достижения "монолитности" заполнения пространства файла в файловой системе, swap-файл следует создавать с помощь утилиты dd:
# dd if=/dev/zero of=/swapfile bs=4M count=1024 status=progress
- Пояснения:
- if=/dev/zero — это виртуальное устройство, генерирующее нулевые байты. Из него будет браться поток нулей и записываться в файл.
- of=/swapfile — создаваемый и наполняемый нулями swap-файл.
- bs=4M — размер порции данных в мегабайтах.
- count=1024 — число порций данных, которые будут записаны в указанный файл. В виду того, что требуется записать 4096 МБ данных, то при размере порции 4 МБ необходимо 1024 порции.
- status=progress — показывать ход прогресса операции.
- В целях безопасности необходимо ограничить права, чтобы другие пользователи не могли взаимодействовать с файлом:
- Вместо нулей создать внутри swap-файла специальную файловую систему swap:
- Остаётся активировать подготовленный swap-файл:
- С тем учётом, что созданный swap включен вручную в рамках активной сессии, он будет работать только до перезапуска сессии (перезагрузки системы). Для постоянной работы необходимо прописать автоматическое монтирование в /etc/fstab:
- Проверить правильность заполнения fstab:
Удаление файла подкачки
Перед удалением сначала необходимо отключить использование swap:
# swapoff /swapfile
После можно удалить файл:
# rm /swapfile
Так же необходимо отключить автоматическое монтирование. Открыть /etc/fstab и удалить ранее внесённую строку:
/swapfile none swap sw 0 0
Сохранить изменения и проверить fstab:
# findmnt --verify
В выводе не должно быть ошибок:
Success, no errors or warnings detected