Использование swap-файла вместо swap-раздела в Linux.

21. июля 2020 Linux 0

Общая информация о страницах подкачки.

Преимущества использования swap-файла:

  • Можно легко изменить размер при необходимости.
  • Можно перемещать между разделами.

Недостатки:

  • На момент 2020 года файловая система btrfs поддерживается с значительными ограничениями. Поддержка введена в ядро Linux, начиная с версии 5.0.
  • Незначительно медленнее, чем отдельным разделом.

Создание swap-файла.

Начиная с ядра версии 5.7, необходимо создавать swap-файл с помощью утилиты dd. Подробнее по ссылкам:
https://wiki.archlinux.org/index.php/Swap#Swap_file
https://bugs.archlinux.org/task/66979

Команда на создание файла размером 8192 мегабайта в корневом разделе и с именем swapfile:

sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress

Примечание: Пересоздание swap-файла указанным способом решает проблему «swapon: swapfile has holes».

Далее необходимо в файле /swapfile создать файловую систему, активировать swap и в /etc/fstab указать монтирование.

Подготовка и активация swap-файла.

Сначала нужно ограничить доступ к файлу всем, кроме суперпользователя:

sudo chmod 600 /swapfile

Можно читать и записывать, но не выполнять.

Создание файловой системы в swap-файле:

sudo mkswap /swapfile

Для созданной файловой системы будет присвоен UUID, но после перезагрузки swap не подключится, поэтому в /etc/fstab придётся указать абсолютный путь /swapfile. Да, именно абсолютный путь, а не UUID. В этом состоит важный нюанс.

Добавить запись о монтировании swapfile в /etc/fstab:

echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab

tee -a — означает добавить запись в файл без перезаписывания существующих записей. Запись будет произведена после крайней строки.

Визуально проверить правильность внесения записи:

cat /etc/fstab

Пример вывода:

Проверка корректности fstab утилитой findmnt:

sudo findmnt --verify

Пример вывода:

Вывод указывает, что файл заполнен правильно. При этом предупреждение «non-bind mount source» следует игнорировать, так как нам нужен именно файл, а не раздел.

Активация использования swap-файла:

sudo swapon /swapfile

Проверить подключился ли swap:

swapon --show

В выводе терминала будет отображено имя swap-файла и его размер.

Альтернативный вариант:

free -h

В строке «Подкачка» должно быть указано значение, равное ранее выделенному объёму созданного swap-файла.

По подключению swap-файла на этом всё.

Отключение swap.

Если требуется изменить размер или удалить swap-файл, то сначала его необходимо отключить:

sudo swapoff /swapfile

Эта команда так же отключает swap в виде раздела.

Удалить можно стандартной командой:

sudo rm /swapfile

После удаления не забыть убрать запись в /etc/fstab.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *