swap - andyceo/documentation GitHub Wiki

swap

swap - раздел или файл подкачки в Linux

Увеличиваем SWAP (создание файла подкачки на ФС ext4)

Протестировано на Ubuntu 16.04

  1. Создадим файл для использования в качестве подкачки:

     sudo fallocate -l 4G /swapfile
    
  2. Убедимся, что файл создан:

     ls -lh /swapfile
    
  3. Ограничим права на чтение/запись только для root:

     sudo chmod 600 /swapfile
    
  4. Проверим, что права теперь корректны:

     ls -lh /swapfile
    
  5. Скажем системе, что можно использовать файл /swapfile в качестве подкачки:

     sudo mkswap /swapfile
    
  6. Включим своппинг в этот файл:

     sudo swapon /swapfile
    
  7. Проверим, что своп расширился:

     sudo swapon -s
    
  8. Если мы хотим, чтобы этот файл постоянно использовался в качестве свопа, нужно прописать это в файле /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

Меняем размер текущему swap-разделу (LVM)

  1. Посмотрим текущую карту разделов диска:

     sudo fdisk -l /dev/sda
    
  2. Проверим, к какой группе LVM относится граничащий со swap раздел:

     sudo pvs
    
  3. Уберем этот раздел из группы:

     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 - новый размер в гигабайтах

  4. Уберем этот раздел из-под управления LVM:

     sudo pvremove /dev/sda6
    
  5. Проверим результат:

     sudo pvs
     sudo fdisk -l /dev/sda
    
  6. Отключим старый своп:

     sudo swapoff /dev/sda7
    
  7. Удалим граничащий со swap раздел (свободное место будет использоваться, чтобы увеличить раздел подкачки), а также и раздел свопа:

     sudo fdisk /dev/sda
    

    И далее в ручном режиме.

    Потом, нужно заново создать сначала граничащий со свопом раздел, но уже другого размера (/dev/sda6), потом на все оставшееся место создать swap-раздел (/dev/sda7). По умолчанию разделы создаются типа Linux filesystem, для свопа нужно тип поменять на Linux swap. Для граничащего раздела /dev/sda6 тип менять не надо, это позже сделает сам LVM, когда мы добавим этот физический том к LVM.

  8. Добавим граничащий со swap раздел /dev/sda6 обратно в LVM и в ту группу где он раньше был:

     sudo pvcreate /dev/sda6
     sudo vgextend virtual-group-name /dev/sda6
    
  9. Отформатируем своп-раздел:

     sudo mkswap /dev/sda7
    
  10. Задействуем новый своп-раздел:

    sudo swapon /dev/sda7
    
  11. Удостоверимся, что раздел задействован:

    sudo swapon -s
    
  12. Узнаем UUID свежесозданного раздела подкачки (нужно значение из поля UUID, не из поля PARTUUID):

    sudo blkid
    
  13. Изменим ID раздела свопа в файле /etc/fstab:

    sudo mcedit /etc/fstab
    
  14. Отключим своп-файл:

    sudo swapoff /swapfile
    
  15. Проверим корректность изменений в /etc/fstab (также см. fstab:

    sudo findmnt --verify --verbose
    
  16. Перезагрузим машину:

    sudo reboot
    

Хорошая статья на тему свопа: How To Add Swap on Ubuntu 14.04

⚠️ **GitHub.com Fallback** ⚠️