В Unix-подобных операционных системах петлевое устройство , vnd (диск vnode) или lofi (циклический файловый интерфейс) — это псевдоустройство , которое делает компьютерный файл доступным как блочное устройство .
Перед использованием шлейфовое устройство необходимо подключить к существующему файлу в файловой системе . Ассоциация предоставляет пользователю интерфейс прикладного программирования ( API ), который позволяет использовать файл вместо специального файла блока (см. файловую систему устройства ). Таким образом, если файл содержит всю файловую систему, его можно смонтировать , как если бы он был дисковым устройством.
Файлы такого типа часто используются для ISO-образов компакт-дисков и дискет . Монтирование файла, содержащего файловую систему, с помощью такого циклического монтирования делает файлы внутри этой файловой системы доступными. Они появляются в каталоге точки монтирования .
Шлейфовое устройство может допускать некоторую обработку данных во время этого перенаправления. Например, устройство может представлять собой незашифрованную версию зашифрованного файла. В таком случае файл, связанный с петлевым устройством, может быть другим псевдоустройством. Это особенно полезно, когда устройство содержит зашифрованную файловую систему. Если оно поддерживается, петлевое устройство в этом случае представляет собой расшифрованную версию исходного зашифрованного файла и, следовательно, может быть смонтировано, как если бы это была обычная файловая система.
После монтирования файла, содержащего файловую систему, к файлам в этой системе можно получить доступ через обычный интерфейс файловой системы операционной системы без необходимости использования специальных функций, таких как чтение и запись ISO-образов в приложениях.
Различные Unix-подобные операционные системы обеспечивают функциональность петлевого устройства, используя разные имена.
В Linux имена устройств кодируются в записях таблицы символов соответствующих драйверов устройств. Устройство называется «петлевым» устройством, а узлы устройства обычно называются /dev/loop0 , /dev/loop1 и т. д. Их можно создать с помощью makedev для статического каталога устройства динамически с помощью средств файловой системы устройства ( udev ) или напрямую с помощью mknod . Пользовательский интерфейс управления петлевым устройством — lossup , который является частью пакета util-linux .
Иногда устройство шлейфа ошибочно называют устройством обратной связи , но этот термин зарезервирован для сетевого устройства в операционных системах. Концепция петлевого устройства различна.
В системах, производных от BSD, таких как NetBSD и OpenBSD , петлевое устройство называется «устройством виртуального узла» или «vnd» и обычно располагается по адресу /dev/vnd0 , /dev/rvnd0 или /dev/svnd0 и т. д. в файловая система. Для настройки используется программа vnconfig .
FreeBSD следовала тем же соглашениям, что и другие системы BSD, до версии 5, в которой петлевое устройство было включено в драйвер диска памяти («md»). Конфигурация теперь выполняется с помощью утилиты mdconfig . [1]
В Solaris / OpenSolaris петлевое устройство называется «файловый интерфейс обратной связи» или lofi, [2] и расположено по адресу /dev/lofi/1 и т. д. SunOS имеет программу настройки lofiadm . lofi поддерживает сжатие только для чтения и шифрование для чтения и записи. Также доступен сторонний драйвер fbk ( файл эмулирует Blockdevice ) для SunOS/Solaris с лета 1988 года. [3]
UnixWare включает в себя динамически загружаемый драйвер устройства ( 7) и утилиту брака (1M). [4] Драйвер брака позволяет рассматривать обычный файл как устройство. Доступ к обычному файлу можно получить либо через блочное устройство /dev/marry/regfile , либо через символьное устройство /dev/marry/rregfile . Команда жениться также поддерживает шифрование и расшифровку обычного файла.
MacOS реализует собственный механизм монтирования образа как часть абстракции дискового устройства с произвольным доступом. Команда hdiutil Attach -imagekey diskimage-class=CRawDiskImage -nomount <имя_файла> приводит к тому, что блочное устройство отображается в /dev как обычное дисковое устройство и подустройства для распознанных разделов. Чтение и запись на эти устройства передаются вспомогательному процессу пользовательского режима, который считывает данные из файла или записывает их в файл. В пользовательском интерфейсе он автоматически активируется при открытии образа диска. MacOS может обрабатывать образы дисков (.dmg или .iso), CD-ROM или DVD в различных форматах.
Циклическое монтирование не было доступно в операционных системах Microsoft Windows до Windows 7 , где эта функциональность реализована изначально и доступна через утилиту diskpart . [5] [6] Однако эта возможность часто добавляется с помощью сторонних приложений, таких как Daemon Tools и Alcohol 120% . Для достижения аналогичной функциональности также можно использовать бесплатно доступные инструменты VMware (Disk Mount Utility) и LTR Data (ImDisk). В Windows XP и Vista также можно использовать функцию виртуального жесткого диска, добавив какой-либо компонент из Microsoft Virtual Server 2005 R2. [7]
В A2 (ранее AOS, а затем Bluebottle) виртуальный диск на основе файлов создается с помощью VirtualDisks.Create . Файловую систему можно установить на такой «диск» с помощью VirtualDisks.Install .
Для монтирования файла, содержащего образ диска, в каталог требуется два шага:
Эти две операции можно выполнить либо с помощью двух отдельных команд, либо с помощью специальных флагов команды монтирования. Первую операцию можно выполнить с помощью таких программ, как Losetup [8] в Linux или lofiadm [9] в SunOS. Например, если example.img
это обычный файл, содержащий файловую систему и /home/you/dir
являющийся каталогом пользователя Linux, суперпользователь (root) может смонтировать файл в каталоге, выполнив следующие две команды:
Losetup /dev/loop0 example.imgсмонтировать /dev/loop0 /home/you/dir
Вторая команда монтирует устройство в каталог /home/you/dir
. Общий эффект от выполнения этих двух команд заключается в том, что содержимое файла используется как файловая система, расположенная в точке монтирования.
Чтобы определить доступное петлевое устройство для использования в приведенных выше командах, суперпользователь (root) может использовать:
проиграть -f
Утилита монтирования обычно способна выполнить всю процедуру:
mount -o цикл example.img /home/you/dir
Затем устройство можно отключить с помощью следующей команды:
umount /home/you/dir# или после нахождения соответствующего номера цикла, например, с помощью команды mount | grep "/домой/вы/каталог"# или проиграть -a | пример grep.imgразмонтировать /dev/loop<N>
В интерфейсе прикладного программирования нижнего уровня ( API ) ассоциация и отсоединение файла с петлевым устройством выполняется с помощью системного вызова ioctl на петлевом устройстве.
6363kk9k9k9