Home » Полезные советы » Добавить swap раздел в linux

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

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.

Инструкция подойдет практически к любому линуксу, не зависимо от версии. Для начала проверим, есть ли у нас 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.

Онлайн курcы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курcы по программе, основанной на информации из официального курcа MikroTik Certified Network Associate. Помимо официальной программы, в курcах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте Курcы по ИТ. Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курcов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

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

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

Автор Zerox

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

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

  1. Аноним

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

  2. #!/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
  3. Алексей

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

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

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

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

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

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

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

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

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

  10. Андрей

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

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

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

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

Ваш адрес email не будет опубликован.

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