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

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

Введение

В этой лабораторной работе вы освоите важную административную задачу — создание и активацию файла подкачки в Linux. Этот процесс позволяет увеличить объём виртуальной памяти системы, что особенно важно, когда физической оперативной памяти недостаточно. Вы получите практический опыт работы с основными утилитами командной строки для эффективного управления системными ресурсами. Файл подкачки — гибкая альтернатива созданию отдельного раздела подкачки.

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

Проверка текущей области подкачки с помощью swapon

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

Сначала вы воспользуетесь командой swapon — утилитой для указания устройств и файлов, используемых для страничного обмена и подкачки. Мы добавим параметр --show, чтобы вывести сводную информацию об активных устройствах подкачки. Поскольку управление областью подкачки относится к административным задачам, для выполнения команды с правами root понадобится 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, которое представляет собой бесконечный поток нулевых байтов.

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

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

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

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

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

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

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

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

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

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

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

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 отформатирован, а его права доступа настроены безопасно. Файл готов к активации и использованию системой. Это будет сделано на следующем шаге.

Активация нового файла подкачки и сохранение настройки

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

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

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

sudo swapon swapfile

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

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

При успешном выполнении команда не выведет ничего. Это стандартное поведение многих команд Linux: отсутствие сообщений обычно означает успешное выполнение.

Команда swapon активирует файл только до текущей перезагрузки. Чтобы Linux автоматически активировал его после перезагрузки, добавьте в /etc/fstab запись с абсолютным путём к файлу подкачки:

echo '/home/labex/project/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Шесть полей этой записи задают файл подкачки, значение none, поскольку у подкачки нет точки монтирования, тип swap и стандартный параметр sw, а последние два нуля отключают проверку дампа и файловой системы.

Теперь файл 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 теперь должно отражать суммарный размер исходной области подкачки и нового файла размером 250MB. Например, если изначально было доступно 2G подкачки, новый общий объём составит примерно 2.2G.

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

Итоги

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

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