Настройка устройств хранения данных

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

Введение

Добро пожаловать на лабораторную работу по настройке устройств хранения данных в Linux. Управление хранилищами — это фундаментальный навык для любого системного администратора Linux. Когда вы добавляете в систему новый жесткий диск или твердотельный накопитель (SSD), он не становится доступным для использования сразу. Сначала его необходимо подготовить, создав файловую систему, а затем сделать доступным, подключив его к дереву каталогов.

В этой лабораторной работе вы пройдете полный жизненный цикл добавления нового устройства хранения. Вы научитесь:

  • Идентифицировать недавно подключенный диск.
  • Создавать стандартную файловую систему Linux (ext4) на диске.
  • Монтировать диск в каталог, чтобы сделать его доступным.
  • Проверять использование диска и записывать на него данные.
  • Безопасно размонтировать и отключать диск.

Мы будем использовать такие команды, как lsblk, mkfs.ext4, mount, df и umount. К концу этой работы вы получите твердое понимание того, как управлять базовыми устройствами хранения в среде Linux.

Подключение виртуального диска

В этой лабораторной среде виртуальный диск был создан для вас автоматически. Это имитирует добавление нового устройства хранения в систему. Скрипт настройки создает файл виртуального диска объемом 100 МБ, связывает его с loop-устройством, а затем создает символическую ссылку /dev/sdb для единообразия.

Ваша первая задача — убедиться, что операционная система видит этот новый диск. Команда lsblk (list block devices) идеально подходит для этого. Она отображает информацию обо всех доступных блочных устройствах в виде дерева.

Выполните следующую команду в терминале, чтобы вывести список блочных устройств:

lsblk

Вы должны увидеть вывод, похожий на приведенный ниже. Ищите loop-устройство объемом 100 МБ (оно может называться loop4, loop14 или иметь другой номер), которое не смонтировано и не имеет точек монтирования.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  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-устройство, вы можете выполнить следующую команду, чтобы создать его:

## Create a 100MB file to act as our virtual disk
dd if=/dev/zero of=/tmp/disk.img bs=1M count=100 &> /dev/null
## Find the next available loop device
LOOP_DEVICE=$(sudo losetup -f)
## Associate the file with a loop device, simulating a physical disk
sudo losetup $LOOP_DEVICE /tmp/disk.img
## Create a symbolic link for consistency in the lab
sudo ln -sf $LOOP_DEVICE /dev/sdb

Затем снова выполните команду lsblk, чтобы убедиться, что loop-устройство создано.

Форматирование диска с помощью команды mkfs.ext4 /dev/sdb

На этом этапе вы отформатируете новый диск. Неотформатированный диск — это как чистый лист; операционная система не знает, как хранить на нем файлы. Форматирование, также известное как создание файловой системы, записывает на диск структуру данных, которая позволяет ему организовывать и хранить файлы.

Мы будем использовать файловую систему ext4, которая является надежным и широко используемым стандартом для систем Linux. Команда для создания файловой системы ext4mkfs.ext4.

Внимание: Эта команда является деструктивной. Она удалит все данные на указанном устройстве. Всегда дважды проверяйте имя устройства перед выполнением.

Теперь отформатируйте диск /dev/sdb. Поскольку это привилегированная операция, изменяющая устройство, необходимо использовать sudo.

sudo mkfs.ext4 /dev/sdb

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

mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 25600 4k blocks and 25600 inodes

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

Диск /dev/sdb теперь отформатирован с файловой системой ext4 и готов к монтированию.

Монтирование диска в каталог /mnt/data

На этом этапе вы сделаете отформатированный диск доступным для файловой системы. Этот процесс называется «монтированием». Монтирование присоединяет файловую систему на устройстве к определенному каталогу, называемому «точкой монтирования». После монтирования вы можете читать данные с устройства и записывать их на него, обращаясь к каталогу точки монтирования.

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

sudo mkdir /mnt/data

Теперь используйте команду mount, чтобы присоединить устройство /dev/sdb к каталогу /mnt/data. Синтаксис команды: sudo mount [device] [mount_point].

sudo mount /dev/sdb /mnt/data

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

lsblk

Обратите внимание в выводе ниже, что loop-устройство (на которое указывает /dev/sdb) теперь отображает /mnt/data в качестве MOUNTPOINT.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop /mnt/data
...
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 /

Диск готов к использованию.

Проверка использования диска с помощью команды df -h

На этом этапе вы убедитесь, что смонтированный диск пригоден для использования, и проверите доступное на нем место. Команда df (disk free) используется для отчета об использовании дискового пространства файловой системой. Использование флага -h (--human-readable) делает вывод более удобным для чтения, отображая размеры в степенях 1024 (например, K, M, G).

Выполните команду df -h, чтобы увидеть все смонтированные файловые системы, включая нашу новую:

df -h

Найдите в выводе строку, соответствующую /dev/sdb. Она покажет общий размер, использованное место, доступное место и точку монтирования.

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sdb         98M  2.5M   89M   3% /mnt/data
...

Теперь, когда диск смонтирован, каталог /mnt/data действует как корень нового диска. Давайте запишем в него файл, чтобы убедиться, что все работает. Мы будем использовать tee с sudo, так как владельцем точки монтирования является root.

echo "Hello LabEx" | sudo tee /mnt/data/test.txt

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

ls /mnt/data

Вывод должен показать ваш новый файл:

test.txt

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

Размонтирование и отключение диска

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

Команда для размонтирования файловой системы — umount. Вы можете указать либо имя устройства, либо точку монтирования. Мы будем использовать точку монтирования.

sudo umount /mnt/data

Чтобы убедиться, что диск размонтирован, выполните lsblk еще раз. Вы увидите, что у loop-устройства больше нет связанной с ним точки монтирования.

lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  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 является символической ссылкой на реальное loop-устройство, нам нужно разрешить ее в реальный путь к устройству, чтобы правильно его отключить.

## Detach the loop device by resolving the symbolic link
sudo losetup -d $(readlink -f /dev/sdb)
## Remove the symbolic link
sudo rm /dev/sdb

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

sudo rmdir /mnt/data

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

Резюме

Поздравляем с завершением лабораторной работы! Вы успешно освоили основной рабочий процесс настройки нового устройства хранения данных в среде Linux.

В этой работе вы отработали следующие ключевые навыки:

  • Идентификация новых блочных устройств с помощью команды lsblk.
  • Создание файловой системы на «сыром» диске с помощью mkfs.ext4.
  • Создание точки монтирования с помощью mkdir.
  • Монтирование файловой системы для обеспечения доступа к ней с помощью команды mount.
  • Проверка использования диска с помощью df -h.
  • Безопасное размонтирование файловой системы с помощью команды umount.
  • Отключение loop-устройства с помощью losetup -d для имитации извлечения диска.

Это фундаментальные операции для управления хранилищами на любом сервере или рабочей станции Linux. Теперь вы можете применять эти знания для управления реальными жесткими дисками, SSD или USB-накопителями. Мы призываем вас продолжать изучать более продвинутые темы хранения данных, такие как управление логическими томами (LVM), RAID и различные типы файловых систем.