Введение
Монтирование файловой системы Linux — это фундаментальный навык для системных администраторов и технических пользователей. Этот процесс позволяет операционной системе получать доступ и взаимодействовать с устройствами хранения и их файловыми системами, подключая их к определенным местам в структуре каталогов.
В этой лабораторной работе вы научитесь создавать имитированное устройство хранения, форматировать его с помощью файловой системы и монтировать его для доступа к его содержимому. Вы также изучите различные параметры монтирования, которые контролируют, как можно использовать файловую систему, например, ограничение разрешений на выполнение или перевод ее в режим только для чтения.
К концу этой лабораторной работы вы поймете:
- Как создать и отформатировать устройство хранения в Linux
- Процесс монтирования и размонтирования файловых систем
- Как использовать параметры монтирования для контроля доступа к файловой системе
- Как проверить состояние смонтированных файловых систем
Эти навыки необходимы для управления устройствами хранения в средах Linux, от локальных жестких дисков до съемных носителей и сетевых хранилищ.
Создание и монтирование устройства хранения
В этом шаге вы создадите имитированное устройство хранения, отформатируете его с помощью файловой системы и смонтируете его, чтобы сделать его доступным в структуре каталогов Linux.
Перейдите в каталог проекта
Сначала перейдите в каталог проекта, в котором вы будете работать на протяжении этой лабораторной работы:
cd ~/project
Создайте имитированное устройство хранения
Теперь создайте имитированное устройство хранения с помощью команды dd. Эта команда создаст файл определенного размера, который будет действовать как ваше устройство хранения:
dd if=/dev/zero of=storage_device.img bs=1M count=100
Эта команда создает файл размером 100 МБ с именем storage_device.img. Давайте разберем каждую часть этой команды:
if=/dev/zero: Входным файлом является/dev/zero, который является специальным файлом, генерирующим бесконечный поток нулей.of=storage_device.img: Выходной файл называетсяstorage_device.img.bs=1M: Размер блока установлен в 1 мегабайт.count=100: Копировать 100 блоков, в результате чего получается файл размером 100 МБ.
Вы должны увидеть вывод, похожий на этот:
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0331261 s, 3.2 GB/s
Отформатируйте устройство хранения с помощью файловой системы
Прежде чем вы сможете использовать устройство хранения, вам необходимо отформатировать его с помощью файловой системы. Команда mkfs.ext4 форматирует файл с файловой системой ext4, которая обычно используется в Linux:
mkfs.ext4 storage_device.img
Вы увидите несколько строк вывода, когда команда создаст файловую систему, например:
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
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
Создайте точку монтирования (mount point)
Перед монтированием устройства создайте каталог, который будет служить точкой монтирования. Это место, где будет доступно содержимое вашей файловой системы:
mkdir -p ~/project/mount_point
Смонтируйте устройство хранения
Теперь смонтируйте устройство хранения в точку монтирования с помощью команды mount:
sudo mount -t ext4 storage_device.img ~/project/mount_point
Эта команда сообщает Linux:
- Смонтировать устройство типа (
-t) ext4 - Устройство для монтирования —
storage_device.img - Место монтирования —
~/project/mount_point
Проверьте монтирование
Чтобы убедиться, что устройство смонтировано правильно, используйте команду df (disk free) с параметрами для отображения типа файловой системы и размеров, понятных человеку:
df -hT | grep mount_point
Вы должны увидеть вывод, похожий на:
/dev/loop0 ext4 90M 24K 83M 1% /home/labex/project/mount_point
Проверьте смонтированную файловую систему
Чтобы проверить, правильно ли работает файловая система, создайте тестовый файл в смонтированном каталоге:
echo "This is a test file" | sudo tee ~/project/mount_point/test.txt > /dev/null
Прочитайте файл, чтобы убедиться, что он был успешно создан:
cat ~/project/mount_point/test.txt
Вы должны увидеть отображаемый текст «This is a test file», подтверждающий, что ваша файловая система правильно смонтирована и функционирует.
Понимание произошедшего
Вы успешно:
- Создали файл, имитирующий устройство хранения
- Отформатировали его с помощью файловой системы ext4
- Создали каталог точки монтирования
- Смонтировали файловую систему в этот каталог
- Подтвердили, что монтирование прошло успешно
- Создали и прочитали файл в смонтированной файловой системе
Этот процесс аналогичен подключению и использованию внешнего жесткого диска или USB-накопителя, но с использованием файла для имитации физического устройства.
Опции монтирования для безопасности и контроля доступа
В этом шаге вы узнаете, как использовать параметры монтирования для контроля доступа к файловой системе. Параметры монтирования обеспечивают дополнительный контроль над поведением файловой системы, например, ограничение разрешений на выполнение или перевод файловой системы в режим только для чтения.
Размонтируйте текущую файловую систему
Перед применением новых параметров монтирования необходимо размонтировать текущую файловую систему:
sudo umount ~/project/mount_point
Если вы получаете сообщение об ошибке, что устройство занято, убедитесь, что вы в данный момент не находитесь в каталоге точки монтирования:
cd ~/project
Затем попробуйте размонтировать снова.
Монтирование с опцией noexec
Параметр монтирования noexec предотвращает выполнение любых двоичных файлов в смонтированной файловой системе. Это функция безопасности, которая может предотвратить запуск вредоносных скриптов или программ.
Смонтируйте файловую систему с опцией noexec:
sudo mount -t ext4 -o noexec storage_device.img ~/project/mount_point
Часть -o noexec указывает mount использовать опцию noexec.
Проверьте опцию noexec
Давайте создадим простой shell-скрипт в смонтированной файловой системе и попытаемся его выполнить:
echo '#!/bin/bash' | sudo tee ~/project/mount_point/test_script.sh > /dev/null
echo 'echo "This script is running"' | sudo tee -a ~/project/mount_point/test_script.sh > /dev/null
Сделайте скрипт исполняемым:
chmod +x ~/project/mount_point/test_script.sh
Теперь попробуйте выполнить скрипт:
~/project/mount_point/test_script.sh
Вы должны увидеть сообщение об ошибке, например:
bash: /home/labex/project/mount_point/test_script.sh: Permission denied
Это подтверждает, что опция noexec предотвращает выполнение скрипта.
Размонтируйте и снова смонтируйте с опцией Read-Only (только для чтения)
Теперь давайте попробуем смонтировать файловую систему как read-only (только для чтения). Сначала размонтируйте ее:
sudo umount ~/project/mount_point
Затем смонтируйте ее с опцией read-only:
sudo mount -t ext4 -o ro storage_device.img ~/project/mount_point
Часть -o ro указывает mount использовать опцию read-only.
Проверьте опцию Read-Only
Попробуйте создать новый файл в смонтированной файловой системе:
touch ~/project/mount_point/new_file.txt
Вы должны увидеть сообщение об ошибке, например:
touch: cannot touch '/home/labex/project/mount_point/new_file.txt': Read-only file system
Это подтверждает, что файловая система смонтирована как read-only.
Проверьте параметры монтирования
Вы можете проверить текущие параметры монтирования с помощью команды mount:
mount | grep mount_point
Вы должны увидеть вывод, включающий ro, указывающий, что опция read-only активна:
/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,relatime)
Комбинирование параметров монтирования
Вы можете комбинировать несколько параметров монтирования, разделяя их запятыми. Давайте размонтируем файловую систему и снова смонтируем ее с опциями noexec и ro:
sudo umount ~/project/mount_point
sudo mount -t ext4 -o ro,noexec storage_device.img ~/project/mount_point
Проверьте параметры монтирования:
mount | grep mount_point
Вы должны увидеть обе опции в выводе:
/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,noexec,relatime)
Понимание параметров монтирования
Параметры монтирования, которые вы изучили, важны для безопасности и контроля доступа:
noexecпредотвращает выполнение двоичных файлов, что может защитить от вредоносного кода.ro(read-only) предотвращает изменения в файловой системе, что может защитить целостность данных.
Эти параметры обычно используются в производственных средах для реализации принципа наименьших привилегий (principle of least privilege), предоставляя системам и пользователям только тот доступ, который им необходим.
Автоматизация монтирования с помощью /etc/fstab
В этом шаге вы узнаете, как сделать монтирование файловой системы постоянным после перезагрузки системы, настроив файл /etc/fstab. Это необходимо для автоматического монтирования устройств хранения при запуске системы.
Понимание /etc/fstab
Файл /etc/fstab (file system table - таблица файловых систем) содержит информацию о файловых системах, которые должны автоматически монтироваться при загрузке системы. Каждая строка в файле представляет собой отдельную файловую систему и включает в себя такие поля, как устройство, точка монтирования, тип файловой системы и параметры монтирования.
Давайте сначала посмотрим на текущее содержимое файла:
cat /etc/fstab
Вы увидите несколько строк с уже настроенными системными монтированиями.
Размонтируйте текущую файловую систему
Перед настройкой постоянного монтирования размонтируйте текущую файловую систему:
sudo umount ~/project/mount_point
Создайте резервную копию /etc/fstab
Всегда полезно создавать резервную копию перед изменением системных файлов конфигурации:
sudo cp /etc/fstab /etc/fstab.backup
Добавьте запись в /etc/fstab
Теперь добавьте запись для вашего устройства хранения в /etc/fstab. Вам нужно будет использовать абсолютный путь к вашему файлу устройства:
echo "$(readlink -f ~/project/storage_device.img) $(readlink -f ~/project/mount_point) ext4 defaults 0 0" | sudo tee -a /etc/fstab
Эта команда:
- Использует
readlink -fдля получения абсолютных путей к вашим файлам - Перенаправляет отформатированную строку в
/etc/fstabс использованиемtee -aс привилегиями sudo
Давайте разберем поля в записи fstab:
- Device (Устройство) - Полный путь к вашему файлу устройства хранения
- Mount point (Точка монтирования) - Полный путь к вашему каталогу монтирования
- File system type (Тип файловой системы) - ext4
- Mount options (Параметры монтирования) - defaults (эквивалентно rw,suid,dev,exec,auto,nouser,async)
- Dump - 0 (не создавать резервную копию с помощью dump)
- Pass - 0 (не проверять файловую систему во время загрузки)
Проверьте запись fstab
Проверьте, правильно ли работает ваша запись, с помощью команды mount -a, которая монтирует все файловые системы, перечисленные в /etc/fstab, которые еще не смонтированы:
sudo mount -a
Если нет сообщений об ошибках, это означает, что ваша запись верна.
Проверьте монтирование
Убедитесь, что файловая система смонтирована должным образом:
df -hT | grep mount_point
Вы должны увидеть свою файловую систему, смонтированную с типом ext4.
Измените запись fstab с дополнительными параметрами
Теперь давайте изменим запись, чтобы использовать параметры монтирования, которые вы изучили на предыдущем шаге. Отредактируйте файл /etc/fstab с помощью текстового редактора nano:
sudo nano /etc/fstab
Найдите строку, которую вы добавили, которая должна выглядеть примерно так:
/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 defaults 0 0
Измените параметры монтирования (четвертое поле) с defaults на ro,noexec:
/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 ro,noexec 0 0
Нажмите Ctrl+O, чтобы записать изменения, затем Enter, чтобы подтвердить, и Ctrl+X, чтобы выйти из nano.
Перемонтируйте с новыми параметрами
Размонтируйте файловую систему и перемонтируйте все записи в /etc/fstab:
sudo umount ~/project/mount_point
sudo mount -a
Проверьте новые параметры монтирования
Убедитесь, что файловая система смонтирована с новыми параметрами:
mount | grep mount_point
Вы должны увидеть опции ro и noexec в выводе.
Понимание постоянных монтирований
Файл /etc/fstab предоставляет способ:
- Автоматически монтировать файловые системы во время загрузки
- Настраивать параметры монтирования постоянным образом
- Контролировать порядок проверок файловой системы во время загрузки
В производственной среде правильная настройка /etc/fstab гарантирует, что все необходимые файловые системы будут доступны при запуске системы без необходимости ручного вмешательства.
Резюме
Поздравляем с завершением лабораторной работы по монтированию файловой системы Linux. Вы приобрели ценные навыки, необходимые любому системному администратору Linux или техническому пользователю.
В этой лабораторной работе вы узнали:
Создание и форматирование устройств хранения
- Как создать имитированное устройство хранения с помощью команды
dd - Как отформатировать устройство с файловой системой ext4 с помощью
mkfs.ext4
- Как создать имитированное устройство хранения с помощью команды
Основные операции монтирования
- Как создать каталог точки монтирования (mount point directory)
- Как смонтировать файловую систему с помощью команды
mount - Как проверить монтирование с помощью
dfи других команд
Параметры монтирования для безопасности и контроля
- Как использовать опцию
noexecдля предотвращения выполнения двоичных файлов - Как использовать опцию
roдля создания файловой системы только для чтения (read-only file system) - Как объединять несколько параметров монтирования для повышения безопасности
- Как использовать опцию
Постоянное монтирование с помощью /etc/fstab
- Как настроить автоматическое монтирование файловых систем во время загрузки
- Как установить постоянные параметры монтирования
- Как тестировать и проверять записи fstab
Эти навыки позволят вам:
- Управлять различными типами устройств хранения в Linux
- Реализовывать средства контроля безопасности с помощью параметров монтирования
- Настраивать автоматическое монтирование для запуска системы
- Устранять неполадки при монтировании файловой системы
Продолжая свое путешествие в Linux, вы обнаружите, что эти навыки ценны при работе с физическими устройствами хранения, сетевыми ресурсами (network shares) и виртуальными файловыми системами. Принципы, которые вы изучили, применимы ко многим различным дистрибутивам Linux и технологиям хранения.



