Swap: различия между версиями

Материал из ALT Linux Wiki
(Отмена правки 54616, сделанной Petr-akhlamovА можно не ставить картинки по центру?Попробуйте посмотреть ст. на широком экране)
Метка: отмена
(Актуализация статьи согласно "man mkswap" и дополнительные пояснения для улучшения понимания происходящего.)
Строка 1: Строка 1:
=== Создание, активирование и удаление Swap-файла ===
Файл подкачки (swap-файл) — это специальный системный файл, который создается операционной системой на накопителе с целью резервирования свободного пространства, которое может быть задействовано при нехватке ОЗУ.


Файл подкачки (swap-файл) - это специальный системный файл, который создается операционной системой на жестком диске компьютера с целью резервирования свободного пространства для дальнейшего его использования при необходимости.
=== Создание swap-файла ===


== Создание swap-файла ==
Все дальнейшие операции необходимо выполнять с правами суперпользователя:
 
Для начала, откроем терминал и зайдем под супер пользователем:
  su-
  su-


Чтобы посмотреть сколько занято файлом подкачки:
Удостовериться, что swap отсутствует:
 
  swapon --show
  free -h
Вывод должен быть пустой.


Если в операционной системе отсутсвует файл подкачки, в разделе /swapfile вы увидите нули.
Начиная с ядра Linux 5.7, согласно документации ''mkswap'', для достижения "монолитности" заполнения пространства файла в файловой системе, swap-файл следует создавать с помощь утилиты ''dd'':
dd if=/dev/zero of=/swapfile bs=4M count=1024 status=progress


Для примера, мы будем создавать файл подкачки на 4ГБ. Нам необходимо зайти в терминал под супер пользователем и ввести команду:
Пояснения:
* ''if=/dev/zero'' — это виртуальное устройство, генерирующее нулевые байты. Из него будет браться поток нулей и записываться в файл.
fallocate -l 4G /swapfile
* ''of=/swapfile'' — создаваемый и наполняемый нулями swap-файл.
* ''bs=4M'' — размер порции данных в мегабайтах.
* ''count=1024'' — число порций данных, которые будут записаны в указанный файл. В виду того, что требуется записать 4096 МБ данных, то при размере порции 4 МБ необходимо 1024 порции.
* ''status=progress'' — показывать ход прогресса операции.


[[Файл:Файл подкачки.png]]
В целях безопасности необходимо ограничить права, чтобы другие пользователи не могли взаимодействовать с файлом:
 
* Красная стрелка указывает на значение (в нашем случае 4ГБ) которое можно изменить, в зависимости от того, сколько гигабайт Вам необохдимо.
 
Далее, нам необходимо установить на него права:
  chmod 600 /swapfile
  chmod 600 /swapfile
Тем самым право на чтение и запись будет только у суперпользователя, а всем остальным — запрещено всё:
ls -l /swapfile
Вывод:
-rw------- 1 root root 4294963200 июл  6  2020 /swapfile


[[Файл:Chmod swap.png]]
Вместо нулей создать внутри swap-файла специальную файловую систему ''swap'':
 
Теперь необходимо указать нашей операционной системе, что созданный объект должен использоваться как файл подкачки. Для этого мы будем использовать команду:  
 
  mkswap /swapfile
  mkswap /swapfile


* Результат должен выглядеть как на скриншоте внизу:
Вывод:
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=2dd19e70-e9aa-4226-aa04-41e1206ede28


[[Файл:Swap file2.png]]
Остаётся активировать подготовленный swap-файл:
 
Теперь нам необходимо включить swap командой:
  swapon /swapfile
  swapon /swapfile


 
После активации swap-файла мы можем проверить его наличие командой:
После активации swap-файла мы можем проверить его наличие командой:  
 
  swapon --show
  swapon --show


[[Файл:Swap file3.png]]
[[Файл:Swap file3.png]]


* Чтобы наш файл подкачки не устранился после перезагрузки операционной системы, нам необходимо дать команду:
С тем учётом, что созданный swap включен вручную в рамках активной сессии, он будет работать только до перезапуска сессии (перезагрузки системы). Для постоянной работы необходимо прописать автоматическое монтирование в ''/etc/fstab'':
 
  echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
  echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
Пояслнения:
* tee -a /etc/fstab — добавить запись в конец файла без перезаписывания существующих записей.


Проверить правильность заполнения ''fstab'':
findmnt --verify
В выводе не должно быть ошибок:
Success, no errors or warnings detected


== Удаление файла подкачки ==
=== Удаление файла подкачки ===
 
Для того, чтобы удалить файл подкачки, нам нужно дать команду:


Перед удалением сначала необходимо отключить использование swap:
  swapoff /swapfile
  swapoff /swapfile


И
После можно удалить файл:
  rm /swapfile
  rm /swapfile


[[Файл:Swap file remove.png]]
[[Файл:Swap file remove.png]]


 
Так же необходимо отключить автоматическое монтирование. Открыть ''/etc/fstab'' и удалить ранее внесённую строку:
/swapfile none swap sw 0 0
Сохранить изменения и проверить ''fstab'':
findmnt --verify
В выводе не должно быть ошибок:
Success, no errors or warnings detected


{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}

Версия от 18:18, 22 мая 2023

Файл подкачки (swap-файл) — это специальный системный файл, который создается операционной системой на накопителе с целью резервирования свободного пространства, которое может быть задействовано при нехватке ОЗУ.

Создание swap-файла

Все дальнейшие операции необходимо выполнять с правами суперпользователя:

su-

Удостовериться, что swap отсутствует:

swapon --show

Вывод должен быть пустой.

Начиная с ядра Linux 5.7, согласно документации mkswap, для достижения "монолитности" заполнения пространства файла в файловой системе, swap-файл следует создавать с помощь утилиты dd:

dd if=/dev/zero of=/swapfile bs=4M count=1024 status=progress

Пояснения:

  • if=/dev/zero — это виртуальное устройство, генерирующее нулевые байты. Из него будет браться поток нулей и записываться в файл.
  • of=/swapfile — создаваемый и наполняемый нулями swap-файл.
  • bs=4M — размер порции данных в мегабайтах.
  • count=1024 — число порций данных, которые будут записаны в указанный файл. В виду того, что требуется записать 4096 МБ данных, то при размере порции 4 МБ необходимо 1024 порции.
  • status=progress — показывать ход прогресса операции.

В целях безопасности необходимо ограничить права, чтобы другие пользователи не могли взаимодействовать с файлом:

chmod 600 /swapfile

Тем самым право на чтение и запись будет только у суперпользователя, а всем остальным — запрещено всё:

ls -l /swapfile

Вывод:

-rw------- 1 root root 4294963200 июл  6  2020 /swapfile

Вместо нулей создать внутри swap-файла специальную файловую систему swap:

mkswap /swapfile

Вывод:

Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=2dd19e70-e9aa-4226-aa04-41e1206ede28

Остаётся активировать подготовленный swap-файл:

swapon /swapfile

После активации swap-файла мы можем проверить его наличие командой:

swapon --show

Swap file3.png

С тем учётом, что созданный swap включен вручную в рамках активной сессии, он будет работать только до перезапуска сессии (перезагрузки системы). Для постоянной работы необходимо прописать автоматическое монтирование в /etc/fstab:

echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

Пояслнения:

  • tee -a /etc/fstab — добавить запись в конец файла без перезаписывания существующих записей.

Проверить правильность заполнения fstab:

findmnt --verify

В выводе не должно быть ошибок:

Success, no errors or warnings detected

Удаление файла подкачки

Перед удалением сначала необходимо отключить использование swap:

swapoff /swapfile

После можно удалить файл:

rm /swapfile

Swap file remove.png

Так же необходимо отключить автоматическое монтирование. Открыть /etc/fstab и удалить ранее внесённую строку:

/swapfile none swap sw 0 0

Сохранить изменения и проверить fstab:

findmnt --verify

В выводе не должно быть ошибок:

Success, no errors or warnings detected