swap - andyceo/documentation GitHub Wiki
swap - раздел или файл подкачки в Linux
Протестировано на Ubuntu 16.04
-
Создадим файл для использования в качестве подкачки:
sudo fallocate -l 4G /swapfile
-
Убедимся, что файл создан:
ls -lh /swapfile
-
Ограничим права на чтение/запись только для root:
sudo chmod 600 /swapfile
-
Проверим, что права теперь корректны:
ls -lh /swapfile
-
Скажем системе, что можно использовать файл
/swapfile
в качестве подкачки:sudo mkswap /swapfile
-
Включим своппинг в этот файл:
sudo swapon /swapfile
-
Проверим, что своп расширился:
sudo swapon -s
-
Если мы хотим, чтобы этот файл постоянно использовался в качестве свопа, нужно прописать это в файле
/etc/fstab
:/swapfile none swap sw 0 0
Одной строкой:
fallocate -l 4G /swapfile && \
chmod 600 /swapfile && \
mkswap /swapfile && \
swapon /swapfile && \
swapon -s && \
echo "/swapfile none swap sw 0 0" >> /etc/fstab && \
reboot
-
Посмотрим текущую карту разделов диска:
sudo fdisk -l /dev/sda
-
Проверим, к какой группе LVM относится граничащий со swap раздел:
sudo pvs
-
Уберем этот раздел из группы:
sudo pvmove /dev/sda6 sudo vgreduce virtual-group-name /dev/sda6
!!! Внимание! Если вашей файловой системе, которая лежит на граничащем разделе, не хватит места после удаления раздела из группы, то сначала нужно изменить (уменьшить) размер файловой системы с помощью команды
resize2fs
! Т.е. последовательность команд будет такой:sudo resize2fs -p /dev/vg-your-virtual-group/your-logical-volume 20G sudo pvmove /dev/sda6 sudo vgreduce virtual-group-name /dev/sda6
где
20G
- новый размер в гигабайтах -
Уберем этот раздел из-под управления LVM:
sudo pvremove /dev/sda6
-
Проверим результат:
sudo pvs sudo fdisk -l /dev/sda
-
Отключим старый своп:
sudo swapoff /dev/sda7
-
Удалим граничащий со swap раздел (свободное место будет использоваться, чтобы увеличить раздел подкачки), а также и раздел свопа:
sudo fdisk /dev/sda
И далее в ручном режиме.
Потом, нужно заново создать сначала граничащий со свопом раздел, но уже другого размера (
/dev/sda6
), потом на все оставшееся место создать swap-раздел (/dev/sda7
). По умолчанию разделы создаются типаLinux filesystem
, для свопа нужно тип поменять наLinux swap
. Для граничащего раздела/dev/sda6
тип менять не надо, это позже сделает сам LVM, когда мы добавим этот физический том к LVM. -
Добавим граничащий со swap раздел
/dev/sda6
обратно в LVM и в ту группу где он раньше был:sudo pvcreate /dev/sda6 sudo vgextend virtual-group-name /dev/sda6
-
Отформатируем своп-раздел:
sudo mkswap /dev/sda7
-
Задействуем новый своп-раздел:
sudo swapon /dev/sda7
-
Удостоверимся, что раздел задействован:
sudo swapon -s
-
Узнаем
UUID
свежесозданного раздела подкачки (нужно значение из поляUUID
, не из поляPARTUUID
):sudo blkid
-
Изменим ID раздела свопа в файле
/etc/fstab
:sudo mcedit /etc/fstab
-
Отключим своп-файл:
sudo swapoff /swapfile
-
Проверим корректность изменений в
/etc/fstab
(также см. fstab:sudo findmnt --verify --verbose
-
Перезагрузим машину:
sudo reboot
Хорошая статья на тему свопа: How To Add Swap on Ubuntu 14.04