stringtranslate.com

Устройство петли

В операционных системах типа Unix петлевое устройство , vnd (диск vnode) или lofi (интерфейс петлевого файла) — это псевдоустройство , которое делает файл компьютера доступным как блочное устройство .

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

Файлы такого типа часто используются для образов CD ISO и образов дискет . Монтирование файла, содержащего файловую систему, с помощью такого циклического монтирования делает файлы в этой файловой системе доступными. Они появляются в каталоге точки монтирования .

Устройство loop может допускать некоторую обработку данных во время этого перенаправления. Например, устройство может быть незашифрованной версией зашифрованного файла. В таком случае файл, связанный с устройством loop, может быть другим псевдоустройством. Это в основном полезно, когда это устройство содержит зашифрованную файловую систему. Если поддерживается, устройство loop в этом случае является расшифрованной версией исходного зашифрованного файла и, следовательно, может быть смонтировано так, как если бы это была обычная файловая система.

Использование монтажа петли

После монтирования файла, содержащего файловую систему, доступ к файлам в этой системе можно осуществлять через обычный интерфейс файловой системы операционной системы, без необходимости использования специальных функций, таких как чтение и запись образов ISO, в приложениях.

Монтаж петли имеет несколько применений. Это удобный метод управления и редактирования образов файловой системы в автономном режиме, которые впоследствии используются для нормальной работы системы. Сюда входят образы CD или DVD или системы установки. Его можно использовать для установки операционной системы в файловую систему без повторного разбиения диска. Он также обеспечивает постоянное разделение данных, например, при моделировании съемного носителя на более быстром и удобном жестком диске или инкапсуляции зашифрованной файловой системы.

Доступность

Различные Unix-подобные операционные системы предоставляют функциональность петлевого устройства, используя разные имена.

В Linux имена устройств кодируются в записях таблицы символов соответствующих драйверов устройств. Устройство называется устройством "loop", а узлы устройств обычно называются /dev/loop0 , /dev/loop1 и т. д. Их можно создать с помощью makedev для статического каталога устройств, динамически с помощью средств файловой системы устройства ( udev ) или напрямую с помощью mknod . Пользовательский интерфейс управления для устройства loop — losetup , который является частью пакета util-linux .

Иногда устройство loop ошибочно называют loopback- устройством, но этот термин зарезервирован для сетевого устройства в операционных системах. Понятие loop- устройства отличается.

В системах, производных от BSD, таких как NetBSD и OpenBSD , петлевое устройство называется «виртуальным узловым устройством» или «vnd» и обычно располагается в файловой системе в /dev/vnd0 , /dev/rvnd0 или /dev/svnd0 и т. д. Для настройки используется программа vnconfig .

FreeBSD следовала тем же соглашениям, что и другие системы BSD до версии 5, в которой устройство loop было включено в драйвер диска памяти ("md"). Теперь настройка выполняется с помощью утилиты mdconfig . [1]

В Solaris / OpenSolaris устройство loop называется "loopback file interface" или lofi, [2] и расположено в /dev/lofi/1 и т. д. SunOS имеет программу конфигурации lofiadm . lofi поддерживает сжатие только для чтения и шифрование для чтения и записи. Также доступен сторонний драйвер fbk ( File emulates Blockdevice ), для SunOS/Solaris с лета 1988 года. [3]

UnixWare включает динамически загружаемый драйвер устройства Marry (7) и утилиту Marry (1M). [4] Драйвер Marry позволяет обрабатывать обычный файл как устройство. Доступ к обычному файлу можно получить либо через блочное устройство, /dev/marry/regfile , либо через символьное устройство, /dev/marry/rregfile . Команда Marry также поддерживает шифрование и дешифрование обычного файла.

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 пример.imgмонтируем /dev/loop0 /home/you/dir

Вторая команда монтирует устройство в каталоге /home/you/dir. Общий эффект выполнения этих двух команд заключается в том, что содержимое файла используется как файловая система, размещенная в корне точки монтирования.

Чтобы определить доступное петлевое устройство для использования в приведенных выше командах, суперпользователь (root) может использовать:

losetup -f

Утилита монтирования обычно способна справиться со всей процедурой:

mount -o loop example.img /home/you/dir

Затем устройство можно отключить с помощью следующей команды:

размонтировать /home/you/dir# или, после нахождения соответствующего номера цикла, например, mount | grep "/home/you/dir"# или losetup -a | grep example.imgразмонтировать /dev/loop<N>

На низкоуровневом интерфейсе прикладного программирования ( API ) ассоциация и отсоединение файла от петлевого устройства выполняется с помощью системного вызова ioctl на петлевом устройстве.

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

Ссылки

  1. ^ "mdconfig". freebsd.org .
  2. ^ "Man pages section 7: Device and Network Interfaces - Sun Microsystems". Архивировано из оригинала 2010-12-30 . Получено 2009-09-28 .
  3. ^ "Инструменты Schily - Просмотрите /kernel/fbk на SourceForge.net". sourceforge.net .
  4. ^ "Использование Marry для создания образов файловой системы для файлов". uw714doc.sco.com .
  5. ^ "GES в Windows 7". docs.microsoft.com .
  6. ^ "Файл виртуального жесткого диска VHD - Создание и запуск при загрузке - Форумы справки Windows 7". sevenforums.com .
  7. ^ "Windows XP/Vista: Как прикрепить файл VHD". Tech-Recipes: кулинарная книга, полная технических руководств . 12 ноября 2008 г.
  8. ^ "Страница руководства UNIX: man 8 losetup". man7.org .
  9. ^ lofiadm, Руководство по командам системного администрирования Sun. Архивировано 2009-05-02 на Wayback Machine.

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