Создание и активация файла подкачки в Linux

CompTIABeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы освоите важный навык системного администрирования — создание и активацию файла подкачки (swap-файла) в Linux. Этот механизм позволяет расширить виртуальную память системы, что критически важно в ситуациях, когда физической оперативной памяти (RAM) становится недостаточно. Вы получите практический опыт работы с базовыми утилитами командной строки для эффективного управления ресурсами, что является гибкой альтернативой созданию выделенного раздела подкачки на диске.

Вы пройдете через весь рабочий процесс: начнете с анализа текущего состояния пространства подкачки с помощью команды swapon. Затем вы создадите файл нужного размера с помощью dd, отформатируете его для использования в качестве области подкачки через mkswap и активируете его. В завершение работы вы проверите, что новый файл подкачки успешно настроен и распознан системой.

Просмотр текущего пространства подкачки с помощью swapon

На этом этапе вы научитесь проверять текущую конфигурацию пространства подкачки в вашей системе Linux. Пространство подкачки (Swap) — это область на жестком диске, которая используется в качестве виртуальной памяти, когда физическая оперативная память (RAM) заполнена. Это позволяет системе запускать больше приложений, чем могло бы поместиться только в оперативную память.

Для начала воспользуемся командой swapon — утилитой для назначения устройств и файлов для подкачки страниц. Мы применим её с параметром --show, чтобы вывести сводную информацию об активных устройствах подкачки. Поскольку управление памятью является административной задачей, вам потребуется использовать sudo для выполнения команды с правами суперпользователя.

В терминале (который уже открыт в директории ~/project) выполните следующую команду:

sudo swapon --show

Вы увидите вывод, похожий на представленный ниже. Детали, такие как NAME (имя) и SIZE (размер), могут отличаться в зависимости от начальных настроек вашей виртуальной машины. Также возможно, что подкачка вовсе не настроена — в этом случае команда не выведет ничего.

NAME        TYPE      SIZE USED PRIO
/dev/loop12 partition   2G   0B   -2

Разберем значения столбцов:

  • NAME: Имя устройства или файла подкачки. В данном примере это loop-устройство (/dev/loop12).
  • TYPE: Тип пространства подкачки: partition (раздел диска) или file (файл).
  • SIZE: Общий размер пространства подкачки.
  • USED: Объем подкачки, используемый в данный момент.
  • PRIO: Приоритет. Если у вас несколько областей подкачки, первой будет использоваться та, у которой приоритет выше.

Выполнив эту команду, вы успешно ознакомились с текущей конфигурацией системы. На следующих этапах вы узнаете, как создать и активировать новый файл подкачки — это удобный способ добавить память без переразметки диска.

Создание файла для пространства подкачки с помощью dd

На предыдущем шаге вы научились просматривать текущие настройки подкачки. Теперь вы создадите специальный файл, который будет использоваться как новое пространство подкачки. Использование файла вместо раздела диска — это гибкий метод, так как он не требует изменения структуры разделов вашего накопителя.

Мы воспользуемся командой dd — мощной утилитой для копирования и преобразования данных. Она идеально подходит для этой задачи, так как позволяет создать файл точного размера, считывая данные из специального системного устройства /dev/zero, которое генерирует бесконечный поток нулевых символов (нулей).

Чтобы создать файл размером 250 МБ с именем swapfile в текущем каталоге (~/project), выполните следующую команду. Использование sudo необходимо, так как этот файл в дальнейшем будет управляться системой.

sudo dd if=/dev/zero of=swapfile bs=1M count=250

Разберем параметры команды:

  • sudo: Выполнение команды с правами root.
  • dd: Название используемой утилиты.
  • if=/dev/zero: Указывает входной файл (input file). /dev/zero — это спецфайл, выдающий поток нулей.
  • of=swapfile: Указывает выходной файл (output file). В текущей директории будет создан файл swapfile.
  • bs=1M: Устанавливает размер блока (block size) равным 1 Мегабайту. dd будет читать и записывать данные порциями по 1 МБ.
  • count=250: Количество копируемых блоков. При размере блока 1 МБ и количестве 250 мы получим файл размером 250 * 1 МБ = 250 МБ.

После выполнения команды вы увидите подтверждение успешной операции:

250+0 records in
250+0 records out
262144000 bytes (262 MB, 250 MiB) copied, 0.270222 s, 970 MB/s

Вы успешно создали файл размером 250 МБ. На следующем этапе вы отформатируете его так, чтобы система распознала его как область подкачки, и установите правильные права доступа.

Форматирование файла подкачки с помощью mkswap

Ранее вы создали файл swapfile, заполненный нулями. Однако операционная система пока не воспринимает его как корректную область подкачки. Вам нужно отформатировать его специальным образом. Для этого предназначена команда mkswap.

Команда mkswap подготавливает область подкачки Linux на устройстве или в файле. Она записывает в файл специальную сигнатуру, которую ядро сможет идентифицировать.

Сначала отформатируем созданный файл. В терминале выполните:

sudo mkswap swapfile

После выполнения вы увидите сообщение о том, что пространство подкачки настроено. Система присвоит вашей новой области подкачки уникальный идентификатор (UUID). Также вы можете увидеть предупреждение о небезопасных правах доступа, которое мы исправим следующим шагом.

mkswap: swapfile: insecure permissions 0644, fix with: chmod 0600 swapfile
Setting up swapspace version 1, size = 250 MiB (262139904 bytes)
no label, UUID=aabf0226-9f7b-47f5-9ad3-10248552795c

Важное замечание по безопасности: Файл подкачки может содержать конфиденциальные данные из оперативной памяти вашего компьютера. Из соображений безопасности крайне важно, чтобы только пользователь root имел права на чтение и запись в этот файл. Другие пользователи системы не должны иметь к нему никакого доступа.

Чтобы установить правильные права, воспользуемся командой chmod. Мы установим значение 600, что дает владельцу (root) права на чтение и запись, и запрещает любой доступ всем остальным.

Выполните следующую команду для защиты вашего swapfile:

sudo chmod 600 swapfile

Эта команда не выводит ничего в случае успеха. Теперь вы успешно отформатировали swapfile и обеспечили его безопасность. Он готов к активации и использованию системой, чем мы и займемся на следующем этапе.

Активация нового файла подкачки с помощью swapon

Вы успешно создали и подготовили swapfile. Он отформатирован и имеет правильные права доступа, но ядро Linux пока не использует его в качестве виртуальной памяти. На этом этапе вы активируете файл подкачки, сделав его доступным для системы.

Для этого мы снова воспользуемся командой swapon. На первом этапе вы использовали её с параметром --show для просмотра настроек. В этот раз вы передадите путь к вашему swapfile в качестве аргумента, чтобы включить его.

В терминале (находясь в директории ~/project) выполните следующую команду для активации нового пространства подкачки:

sudo swapon swapfile

Разберем команду:

  • sudo: Необходимо, так как активация подкачки — это операция системного уровня, требующая прав суперпользователя.
  • swapon: Команда для включения устройств и файлов подкачки.
  • swapfile: Имя файла, который вы хотите активировать. Поскольку вы находитесь в папке ~/project, где расположен файл, полный путь указывать не обязательно.

Если команда выполнена успешно, она не выведет никакого текста. Это стандартное поведение для многих команд Linux: отсутствие новостей — хорошая новость.

Теперь ваш swapfile активен и используется системой как дополнительная виртуальная память. На последнем этапе вы убедитесь, что новое пространство подкачки успешно добавлено к общим ресурсам памяти системы.

Проверка конфигурации нового пространства подкачки

Поздравляем! Вы успешно создали, отформатировали и активировали новый файл подкачки. На этом заключительном этапе вы проверите, что система видит этот ресурс и готова его использовать. Это подтвердит правильность выполнения всех предыдущих шагов.

Начнем с той же команды, которую использовали в начале — swapon --show. Теперь она должна вывести обновленный список активных областей подкачки, включая добавленный вами swapfile.

В терминале выполните:

sudo swapon --show

В выводе теперь будет две записи: исходный раздел подкачки (если он был) и ваш новый файл подкачки. Обратите внимание на новую строку с путем /home/labex/project/swapfile.

NAME                         TYPE      SIZE USED PRIO
/dev/loop12                  partition   2G   0B   -2
/home/labex/project/swapfile file      250M   0B   -3

Как видите, система теперь распознает пространство подкачки типа file размером 250M. Ему также назначен приоритет (PRIO). Ядро будет в первую очередь использовать ту область подкачки, у которой приоритет выше.

Еще одна полезная команда для проверки использования оперативной памяти и подкачки — free. Использование ключа -h (--human) делает вывод более читаемым, отображая размеры в мегабайтах (M) или гигабайтах (G).

Выполните команду free -h:

free -h

Вы увидите сводку по памяти системы. Обратите внимание на строку Swap.

               total        used        free      shared  buff/cache   available
Mem:           3.5Gi       608Mi       732Mi        16Mi       2.2Gi       2.7Gi
Swap:          2.2Gi          0B       2.2Gi

Значение в столбце total строки Swap теперь должно отражать суммарный размер исходной подкачки и вашего нового файла на 250 МБ. Например, если изначально было 2 ГБ подкачки, новый общий объем составит примерно 2.2 ГБ.

Вы успешно добавили и проверили новый файл подкачки в вашей системе Linux, предоставив ей больше виртуальной памяти для работы.

Резюме

В ходе этой лабораторной работы вы научились создавать и активировать файл подкачки для расширения виртуальной памяти в системе Linux. Вы начали с анализа текущей конфигурации с помощью команды sudo swapon --show, чтобы понять текущее состояние ресурсов и научиться интерпретировать вывод утилиты.

После предварительного анализа вы создали новый файл подкачки с помощью команды dd для выделения необходимого дискового пространства. Затем вы подготовили этот файл для работы с помощью mkswap и активировали его командой swapon, сделав его немедленно доступным для операционной системы. В завершение вы подтвердили успешное добавление и активность нового файла подкачки, повторно выполнив проверку через swapon --show.