3
февраль
2022
15:46

Создание в Linux файла подкачки (SWAP) в виде файла в корне (/) диска

3 февраль 2022 15:46

В Windows можно изменять размер файла подкачки. чего не скажешь про Linux - при начальной разметке диска создается раздел SWAP фиксированного размера. Это совсем не удобно, т.к. нельзя изменить размер файла подкачки. Решение следующее - реализовать файл подкачки в виде файла "swapfile" в корне диска.

Первоначальная проблема была косвенно связана с файлом подкачки - команда проверки fsck выдавала ошибку "fsck: /etc/fstab: ошибка синтаксического разбора в строке 11" и завершала работу.

Пришлось удалять строку 11, в которой был указан UUID диска, где располагался файл подкачки.
Но без файла подкачки работать нельзя.

Команда

free -m

должна показывать, что файл подкачки используется (вторая строка):

всего занято свободно общая буф./врем. доступно
Память: 2974 815 1039 54 1119 1943
Подкачка: 2047 0 2047

В ходе решения этой проблемы нашёл интересный способ улучшение работы Linux - создание файла подкачки в виде файла в "корне" диска. Преимущества способа: более надёжная работа (при подключении через fstab основного раздела автоматически подключается swap) и возможность простого изменения размера файла подкачки. При использовании же SSD дисков совсем не важно, по критерию скорости, где физически располагается файл подкачки - в начале диски или конце.

Команды следующие:

1) Перезагружаем компьютер. В начальном меню GRUB2 выбираем "Дополнительные параметры системы" - "root",
вводим пароль и попадаем в командную строку суперпользователя (#).

2) Создание пустого файла для файла подкачки в корне диска (для размера SWAP-файла 2 Гб команда следующая)
и назначение прав, включение SWAP:

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

3) Чтобы этот файл использовался при загрузке системы, редактируем файл /etc/fstab.

Старую строку относящуюся к SWAP, следует удалить (CTRL+ K), вместо неё добавить следующую:

/swapfile none swap defaults 0 0

4) Выполняю команду на обновление ядра системы:

sudo update-initramfs -u

5) Выполняем перезагрузку.

shutdown -rF now

Теперь в системной программе "gparted" можно удалить раздел "swap": он больше не используется! Расширяем основной раздел "/" или домашний раздел "/home" (Правая кнопка мыши - Изменить размер | Переместить) за счёт свободного пространства от бывшего раздела "swap".


Для проверки fsck всего рабочего диска, с которого запускается операционная система:

sudo touch /forcefsck

Отправляем компьютер на перезагрузку. Если в файловой системе EXT4 проблемы, произойдет проверка и устранение при следующем запуске:

shutdown -rF now

Чтобы изменить размер SWAP в дальнейшем - достаточно загрузиться в "Дополнительные параметры восстановления", снова перейти к пункту root, удалить файл

swapoff /swapfile
rm /swapfile

и повторить команды из пункта 2 выше, но с другим размером файла подкачки, например, для 4 Гб:

dd if=/dev/zero of=swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Проверка:

free -m


Похожие публикации