stringtranslate.com

Петлевое устройство

В 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 .

Пример

Для монтирования файла, содержащего образ диска, в каталог требуется два шага:

  1. ассоциация файла с узлом устройства шлейфа ,
  2. монтирование петлевого устройства в каталоге точки монтирования

Эти две операции можно выполнить либо с помощью двух отдельных команд, либо с помощью специальных флагов команды монтирования. Первую операцию можно выполнить с помощью таких программ, как 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 на петлевом устройстве.

Смотрите также

Рекомендации

  1. ^ "мдконфигурация". freebsd.org .
  2. ^ «Раздел 7 страниц руководства: Устройства и сетевые интерфейсы — Sun Microsystems» . Архивировано из оригинала 30 декабря 2010 г. Проверено 28 сентября 2009 г.
  3. ^ «Инструменты Schily — просмотрите /kernel/fbk на SourceForge.net» . sourceforge.net .
  4. ^ «Использование брака для создания образов файловой системы в файлах» . uw714doc.sco.com .
  5. ^ «GES в Windows 7» . docs.microsoft.com .
  6. ^ «Файл VHD виртуального жесткого диска — создание и запуск при загрузке — справочные форумы Windows 7» . Sevenforums.com .
  7. ^ «Windows XP/Vista: Как прикрепить файл VHD» . Технические рецепты: кулинарная книга, полная технических руководств . 12 ноября 2008 г.
  8. ^ «Страница руководства UNIX: man 8 lossup» . man7.org .
  9. ^ lofiadm, Руководство по администрированию системы Sun. Архивировано 2 мая 2009 г. на Wayback Machine.

6363kk9k9k9

Внешние ссылки