JavaRush /Курсы /Docker SELF /Монтирование и размонтирование файловых систем: mount, um...

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

Docker SELF
6 уровень , 3 лекция
Открыта

1. Что такое монтирование?

Добро пожаловать на ещё одну захватывающую лекцию о работе с Linux! Сегодня мы поговорим о монтировании и размонтировании файловых систем — процессе, который открывает двери к работе с USB-накопителями, дополнительными жёсткими дисками и даже сетевыми хранилищами. Мы изучим, как настроить автоматическое монтирование, чтобы ваши данные были на месте с самого запуска системы. А главное, будем всё это делать на практике!

Монтирование — это процесс подключения файловой системы устройства (жёсткого диска, USB-накопителя, ISO-образа) в дерево файловой системы Linux. В отличие от Windows, где вы видите устройства как "D:\" или "E:\", в Linux все устройства «встраиваются» в структуру файлов в определённую папку, называемую точкой монтирования.

Аналогия: поезд и станция

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


2. Команда mount

Мы начнём с команды, которая выполняет монтирование, — mount. Это одна из тех команд, которые вы будете использовать регулярно, особенно если работаете с внешними дисками или сетевыми хранилищами.

Основной синтаксис

mount [опции] <устройство> <точка монтирования>
  • <устройство> — это место, где ваше устройство подключено в системе, например, /dev/sdb1. Вы можете найти это с помощью команды lsblk.
  • <точка монтирования> — папка, в которую будут переданы данные устройства. Например, это может быть /mnt/disk.

Пример подключения USB-накопителя:

sudo mount /dev/sdb1 /mnt/usb

После выполнения команды файлы с устройства /dev/sdb1 станут доступны внутри папки /mnt/usb.

Полезные опции команды mount

  1. Указание файловой системы:

    Если Linux не распознаёт файловую систему устройства, используйте флаг -t. Например:

    sudo mount -t ext4 /dev/sdb1 /mnt/usb
    

    Это удобно, если вы используете редкие файловые системы.

  2. Монтирование только для чтения:

    Если вы хотите защитить данные устройства от изменения, используйте опцию -o ro:

    sudo mount -o ro /dev/sdb1 /mnt/usb
    
  3. Монтирование с указанием кодировки:

    Для FAT32 или NTFS-дисков иногда нужно указывать кодировку символов:

    sudo mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
    

3. Команда umount

Теперь, когда вы подключили устройство, возникает вопрос: как его отключить? Это важно, чтобы Linux «закрыл» все соединения с диском и завершил запись.

Основной синтаксис

umount <устройство или точка монтирования>

Пример для уже подключенного USB-накопителя:

sudo umount /mnt/usb

Или можно указать само устройство:

sudo umount /dev/sdb1

Что делать, если umount не работает?

Иногда команда umount может выдать ошибку: "Device is busy" (устройство занято). Это означает, что кто-то (в терминах файловой системы) «сидит на рельсах». Возможно, вы или другая программа в данный момент открыли файл на этом устройстве.

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

fuser -v /mnt/usb

Найдя виноватого, можно завершить процесс:

kill <ID процесса>

После этого повторите команду umount.

Важно!

Помните в Windows перед тем как достать флешку нужно было кликнуть по кнопке Извлечь (Eject)? Это не что иное, как выполнение команды unmount.


4. Автоматическое монтирование через /etc/fstab

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

Что такое /etc/fstab?

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

Как добавить устройство в /etc/fstab?

  1. Найдите UUID вашего устройства с помощью команды blkid:

    sudo blkid
    

    Например, устройство /dev/sdb1 может иметь UUID 1234-5678.

  2. Откройте файл /etc/fstab для редактирования:

    sudo nano /etc/fstab
    
  3. Добавьте новую строку:

    UUID=1234-5678 /mnt/usb ext4 defaults 0 2
    
    • UUID — уникальный идентификатор вашего устройства.
    • /mnt/usb — точка монтирования.
    • ext4 — файловая система устройства.
    • defaults — стандартные параметры монтирования.
    • 0 и 2 — параметры проверки устройства при загрузке (настраиваемые).
  4. Проверьте настройки, смонтировав устройство:

    sudo mount -a
    

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

Риски

⚠️ Если настроить /etc/fstab неправильно, система может не загрузиться. Всегда проверяйте конфигурацию с помощью:

sudo mount -a

Если ошибок нет, всё работает правильно.


5. Пример: монтирование и размонтирование USB-накопителя

Допустим, вы подключили USB-накопитель, и система определила его как /dev/sdb1.

  1. Создайте точку монтирования:

    sudo mkdir -p /mnt/usb
    
  2. Подключите накопитель:

    sudo mount /dev/sdb1 /mnt/usb
    
  3. Проверьте содержимое:

    ls /mnt/usb
    
  4. Завершив работу, отключите устройство:

    sudo umount /mnt/usb
    

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


6. Практическое задание

Задача

  1. Подключите USB-накопитель или виртуальный диск.
  2. Создайте точку монтирования /mnt/test-disk.
  3. Смонтируйте устройство в эту папку и проверьте содержимое.
  4. Настройте монтирование через /etc/fstab с использованием UUID.
  5. Отключите устройство и убедитесь, что настройки работают при перезагрузке.

Подсказки

  • Если устройства нет, создайте его, используя команду форматирования из предыдущей лекции (mkfs.ext4).
  • Проверяйте настройки fstab перед перезагрузкой.

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

1
Задача
Docker SELF, 6 уровень, 3 лекция
Недоступна
Монтирование устройства
Монтирование устройства
1
Задача
Docker SELF, 6 уровень, 3 лекция
Недоступна
Указание типа файловой системы при монтировании
Указание типа файловой системы при монтировании
1
Задача
Docker SELF, 6 уровень, 3 лекция
Недоступна
Монтирование с дополнительными параметрами
Монтирование с дополнительными параметрами
1
Задача
Docker SELF, 6 уровень, 3 лекция
Недоступна
Настройка автоматического монтирования через `/etc/fstab`
Настройка автоматического монтирования через `/etc/fstab`
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Gans Electro Уровень 40
24 мая 2026
Только на этой лекций до конца осознал что за тему мы проходим и что это такое. В отличий от курсов Java, Web или SQL и др. этому курсу не хватает как бы... простоты что ли. Там все разжевывают, показывая на примерах или картинках, или просто объясняют на пальцах: Вот представьте что наше устройство это осьминог и каждые щупальца это точки монтирования... Вот это ядро, когда мы подключаем устройство мы его видим, но не взаимодействуем. Чтобы с ним работать нужно его подсоединить делая маунты. На тех курсах ты учишься решать задачи делать логику, много понятии легкие хорошо усваиваются. На этом курсе сама тема как бы сказать... более архитектурная, приближенная к железу. Мы по сути чем то управляем внутри системы. И не хватает описания самой этой системы. И еще много именно как бы сказать low level команд. На Java например есть около 50 ключевых слов. И небольшой его синтаксис. А здесь на миллион задач есть миллион команд. Причем и в лекциях и в задачах много ключей которые нам не объясняют. Каждый ключ по идее это какое то сокращение от английского. Тяжело, не понимая что они значат. Чтобы понимать курс как будто не хватает знания устройства ОС под капотом. Как будто до курса нужно проходить еще курс. Такое ощущение
Stitch Уровень 14
5 апреля 2025
Так как многим приходится работать с docker на Windows+wsl было бы полезно привести примеры для монтирование папок windows в wsl