Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

15 - монтирование файловых систем. Команда mount.

Лекция



Сразу хочу сказать, что здесь никакой воды про монтирование файловых систем, и только нужная информация. Для того чтобы лучше понимать что такое монтирование файловых систем, mount, монтированиие , настоятельно рекомендую прочитать все из категории Операционная система LINUX.

На предыдущих лекциях уже несколько раз затрагивалась тема монтирования файловых систем. Сегодня (и на следующей лекции) мы более подробно остановимся на этом вопросе. В современных дистрибутивах монтирование файловых систем в большинстве случаев происходит автоматически. Когда вы вставляете флешку в USB-разъем компьютера, у вас в каталоге /media появляется каталог с именем флешки и вы можете сразу работать с устройством (читать записывать файлы). Раньше (до появления подсистемы udev), прежде чем работать с флешкой (и любым другим блочным устройством) нужно было выполнить операцию монтирования. Когда подключается флешка (будем использовать флешку в качестве примера подразумеваю любое блочное устройство) в системе появляется физическое устройство (в каталоге /dev) с которым можно работать как с блочным устройством. Например, считать информацию с помощью команды dd. Но нам необходимо получить доступ к файловой системе этого устройства, а не к самому устройству и поэтому необходимо выполнить операцию монтирования.

В монтировании присутствуют два основных компонента: физическое устройство или раздел физического устройства с определенной файловой системой (то ЧТО монтируем) и точка монтирования (то КУДА монтируем). Точка монтирования - это обычный каталог в любом месте системы, который будет родительским для файловой системы монтируемого устройства. Каталог может быть как пустым (как правило), так и с информацией. Если монтировать в каталог с информацией, то предыдущее содержимое каталога будет заменено содержимым файловой системы монтируемого устройства, но только на время монтирования. Это очень важно понять и запомнить. Как только вы размонтируете каталог, информация, которая была в нем до монтирования снова станет доступна. Но это частный случай. Все таки в большинстве случаев монтируют в пустые каталоги.

Для монтирования используется команда mount. Наиболее часто эта команда используется в виде mount -t type device dir, где после ключа -t указывается тип монтируемой файловой системы, затем указывается монтируемое устройство (device) и после этого директория (точка монтирования - dir). Например, есть флешка - устройство/dev/sdc, на нем есть раздел /dev/sdc1. Монтировать нужно именно раздел - /dev/sdc1 - отформатированную область, а не физическое устройство /dev/sdc. Команда mount для этого случая будет выглядеть так: mount -t vfat /dev/sdc1 /media/fleshka. Каталог fleshka (точка монтирования) должен существовать и если его нет, то необходимо его создать командой mkdir или выбрать другой - существующий каталог. Так как флешка была отформатирована в FAT32, то использовался тип файловой системы vfat. Если бы монтировали ntfs-разделы Windows, то следовало указать файловую систему ntfs. Об этом говорит сайт https://intellect.icu . Все типы поддерживаемых файловых систем можно посмотреть в man mount.

Размонтирование файловой системы системы выполняется при помощи команды umount точка монтирования | устройство. Из нашего примера с флешкой umount /media/fleshka или umount /dev/sdc1. Команда umountне сможет размонтировать устройство если оно занято какой либо программой. Например, если зайти в одной консоли в каталог на смонтированном CD-ROM-диске, а затем в другой консоли попытаться выполнить командуumount, то получим ошибку:

igor@adm-ubuntu:~/linux$ umount /media/cdrom0
umount: /media/cdrom0: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

Команда lsof /media/cdrom0 покажет какие файлы открыты из каталога /media/cdrom0 и кем:

igor@adm-ubuntu:~/linux$ lsof /media/cdrom0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 4908 igor cwd DIR 11,0 2048 1664 /media/cdrom0
less 19323 igor cwd DIR 11,0 2048 1664 /media/cdrom0
less 19323 igor 4r REG 11,0 32 1669 /media/cdrom0/config.txt

Как видите действительно есть открытые файлы и каталоги. Чтобы корректно отмонтировать файловую систему, необходимо закрыть все открытые файлы и выйти из всех каталогов или выполнить команду umount с ключем -fumount -f /media/cdrom0.

В связи с этим часто встречается следующая ситуация у начинающих linux-пользователей. Вставляется CD-диск в CD-привод и идет работа с файлами диска. Затем пользователь нажимает на кнопку привода, чтобы извлечь диск и ничего не происходит. Некоторое даже перегружают компьютер так как не понимают в чем дело. А дело все в том, что диск не может быть извлечен пока не будет размонтирован, а размонтирован он не может быть потому, что с него открыты файлы (он используется). Стоит только закрыть все файлы выйти из всех каталогов и привод “отдаст” диск при нажатии на кнопку извлечения. Если диск не извлекается, значит нужно выполнить командуumount для диска и после этого нажать на кнопку извлечения.

Чтобы посмотреть какие файловые системы уже смонтированы в системе можно выполнить команду mount без параметров или выполнить команду df -a. Также можно посмотреть содержимое файла /etc/mtab. Командаmount при монтировании новой файловой системы добавляет в этот файл строку с информацией о добавляемой системе. А команда umount соответственно удаляет строку касающуюся отмонтированного раздела.

Хочу отметить, что команды mount/umount не производят никаких изменений в процессе своей работы с файловыми системами устройств и не могут их повредить. Сбои чаще всего бывают в результате нештатных попыток размонтирования файловой системы, например нажатие на кнопку reset системного блока. Старайтесь избегать этого действия и применять его только в самых крайних случаях. Если доступна командная строка, то перед тем как перегрузить компьютер с помощью кнопки reset, выполните команду sync. Данная команда говорит ядру, что необходимо немедленно записать всю информацию находящуюся в буферной памяти на соответствующие физические устройства. Это позволит уменьшить риск потерять информацию.

Команда mount умеет монтировать не только устройства, но и файлы. Для этого используется такое устройство как /dev/loop. Как правило в системе есть несколько подобных блочных псевдоустройств:

igor@adm-ubuntu:~/linux$ ls -l /dev/loop*
brw-rw—- 1 root disk 7, 0 2009-11-16 11:05 /dev/loop0
brw-rw—- 1 root disk 7, 1 2009-11-16 11:05 /dev/loop1
brw-rw—- 1 root disk 7, 2 2009-11-16 11:05 /dev/loop2
brw-rw—- 1 root disk 7, 3 2009-11-16 11:05 /dev/loop3
brw-rw—- 1 root disk 7, 4 2009-11-16 11:05 /dev/loop4
brw-rw—- 1 root disk 7, 5 2009-11-16 11:05 /dev/loop5
brw-rw—- 1 root disk 7, 6 2009-11-16 11:05 /dev/loop6
brw-rw—- 1 root disk 7, 7 2009-11-16 11:05 /dev/loop7

Для чего нам может понадобится монтировать файлы? Самый наглядный пример это, когда у нас есть образ диска в формате iso. Так как напрямую примонтировать файл к директории нельзя, то поступают следующим образом: монтируют файл к блочному устройству /dev/loop, а затем уже блочное устройство /dev/loop монтируется к точке монтирования. Для этого команду mount необходимо выполнить с ключом -o через который передать параметр loop:

igor@adm-ubuntu:~/linux$ sudo mount -o loop /home/igor/downloads/Ubuntu_DocsPack_9.04.2.iso /home/igor/linux/docpack/
igor@adm-ubuntu:~/linux$ ls ./docpack/
Document html Jurnal_FullCircle.tar.gz Jurnal_OpenSource.tar.gz Ubuntu_Docs.tar.gz
Jurnal_BlenderEmpire.tar.gz Jurnal_LGT.tar.gz readme.txt Video_Lesson.tar.gz

Таким образом мы примонтировали файл Ubuntu_DocsPack_9.04.2.iso и можем теперь обращаться к нему как к диску.

В заключении этой лекции хочу показать команду которая покажет нам все разделы всех блочных устройств системы. Мы будем подробнее рассматривать эту команду позже. Чтобы посмотреть на все разделы которые есть в системе наберите от имени суперпользователя команду fdisk -l:

igor@ubuntu:~$ sudo fdisk -l

Диск /dev/sda: 250.1 ГБ, 250059350016 байт
255 heads, 63 sectors/track, 30401 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd4b146b8

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 2304 18506848+ 7 HPFS/NTFS
/dev/sda2 2305 2472 1349460 e W95 FAT16 (LBA)
/dev/sda3 2473 10263 62581207+ 7 HPFS/NTFS
/dev/sda4 10264 30401 161758485 f W95 расшир. (LBA)
/dev/sda5 10264 12826 20587266 83 Linux
/dev/sda6 12827 12947 971901 82 Linux своп / Solaris
/dev/sda7 12948 18184 42066171 7 HPFS/NTFS
/dev/sda8 18185 27967 78581916 7 HPFS/NTFS
/dev/sda9 27968 30401 19551073+ 7 HPFS/NTFS

Диск /dev/sdb: 40.0 ГБ, 40020664320 байт
255 heads, 63 sectors/track, 4865 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb292b292

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 4660 37431418+ 83 Linux
/dev/sdb2 4661 4865 1646662+ 5 Расширенный
/dev/sdb5 4661 4850 1526143+ 82 Linux своп / Solaris
/dev/sdb6 4851 4865 120456 83 Linux

Диск /dev/sdc: 4016 МБ, 4016046080 байт
90 heads, 25 sectors/track, 3486 cylinders
Units = цилиндры of 2250 * 512 = 1152000 bytes
Disk identifier: 0×00000000

 

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 4 3487 3917824 b W95 FAT32

Эта команда хороша тем, что показывает не только имя раздела, но и файловую систему раздела. Например, файловая система раздела /dev/sdc1 - FAT32.

Пожалуйста, пиши комментарии, если ты обнаружил что-то неправильное или если ты желаешь поделиться дополнительной информацией про монтирование файловых систем Надеюсь, что теперь ты понял что такое монтирование файловых систем, mount, монтированиие и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Операционная система LINUX

создано: 2014-09-13
обновлено: 2021-03-13
132490



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционная система LINUX

Термины: Операционная система LINUX