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

Материал из ALT Linux Wiki
Нет описания правки
Строка 86: Строка 86:
#:[[Файл:Swapfile-create-9.png]]
#:[[Файл:Swapfile-create-9.png]]
=== Удаление файла подкачки ===
=== Удаление файла подкачки ===
 
#Перед удалением сначала необходимо отключить использование swap:
Перед удалением сначала необходимо отключить использование swap:
#:<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# swapoff /swapfile
# swapoff /swapfile
</syntaxhighlight>
</syntaxhighlight>
После можно удалить файл:
#:[[Файл:Swapfile-delete-2.png]]
<syntaxhighlight lang="bash">
#После можно удалить файл:
#:<syntaxhighlight lang="bash">
# rm /swapfile
# rm /swapfile
</syntaxhighlight>
</syntaxhighlight>
 
#:[[Файл:Swapfile-delete-3.png]]
[[Файл:Swap file remove.png]]
#Так же необходимо отключить автоматическое монтирование.
 
#:Для этого от суперпользователя в текстовом редакторе открываем ''/etc/fstab''...
Так же необходимо отключить автоматическое монтирование. Открыть ''/etc/fstab'' и удалить ранее внесённую строку:
#:<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# mcedit /etc/fstab
</syntaxhighlight>
#:[[Файл:Swapfile-delete-4.png]]
#И удаляем строчку о монтировании swap-файла.
#:[[Файл:Swapfile-delete-5.png]]
#:<syntaxhighlight lang="bash">
  /swapfile none swap sw 0 0
  /swapfile none swap sw 0 0
</syntaxhighlight>
</syntaxhighlight>
Сохранить изменения и проверить ''fstab'':
#:[[Файл:Swapfile-delete-6.png]]
<syntaxhighlight lang="bash">
#Сохранить изменения клавишей {{button|F2}}, выходим {{button|F6}} и проверяем ''fstab'':
#:<syntaxhighlight lang="bash">
  # findmnt --verify
  # findmnt --verify
</syntaxhighlight>
</syntaxhighlight>
В выводе не должно быть ошибок:
#:В выводе не должно быть ошибок:
<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
  Success, no errors or warnings detected
  Success, no errors or warnings detected
</syntaxhighlight>
</syntaxhighlight>
#:[[Файл:Swapfile-delete-7.png]]
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}

Версия от 19:21, 7 ноября 2023

Примечание: Данная инструкция подходит только для дисков с файловой системой ext2/3/4

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

В Linux используется два варианта области подкачки:

  • В виде раздела на накопителе.
  • В виде файла.

В современных условиях предпочтительнее использовать swap в виде файла.

Особенности swap-файла:

  • Можно легко изменять размер или полностью удалить, что затруднительно для варианта в виде раздела.
  • В сравнении со swap-разделом есть незначительное снижение производительности.
  • Для использования гибернации требуется дополнительная подготовка (получение UUID и смещения заголовка) и пересоздание загрузочного образа initrd.

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

  1. Все дальнейшие операции необходимо выполнять с правами суперпользователя:
    $ su -
    
    Swapfile-create-1.png
  2. Удостоверьтесь, что swap отсутствует:
     # swapon --show
    
    Вывод должен быть пустой.
    Swapfile-create-2.png
  3. Начиная с ядра Linux 5.7, согласно документации mkswap, для достижения "монолитности" заполнения пространства файла в файловой системе, swap-файл следует создавать с помощь утилиты dd:
     # dd if=/dev/zero of=/swapfile bs=4M count=1024 status=progress
    
    Swapfile-create-4.png
    Пояснения:
    • if=/dev/zero — это виртуальное устройство, генерирующее нулевые байты. Из него будет браться поток нулей и записываться в файл.
    • of=/swapfile — создаваемый и наполняемый нулями swap-файл.
    • bs=4M — размер порции данных в мегабайтах.
    • count=1024 — число порций данных, которые будут записаны в указанный файл. В виду того, что требуется записать 4096 МБ данных, то при размере порции 4 МБ необходимо 1024 порции.
    • status=progress — показывать ход прогресса операции.
  4. В целях безопасности необходимо ограничить права, чтобы другие пользователи не могли взаимодействовать с файлом:
     # chmod 600 /swapfile
    
    Тем самым право на чтение и запись будет только у суперпользователя, а всем остальным — запрещено всё:
     $ ls -l /swapfile
    
    Вывод:
     -rw------- 1 root root 4294963200 июл  6  2020 /swapfile
    
    Swapfile-create-5.png
  5. Вместо нулей создать внутри swap-файла специальную файловую систему swap:
     # mkswap /swapfile
    
    Вывод:
     Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
     без метки, UUID=2dd19e70-e9aa-4226-aa04-41e1206ede28
    
    Swapfile-create-6.png
  6. Остаётся активировать подготовленный swap-файл:
     # swapon /swapfile
    
    После активации swap-файла мы можем проверить его наличие командой:
     # swapon --show
    
    Swapfile-create-7.png
  7. С тем учётом, что созданный swap включен вручную в рамках активной сессии, он будет работать только до перезапуска сессии (перезагрузки системы). Для постоянной работы необходимо прописать автоматическое монтирование в /etc/fstab:
     # echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
    
    Пояснения:
    • tee -a /etc/fstab — добавить запись в конец файла без перезаписывания существующих записей.
    Swapfile-create-8.png
  8. Проверить правильность заполнения fstab:
     # findmnt --verify
    
    В выводе не должно быть ошибок, кроме предупреждения, что файл используется напрямую без привязки (bind):
     none
        [W] non-bind mount source /swapfile is a directory or regular file
     0 parse errors, 0 errors, 1 warning
    
    Swapfile-create-9.png

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

  1. Перед удалением сначала необходимо отключить использование swap:
    # swapoff /swapfile
    
    Swapfile-delete-2.png
  2. После можно удалить файл:
    # rm /swapfile
    
    Swapfile-delete-3.png
  3. Так же необходимо отключить автоматическое монтирование.
    Для этого от суперпользователя в текстовом редакторе открываем /etc/fstab...
    # mcedit /etc/fstab
    
    Swapfile-delete-4.png
  4. И удаляем строчку о монтировании swap-файла.
    Swapfile-delete-5.png
     /swapfile none swap sw 0 0
    
    Swapfile-delete-6.png
  5. Сохранить изменения клавишей F2, выходим F6 и проверяем fstab:
     # findmnt --verify
    
    В выводе не должно быть ошибок:
     Success, no errors or warnings detected
    
    Swapfile-delete-7.png