Управление разделами и файловыми системами в Linux

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

Введение

В этой лабораторной работе вы освоите фундаментальные навыки управления дисковыми разделами и файловыми системами в среде Linux. Вы будете работать с утилитами командной строки, такими как fdisk, для проверки доступных дисков, создания новых разделов и их форматирования с использованием стандартной файловой системы. Для обеспечения безопасности обучения все операции будут выполняться на выделенном вторичном виртуальном диске /dev/sdb, что позволит оставить основной системный диск нетронутым.

Примечание: В данной лабораторной среде /dev/sdb реализован как loop-устройство (файл, который ведет себя как диск). При создании разделов они будут отображаться с именами вроде loop13p1 или loop14p1. Точный номер loop-устройства зависит от того, какой из них свободен в вашей сессии, поэтому он может отличаться от примеров, приведенных здесь. Вы создадите символические ссылки, чтобы обращаться к этим разделам как /dev/sdb1, /dev/sdb2 и так далее, как это делается при работе с реальным оборудованием.

В ходе упражнений вы создадите стандартный раздел Linux, отформатируете его в файловую систему ext4 и научитесь монтировать его для немедленного использования. Затем вы настроите систему на автоматическое монтирование этой файловой системы при загрузке, отредактировав файл /etc/fstab. Наконец, вы расширите свои навыки, создав и настроив выделенный раздел подкачки (swap) — критически важный компонент для производительности системы.

Проверка дисков и создание нового раздела Linux с помощью fdisk

На этом этапе вы узнаете, как проверять доступные диски и их таблицы разделов. Затем вы воспользуетесь мощной утилитой командной строки fdisk для создания нового раздела на вторичном диске. В реальных условиях при изменении разделов нужно быть крайне осторожным, так как ошибки могут привести к потере данных. В этой лабораторной работе мы будем работать с выделенным виртуальным диском /dev/sdb, чтобы основной системный диск (/dev/sda) остался нетронутым.

Сначала давайте получим обзор всех блочных устройств (дисков и разделов), подключенных к вашей системе. Команда lsblk предоставляет наглядное древовидное представление.

lsblk

Вывод покажет доступные диски, включая ваш основной системный диск (vda) и loop-устройство, например loop13 или loop14, которое представляет наш виртуальный диск для этой лабораторной работы. Точный номер loop-устройства в вашей среде может отличаться.

NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
...
loop13       7:13   0     2G  0 loop
vda        252:0    0    40G  0 disk
├─vda1     252:1    0     1M  0 part
├─vda2     252:2    0   200M  0 part /boot/efi
└─vda3     252:3    0  39.8G  0 part /

Обратите внимание, что loop-устройство (доступное как /dev/sdb через символическую ссылку) — это виртуальный диск объемом 2 ГБ без разделов. Теперь давайте используем fdisk, чтобы подробнее изучить таблицу разделов /dev/sdb. Флаг -l выводит таблицы разделов для указанных устройств и завершает работу. Поскольку для проверки информации на уровне диска fdisk требуются права суперпользователя, необходимо использовать sudo.

sudo fdisk -l /dev/sdb

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

Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Примечание: Если вы используете диск впервые, вы можете увидеть сообщение о создании новой метки диска DOS (disklabel).

Далее вы запустите fdisk в интерактивном режиме для создания нового раздела. Этот процесс включает последовательность команд из одной буквы. Выполните следующую команду, чтобы начать управление /dev/sdb:

sudo fdisk /dev/sdb

Теперь вы находитесь внутри утилиты fdisk, на что указывает приглашение Command (m for help):. Внимательно следуйте этим шагам:

Создание нового раздела: Введите n и нажмите Enter.

Выбор типа раздела: Вас попросят выбрать тип раздела (основной или расширенный). По умолчанию выбран основной (p), что нам и нужно. Нажмите Enter, чтобы принять значение по умолчанию.

Выбор номера раздела: По умолчанию предлагается 1, так как это первый раздел. Нажмите Enter, чтобы принять его.

Указание первого сектора: Значение по умолчанию — это первый доступный сектор на диске. Почти всегда это правильный выбор. Нажмите Enter, чтобы принять значение по умолчанию.

Указание последнего сектора или размера: Вместо вычисления секторов можно указать размер в понятном формате. Давайте создадим раздел объемом 500 МБ. Введите +500M и нажмите Enter.

Вывод таблицы разделов из памяти: Перед сохранением полезно проверить внесенные изменения. Введите p и нажмите Enter, чтобы увидеть новую структуру разделов. Вы должны увидеть новое устройство /dev/sdb1.

Запись изменений на диск: Внесенные вами изменения пока находятся только в оперативной памяти. Чтобы сохранить их в таблицу разделов диска, введите w и нажмите Enter. Это запишет изменения и завершит работу fdisk.

Вот краткий обзор интерактивной сессии:

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x54041549.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4194303, default 4194303): +500M

Created a new partition 1 of type 'Linux' and of size 500 MiB.

Command (m for help): p
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x54041549

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 1026047 1024000  500M 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Invalid argument

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).

После записи таблицы разделов вы можете заметить сообщение о том, что ядро не смогло немедленно перечитать таблицу разделов. Это нормально при работе с loop-устройствами. Команда partprobe запрашивает у ядра операционной системы перечитать таблицу разделов.

sudo partprobe

Теперь убедитесь, что система распознает новый раздел, снова выполнив lsblk.

lsblk /dev/sdb

Вывод должен показать loop-устройство и его новый раздел. Из-за настройки loop-устройства раздел будет отображаться как loop13p1 или loop14p1, в зависимости от вашей сессии:

NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop13       7:13   0    2G  0 loop
└─loop13p1 259:0    0  500M  0 part

Поскольку раздел отображается как loop13p1, loop14p1 или аналогичное имя, связанное с loop-устройством, вместо /dev/sdb1, нам нужно создать символическую ссылку для этого раздела. Сначала определим фактическое устройство раздела. Шаблон p1$ гарантирует, что мы сопоставим только имя раздела, а не родительское loop-устройство:

PARTITION_DEVICE=$(lsblk -lno NAME /dev/sdb | grep -E "p1$" | head -1)
echo "Partition device: /dev/$PARTITION_DEVICE"

Теперь создайте символическую ссылку для раздела:

sudo ln -s /dev/$PARTITION_DEVICE /dev/sdb1

Проверьте, что /dev/sdb1 теперь работает:

lsblk /dev/sdb1

Вывод теперь должен показать раздел, доступный как /dev/sdb1. Имя базового устройства может по-прежнему быть loop13p1, loop14p1 или другим именем раздела на основе loop-устройства:

NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop13p1   259:0    0  500M  0 part

Вы успешно создали новый раздел Linux объемом 500 МБ на /dev/sdb и сделали его доступным как /dev/sdb1.

Создание и форматирование файловой системы ext4 с помощью mkfs.ext4

На этом этапе вы отформатируете созданный вами новый раздел /dev/sdb1 с файловой системой. Файловая система обеспечивает структуру, необходимую для хранения и организации файлов и каталогов. Без файловой системы операционная система не может читать данные с раздела или записывать их на него. Мы будем использовать ext4, которая является стандартной и наиболее широко используемой файловой системой для современных дистрибутивов Linux благодаря своей производительности, надежности и функциональности.

Команда для создания файловой системы — mkfs (сокращение от "make filesystem"). Это интерфейс для различных инструментов создания конкретных файловых систем, таких как mkfs.ext4, mkfs.xfs и т.д. Мы будем использовать mkfs.ext4 напрямую. Эта операция является деструктивной и удалит все существующие данные на разделе, поэтому она требует прав sudo.

Чтобы отформатировать раздел /dev/sdb1 в файловую систему ext4, выполните следующую команду:

sudo mkfs.ext4 /dev/sdb1

Команда создаст файловую систему и отобразит информацию о процессе, включая UUID файловой системы, размер блока и количество инодов (inodes).

mke2fs x.xx.x (xx-xxx-xxxx)
Creating filesystem with 128000 4k blocks and 32000 inodes
Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
 32768, 98304

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

После форматирования вы можете убедиться, что файловая система была успешно создана. Команда blkid отлично подходит для этого, так как она выводит атрибуты блочных устройств, включая тип их файловой системы.

sudo blkid /dev/sdb1

Вывод должен четко показать, что /dev/sdb1 теперь имеет TYPE равный ext4.

/dev/sdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1a2b3c4d-01"

Для более детального просмотра можно использовать команду dumpe2fs с флагом -h, чтобы отобразить информацию о суперблоке. Суперблок содержит критически важные метаданные о файловой системе.

sudo dumpe2fs -h /dev/sdb1

Эта команда выдаст много информации. Ищите ключевые строки, такие как Filesystem magic number и Filesystem state, чтобы подтвердить целостность файловой системы.

dumpe2fs x.xx.x (xx-xxx-xxxx)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
...

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

Монтирование, тестирование и размонтирование файловой системы

На этом этапе вы узнаете, как сделать вашу новую отформатированную файловую систему доступной для операционной системы. Этот процесс называется "монтированием". Монтирование присоединяет файловую систему на устройстве (например, /dev/sdb1) к определенному каталогу в дереве файловой системы, который называется "точкой монтирования". После монтирования вы можете взаимодействовать с разделом так же, как с любым другим каталогом.

Сначала нужно создать точку монтирования. Это просто пустой каталог. Стандартной практикой является создание временных точек монтирования в каталоге /mnt. Давайте создадим каталог с именем /mnt/data. Поскольку /mnt является системным каталогом, вам потребуется sudo.

sudo mkdir /mnt/data

Теперь используйте команду mount, чтобы присоединить раздел /dev/sdb1 к каталогу /mnt/data.

sudo mount /dev/sdb1 /mnt/data

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

## Проверить, является ли каталог точкой монтирования
mountpoint /mnt/data

Если монтирование прошло успешно, вы должны увидеть:

/mnt/data is a mountpoint

Теперь давайте проверим использование диска с помощью df. Из-за настройки loop-устройства раздел может отображаться со своим реальным именем устройства, а не с именем символической ссылки. Ваш вывод может показать loop13p1, loop14p1 или другое имя раздела на основе loop-устройства:

df -h /mnt/data

Вы должны увидеть запись, показывающую смонтированную файловую систему:

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop13p1   488M  2.6M  459M   1% /mnt/data

Вы также можете проверить это с помощью команды mount:

mount | grep /mnt/data

Это должно показать имя смонтированного loop-раздела для вашей сессии:

/dev/loop13p1 on /mnt/data type ext4 (rw,relatime)

Теперь давайте проверим, можем ли мы записывать данные в нашу новую файловую систему. Сначала проверим текущего владельца и права доступа к точке монтирования:

ls -ld /mnt/data

Вы должны увидеть что-то вроде:

drwxr-xr-x 3 root root 4096 Dec 12 10:00 /mnt/data

Теперь попробуйте создать файл в точке монтирования:

touch /mnt/data/testfile

Эта команда, скорее всего, завершится ошибкой "Permission denied" (Отказано в доступе). Это происходит потому, что корневой каталог смонтированной файловой системы принадлежит пользователю root. Чтобы исправить это, измените владельца точки монтирования на вашего текущего пользователя, labex:

sudo chown labex:labex /mnt/data

Теперь попробуйте создать файл снова:

touch /mnt/data/testfile

На этот раз команда должна выполниться успешно. Убедитесь, что файл был создан:

ls -l /mnt/data

Вы должны увидеть:

total 16
drwx------ 2 root  root  16384 Dec 12 10:00 lost+found
-rw-r--r-- 1 labex labex     0 Dec 12 10:05 testfile

Каталог lost+found является стандартной особенностью файловых систем ext4 и используется для восстановления файлов в случае повреждения файловой системы.

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

Сначала перейдите в каталог /mnt/data:

cd /mnt/data

Теперь попробуйте размонтировать его. Вы можете ссылаться на файловую систему либо по имени устройства, либо по точке монтирования.

sudo umount /mnt/data

Вы получите сообщение об ошибке, указывающее, что цель занята (target is busy).

umount: /mnt/data: target is busy.

Чтобы успешно размонтировать, вы должны сначала выйти из этого каталога. Давайте вернемся в ваш домашний каталог.

cd ~

Теперь снова выполните команду umount.

sudo umount /mnt/data

Команда должна выполниться без вывода сообщений. Вы можете убедиться, что она больше не смонтирована, выполнив команду mountpoint:

mountpoint /mnt/data

Вы должны увидеть:

/mnt/data is not a mountpoint

Наконец, вы можете навести порядок, удалив каталог точки монтирования:

sudo rmdir /mnt/data

Примечание по устранению неполадок: Если вы столкнулись с проблемами, при которых команда mount не работает, вы можете попробовать смонтировать устройство, используя фактическое имя loop-устройства вместо символической ссылки:

## Найти фактическое имя устройства
ACTUAL_DEVICE=$(readlink -f /dev/sdb1)
echo "Actual device: $ACTUAL_DEVICE"

## Смонтировать, используя фактическое имя устройства
sudo mkdir /mnt/data
sudo mount $ACTUAL_DEVICE /mnt/data

Настройка постоянного монтирования в /etc/fstab

На этом этапе вы узнаете, как сделать так, чтобы ваша файловая система монтировалась автоматически при каждой загрузке системы. Команда mount, которую вы использовали на предыдущем этапе, является временной; монтирование будет потеряно после перезагрузки. Чтобы создать постоянное монтирование, нужно добавить запись в специальный конфигурационный файл /etc/fstab (таблица файловых систем).

Система считывает /etc/fstab во время процесса загрузки, чтобы определить, какие файловые системы монтировать. Это критически важный файл, поэтому всегда рекомендуется создать резервную копию перед его редактированием.

Сначала создадим резервную копию текущего файла fstab.

sudo cp /etc/fstab /etc/fstab.bak

Далее нам нужна постоянная точка монтирования. На предыдущем этапе мы использовали /mnt/data, а затем удалили ее. Для постоянных монтирований принято создавать каталог в корневой файловой системе. Давайте создадим каталог с именем /data.

sudo mkdir /data

Хотя вы можете использовать имя устройства (/dev/sdb1) в /etc/fstab, это не рекомендуется. Имена устройств иногда могут меняться после перезагрузки, особенно если вы добавляете или удаляете оборудование. Гораздо более надежный метод — использовать универсальный уникальный идентификатор (UUID) раздела, который представляет собой уникальную строку, присваиваемую файловой системе при ее создании и не меняющуюся.

Чтобы найти UUID для /dev/sdb1, снова используйте команду blkid:

sudo blkid /dev/sdb1

Вывод покажет UUID. Скопируйте это значение (без кавычек).

/dev/sdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="1a2b3c4d-01"

Теперь вы отредактируете /etc/fstab с помощью редактора nano. Вы должны использовать sudo, так как это системный файл.

sudo nano /etc/fstab

Перейдите в конец файла и добавьте новую строку для вашего раздела. Формат записи в fstab следующий: <идентификатор_устройства> <точка_монтирования> <тип_файловой_системы> <опции> <dump> <pass>

Добавьте следующую строку, заменив xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx на фактический UUID, который вы скопировали из команды blkid.

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2
  • UUID=...: Идентифицирует раздел по его уникальному ID.
  • /data: Каталог, в который будет смонтирована файловая система.
  • ext4: Тип файловой системы.
  • defaults: Стандартный набор опций монтирования, подходящий для большинства случаев.
  • 0: Поле dump. Это устаревший флаг утилиты резервного копирования, он должен быть равен 0.
  • 2: Поле pass. Оно указывает утилите fsck порядок проверки файловых систем при загрузке. 1 используется для корневой файловой системы, 2 — для других постоянных файловых систем, а 0 отключает проверку.

После добавления строки сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и Enter.

Теперь, вместо перезагрузки для проверки, вы можете использовать команду mount -a. Эта команда монтирует все файловые системы, перечисленные в /etc/fstab, которые еще не смонтированы.

sudo mount -a

Если ошибок нет, команда выполнится без вывода сообщений. Теперь вы можете убедиться, что ваша файловая система смонтирована правильно, используя команду df.

df -h | grep /data

Вывод должен подтвердить, что /dev/sdb1 смонтирован в /data.

/dev/sdb1       488M  2.6M  459M   1% /data

Теперь ваш раздел будет автоматически монтироваться при каждом запуске системы.

Создание и управление разделом подкачки (swap) Linux

На этом этапе вы узнаете о другом специальном типе раздела: Linux swap (раздел подкачки). Пространство подкачки используется операционной системой в качестве виртуальной памяти, когда физическая оперативная память (RAM) заполнена. Оно позволяет системе перемещать неактивные страницы памяти на диск, освобождая RAM для активных процессов. Хотя это не замена достаточного объема RAM, наличие раздела подкачки может предотвратить сбой системы из-за ошибок нехватки памяти (out-of-memory).

Важное примечание: Перед созданием нового раздела убедитесь, что любые существующие файловые системы на /dev/sdb размонтированы. Если устройство в данный момент смонтировано (с предыдущих этапов), вы можете столкнуться с ошибками "Device or resource busy" при попытке изменить таблицу разделов.

Мы создадим новый раздел на /dev/sdb и настроим его как пространство подкачки. Сначала убедимся, что устройство не смонтировано, а затем используем fdisk для создания раздела. Мы уже создали /dev/sdb1, поэтому этот новый раздел будет /dev/sdb2.

## Сначала проверьте, смонтировано ли устройство, и размонтируйте, если необходимо
lsblk /dev/sdb
sudo umount /data /mnt/data 2> /dev/null || true

## Теперь создайте раздел
sudo fdisk /dev/sdb

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

Создание нового раздела: Введите n и нажмите Enter.

Выбор типа и номера раздела: Примите значения по умолчанию для основного раздела (p) и номера раздела 2, нажав Enter дважды.

Указание секторов: Примите значение первого сектора по умолчанию. Для размера давайте создадим раздел объемом 256 МБ. Введите +256M и нажмите Enter.

Изменение типа раздела: Это критически важный шаг. Введите t, чтобы изменить тип раздела. Когда вас попросят указать номер раздела, введите 2. Когда вас попросят указать шестнадцатеричный код, введите 82, что соответствует "Linux swap / Solaris".

Вывод и проверка: Введите p, чтобы просмотреть изменения. Вы должны увидеть /dev/sdb2 с типом "Linux swap / Solaris".

Запись изменений: Введите w, чтобы сохранить новую таблицу разделов и выйти.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1026048-4194303, default 1026048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-4194303, default 4194303): +256M

Created a new partition 2 of type 'Linux' and of size 256 MiB.

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
...
Device     Boot   Start     End   Sectors   Size Id Type
/dev/sdb1          2048 1026047   1024000   500M 83 Linux
/dev/sdb2       1026048 1550335    524288   256M 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

После создания раздела нам нужно создать символическую ссылку для /dev/sdb2, точно так же, как мы делали для /dev/sdb1. Сначала выполните partprobe, чтобы убедиться, что ядро распознает новый раздел:

sudo partprobe

Теперь определите и создайте символическую ссылку для второго раздела:

PARTITION2_DEVICE=$(lsblk -lno NAME /dev/sdb | grep p2 | head -1)
sudo ln -s /dev/$PARTITION2_DEVICE /dev/sdb2

Проверьте, что раздел доступен:

lsblk /dev/sdb2

Перед форматированием раздела как пространства подкачки нужно убедиться, что устройство не занято. Если вы столкнулись с ошибкой "Device or resource busy", это означает, что устройство может быть смонтировано. Давайте сначала проверим и размонтируем любые существующие точки монтирования:

## Проверить текущий статус монтирования
lsblk /dev/sdb

## Если устройство смонтировано, размонтируйте его
sudo umount /data /mnt/data 2> /dev/null || true

Теперь, когда раздел создан и доступен, вам нужно отформатировать его для использования в качестве пространства подкачки с помощью команды mkswap.

sudo mkswap /dev/sdb2

После форматирования вы можете активировать пространство подкачки. Сначала проверьте текущее использование подкачки с помощью команды free -h.

free -h

Вывод, скорее всего, покажет 0B для Swap.

              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       151Mi       1.6Gi       0.0Ki       202Mi       1.7Gi
Swap:            0B          0B          0B

Теперь активируйте новый раздел подкачки с помощью команды swapon.

sudo swapon /dev/sdb2

Снова проверьте использование подкачки с помощью free -h и swapon -s (сводка).

free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       152Mi       1.4Gi       0.0Ki       202Mi       1.6Gi
Swap:         256Mi          0B       256Mi
swapon -s
Filename    Type  Size Used Priority
/dev/sdb2                               partition 262140 0 -2

Вы видите, что общий объем пространства подкачки увеличился. Чтобы отключить раздел подкачки, используйте команду swapoff.

sudo swapoff /dev/sdb2

Убедитесь, что он был отключен, снова выполнив free -h. Объем пространства подкачки вернется к нулю. Это демонстрирует, как динамически управлять пространством подкачки в работающей системе.

Команда swapon активирует подкачку только для текущей сессии. Чтобы активировать этот раздел подкачки автоматически после перезагрузки, добавьте его в /etc/fstab, используя его UUID. Сначала выведите UUID, назначенный командой mkswap:

sudo blkid /dev/sdb2

Вывод содержит UUID подкачки и тип:

/dev/sdb2: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="swap" PARTUUID="1a2b3c4d-02"

Откройте /etc/fstab:

sudo nano /etc/fstab

Добавьте следующую строку в конец, заменив пример UUID на UUID из вывода blkid:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0

Сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и Enter. Значение none указывает на то, что подкачка не использует точку монтирования файловой системы, а опция sw включает устройство как подкачку.

Протестируйте новую запись в /etc/fstab без перезагрузки:

sudo swapon -a

Убедитесь, что раздел подкачки снова активен:

swapon --show

Вывод должен показать раздел подкачки объемом 256 МБ. Он может отображаться под именем базового loop-устройства вместо /dev/sdb2, так как /dev/sdb2 — это символическая ссылка.

Примечание по устранению неполадок: Если вы столкнулись с ошибками "Device or resource busy" на этом этапе, это обычно означает:

Устройство или один из его разделов все еще может быть смонтирован, или какой-то процесс все еще обращается к устройству.

Чтобы решить эту проблему, убедитесь, что все точки монтирования размонтированы с помощью sudo umount /data /mnt/data перед продолжением операций с разделами.

Резюме

В этой лабораторной работе вы освоили основные навыки управления дисковыми разделами и файловыми системами в системе Linux. Вы начали с проверки доступных блочных устройств с помощью lsblk, а затем использовали утилиту fdisk для создания нового основного раздела на вторичном диске. После создания раздела вы отформатировали его в файловую систему ext4 с помощью mkfs.ext4. Вы также попрактиковались в монтировании новой файловой системы в каталог, проверке ее статуса и размонтировании. Наконец, вы настроили постоянное монтирование, отредактировав файл /etc/fstab с использованием UUID раздела, чтобы обеспечить его автоматическое монтирование при загрузке системы.

Кроме того, в лабораторной работе был рассмотрен процесс создания и управления выделенным пространством подкачки (swap). Это включало повторное использование fdisk для создания раздела и изменение его типа на "Linux swap". Затем вы подготовили этот раздел как область подкачки с помощью команды mkswap и активировали его с помощью swapon. Чтобы сделать пространство подкачки постоянным после перезагрузок, вы также добавили соответствующую запись в файл /etc/fstab.