Как увеличить swapfile или файл/раздел подкачки
- Узнай название своего swap раздела, если он есть:
sudo swapon --show
- Отключи его:
sudo swapoff /dev/nvme0n1p3
- Удали/закомментируй запись о нем в
/etc/fstab
:sudo hx /etc/fstab
Смотри главу ниже
- Через
fdisk
илиgparted
(GUI) удали этот раздел и (после удаления) присоедини неразмеченное пространство (unallocated space) к основному разделу. - Создай новый swapfile:
sudo fallocate --length 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile
- Включи его:
sudo swapon /swapfile
- Добавь запись о нем в
/etc/fstab
:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Проверь, что он включен:
sudo swapon --show free -h
- Перезагружайся и убедись, что всё работает (командами выше; + тот же
htop
показывает swapfile usage).
После изменения swapfile ядро долго грузится
Может понадобиться закомментировать старую запись о swapfile в /etc/initramfs-tools/conf.d/resume
, ибо при загрузке kernel будет обращаться к swapfile из этого файла и ждать ответа (это нужно для гибернации - swapfile тоже используется для нее). В итоге, kernel не дождется ответа, увеличивая при этом время загрузки ядра (с 2 секунд может увеличиться до 20-30…), и потом, перестав ждать, запишет в /var/log/boot.log
такую запись:
Gave up waiting for suspend/resume device
Поэтому comment old shi:
# RESUME=UUID=93421634-0358-45e5-9390-d4b7c7e2572d
И если тебе нужна гибернация, добавь запись о новом swapfile. Для этого нужно узнать UUID твоего swapfile:
sudo findmnt -no UUID -T /swapfile
Потом этот UUID используй в новой записи:
# RESUME=UUID=a26b721f-21af-4695-aa09-a5c0f2e02c08
# можешь воспользоваться этой командой:
echo "RESUME=UUID=$(sudo findmnt -no UUID -T /swapfile)"
Итог:
# RESUME=UUID=93421634-0358-45e5-9390-d4b7c7e2572d
RESUME=UUID=a26b721f-21af-4695-aa09-a5c0f2e02c08
И обнови initramfs
для всех установленных версий ядра (-k all
):
sudo update-initramfs -u -k all
Перезагружайся и увидишь здоровое поведение системы.