Какие основные вещи происходят, когда вы монтируете диск. Даже если диск не смонтирован, он виден компьютеру (например, sudo fdisk -l / diskutil -list). Когда монтируется диск, происходит ли то, что ОС указывает путь к устройству или происходит какая-то "магия" файловой системы?
3 ответа
Существует некоторая "волшебная" файловая система.
Это может помочь думать о вашей дисковой системе в слоях. Самый нижний уровень - это блочное устройство, затем разделы сверху, а затем файловая система сверху.
Когда диск монтируется, программа монтирования совместно с ядром и, возможно, /etc /fstab выясняет, какая файловая система находится на разделе, а затем реализует (посредством вызовов ядра) стандартные вызовы файловой системы, чтобы разрешить манипулирование файловой системой. включая чтение, письмо, листинг, разрешения и т. д.
На самом деле вы можете легко добавить дополнительные слои к этому, и все это работает одинаково. (Одним из распространенных является LVM, который расположен между разделом и файловыми системами и позволяет изменять размеры, добавлять и удалять диски даже в работающей файловой системе). Я упоминаю об этом, потому что это показывает, что есть нечто большее, чем просто указание пути к устройству.
Аналогично, разные ядра будут поддерживать разные файловые системы (например, некоторые могут включать ReiserFS, btrfs и т.д.). Также возможно реализовать файловую систему (которая все еще может быть смонтирована и размонтирована), используя файлы в "пространстве пользователя" (fuse). Это, например, позволит монтировать виртуальные файловые системы, которые не являются частью ядра, или даже виртуальные файловые системы - у меня есть, например, смонтированные каталоги FTP и даже удаленные пути по ssh как файловые системы (и, конечно, NFS и SAMBA), а также зашифрованные файлы и объединение нескольких каталогов для единой файловой системы - все это "виды магии", осуществляемые через ядро, обычно с помощью команды mount.
Когда файловая система монтируется с блочного устройства, будет сделано несколько приготовлений, включая
- Чтение информации о файловой системе, такой как тип файловой системы, версия, параметры, объем свободного места ...
- Проверка, была ли файловая система выключена (размонтирована) должным образом в прошлый раз
- Проверка, является ли блокирующее устройство доступным только для чтения (переключатель дискеты /SD-карты, CDROM /DVD).
- Воспроизведение операций, записанных в "журнале" файловой системы, если она есть.
когда вы монтируете файловую систему Linux, например ext2, ext3, ext4, .. копия суперблока файловой системы будет находиться в памяти для дальнейших действий