Добавить swap раздел в linux

Настраивал очередной новый VDS сервер. Обнаружил, что после установки из стандартного шаблона хостинга, сервер без swap файла. Мониторинг zabbix после установки ругается на отсутствие свопа. Не стал отключать триггер, решил быстро добавить своп, в принципе, он может пригодиться.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Инструкция подойдет практически к любому линуксу, не зависимо от версии. Для начала проверим, есть ли у нас swap раздел или нет:

# swapon -as

Если в выводе пусто, значит раздела нет.

Первым делом создаем файл для наших целей:

# dd if=/dev/zero of=/swap bs=1024 count=1000000

Размер файла 1Гб, равен объему памяти на сервере. Можно сделать и в 2 раза больше, но не вижу в этом необходимости. Вы выбирайте размер на свое усмотрение.

Форматируем файл в формат свопа:

# mkswap /swap

Подключаем файл к системе:

# chmod 0600 /swap
# swapon /swap

Проверяем результат работы:

добавление swap в linux

Все в порядке, раздел добавлен. Теперь нам нужно сделать так, чтобы swap раздел монтировался при загрузке. Для этого добавляем в fstab строку:

/swap swap swap defaults 0 0

Не забываем в конце файла сделать переход на новую строку. Сохраняем fstab, перезагружаемся и проверяем.

Если вдруг решите, что своп вам больше не нужен, отключить его так же просто, как и подключить:

# swapoff -a

Дальше можно удалять сам файл и вычищать его из fstab.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

24 комментария

  1. В заголовке создание раздела, а по факту создается файл.

  2. Аноним

    а не проще при установке не создать сразу раздел swap?

  3. #!/bin/bash
    dd if=/dev/zero of=/swap bs=1024 count=512000
    mkswap /swap
    chmod 0600 /swap
    swapon /swap
    if [ "$(grep '/swap' /etc/fstab)" ]; then
    echo "Error: file /etc/fstab already has 'Swap' record"
    else
    echo "Add Swap record to /etc/fstab"
    echo -e '\n/swap swap swap defaults 0 0' >> /etc/fstab
    fi
    swapon --show

    • Спасибо, вся статья в одном скрипте. Я руками все это делаю до сих пор :)

    • Доделал немного:

      #!/bin/bash
      
      read -p 'Enter swap size in megabytes: ' size_mb
      size_kb=$((1024*${size_mb}))
      dd if=/dev/zero of=/swap bs=1024 count=${size_kb}
      chmod 0600 /swap
      mkswap /swap
      swapon /swap
      if [ "$(grep '/swap' /etc/fstab)" ]; then
          echo "Error: file /etc/fstab already has 'Swap' record"
      else
          echo "Add Swap record to /etc/fstab"
          echo -e '\n/swap swap swap defaults 0 0' >> /etc/fstab
      fi
      swapon --show
  4. Алексей

    А можно ли изменить увеличить раздел swap, при этом уменьшив другой раздел без потери данных на VPS по ssh?

    • Теоретически можно, но я бы не советовал так делать. Когда наживую работаешь с таблицами разделов, всегда есть шанс, что что-то пойдет не так и данные потеряются. Я бы не рисковал.

  5. Несколько раз уже создавал swap по этой инструкции, но у меня вдруг возник вопрос: а на каком разделе будет создан swap-файл? и можно ли выбирать этот раздел при создании файла?

    • Конечно можно. В данном примере swap создается в корневом разделе /, потому что адрес указан как /swap. Но его создать можно где угодно, например /mnt/sdb/swap, если sdb это отдельный диск, смонтированный в /mnt/sdb.

  6. Разобрался и подключил своп в виде файла.
    Суть: команда swapon работает только с ключем -sa (-as выдает ошибку). (может быть это только у меня так, но на CentOS 7 проблем не замечал).
    Цитирую:
    "Для начала проверим, есть ли у нас swap раздел или нет:
    # swapon -as
    Если в выводе пусто, значит раздела нет."
    Ключ -a, как я понимаю, подключает все своп разделы, которые перечислены в /etc/fstab и по какой-то причине еще не активны?
    Для просмотра также можно использовать cat /proc/swaps (взято из http://manpages.ubuntu.com/manpages/cosmic/man8/swapon.8.html)

  7. Судя по переводчику, получаю "взаимоисключающие аргументы".
    Отдельно отрабатывают команды swapon -a / swapon-s

  8. Установил Debian 10. Пытаюсь проверить состояние своп-файла командой swapon -as, на выходе получаю:
    swapon: mutually exclusive arguments: --all --options --summary --show
    Далее делаю по инструкции и при попытке примонтировать своп-файл получаю ошибку:
    swapon: /swap: read swap header failed
    Все команды выполню от рута.

  9. Добрый вечер! Подскажите, пожалуйста, в чем проблема. Установила Debian 10 по Вашей инструкции на raid, хочу создать swap. При вводе команд swapon, mkswap, говорит команда не найдена. В чем проблема?

  10. также можно использовать команду
    # fallocate -l 2G /swapfile
    или нельзя?

  11. Андрей

    Нет ли ошибки в этой команде:
    /swap swap swap defaults 0 0 ?

    • Это не команда, это строка для файла fstab. Ошибки тут нет.
      Первая строка - файл для монтирования.
      Вторая - точка монтирования, для свапа она так и указывается swap
      Третья - тип файловой системы, в данном случае swap

      Дальше дефолтные настройки.

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar