Loop0 linux что это

Зачем вообще нужно петлевое устройство?

Ранее я использовал для создания файлов изображений с помощью dd , настроить на них файловую систему mkfs и mount их доступ к ним как смонтированные разделы. Позже я увидел в Интернете, что многие примеры используют losetup заранее, чтобы сделать запись устройства петли /dev , а затем смонтировать ее. Я не мог сказать, почему практически нужен файл изображения, чтобы он работал как устройство цикла и имел собственную /dev запись, в то время как такое же поведение можно было бы получить без всяких хлопот.

Описание: В реальном сценарии, зачем нам вообще нужна /dev/loopX запись, когда мы можем просто смонтировать образ fs без него? Какая польза от петлевого устройства?

Монтирование, как правило, должно выполняться на блочных устройствах. Драйвер цикла помещает интерфейсный блок устройства в ваш файл данных.

Если вы делаете монтирование без цикла, losetup то ОС делает это в фоновом режиме.

Вам может потребоваться позвонить losetup напрямую, если в вашем образе файла есть встроенные разделы.

например, если у меня есть это изображение:

Я не могу установить это напрямую

Но если я использую losetup и kpartx тогда я могу получить доступ к разделам:

Файловые системы ожидают чтения и записи на блочные устройства, но файлы изображений не являются блочными устройствами. Петлевые устройства предоставляют блочное устройство поверх файла (или другое блочное устройство, возможно с переназначением).

Во многих случаях нет необходимости учитывать петлевые устройства при монтаже изображений, потому что mount обо всем позаботится; но петлевые устройства все еще участвуют. losetup -l -a покажет им.

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

Я изобрел эту функцию в 1988 году на SunOS-4.0, и я называю эту функцию fbk — файл эмулирует устройство BlocK.

Фоном является то, что драйвер устройства эмулирует блочное устройство поверх простого файла. Это необходимо, поскольку файловая система не может использовать обычный файл в качестве фонового хранилища для файловой системы. Это скорее нуждается в блочном устройстве, и это — то, что fbk подражает.

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

Источник

Loop0 linux что это

Другой пример смотрите в losetup(8).

Для шифрования и расшифровки каждому закольцованному устройству может быть назначена функция обмена.

Для закольцованного блочного устройства доступны следующие операции ioctl(2):

LOOP_SET_FD Связывает закольцованное устройство с открытым файлом, чей файловый дескриптор передаётся в третьем аргументе ioctl(2). LOOP_CLR_FD Отвязывает закольцованное устройство от файлового дескриптора. LOOP_SET_STATUS Назначает состояние (передаваемое в третьем аргументе ioctl(2)) закольцованному устройству. Данный аргумент представляет собой указатель на структуру loop_info, определённую в следующим образом:

Типом шифрования (lo_encrypt_type) должно быть одно из значений: LO_CRYPT_NONE, LO_CRYPT_XOR, LO_CRYPT_DES, LO_CRYPT_FISH2, LO_CRYPT_BLOW, LO_CRYPT_CAST128, LO_CRYPT_IDEA, LO_CRYPT_DUMMY, LO_CRYPT_SKIPJACK или LO_CRYPT_CRYPTOAPI (начиная с Linux 2.6.0).

Поле lo_flags представляет собой битовую маску, в которой может быть ноль или несколько следующих значений:

LO_FLAGS_READ_ONLY Закольцованное устройство доступно только для чтения. LO_FLAGS_AUTOCLEAR (начиная с Linux 2.6.25) Закольцованное устройство автоматически уничтожится после закрытия. LO_FLAGS_PARTSCAN (начиная с Linux 3.2) Разрешено автоматическое сканирования разделов. LOOP_GET_STATUS Получить состояние закольцованного устройства. В третьем аргументе ioctl(2) должен быть задан указатель на структуру struct loop_info. LOOP_CHANGE_FD (начиная с Linux 2.6.5) Поменять источник данных (backing store) закольцованного устройства на новый файл, определяемый файловым дескриптором, указанным в третьем аргументе ioctl(2), представленный целым числом. Данная операция допустима только, если закольцованное устройство доступно только на чтение и новый источник данных имеет тот же размер и тип, использованный ранее. LOOP_SET_CAPACITY (начиная с Linux 2.6.30) Изменить размер используемого (live) закольцованного устройства. Можно изменить размер используемого источника данных, а затем применить эту операцию для того, чтобы драйвер закольцованных устройств учёл новый размер. У этой операции нет аргументов.

Начиная с Linux 2.6, появилось две новые операции ioctl(2):

Читайте также:  Linux как запустить kde

LOOP_SET_STATUS64, LOOP_GET_STATUS64 Они подобны описанным выше LOOP_SET_STATUS и LOOP_GET_STATUS, но используют структуру loop_info64, в которой есть несколько дополнительных полей, а некоторым другим полям назначены типы с большим диапазоном значений:

Источник

Вопросы по устройствам Loop и монтированию образа диска

По поводу первой команды «Мне нужно» Рассчитать смещение от начала изображения до начала раздела «, но не знаю, что означают числа, указанные в ** (512 в этом примере):

о второй команде, что такое «loop0»:

Я посмотрел там, и это было похоже на текстовый файл, но это не так, это тоже не папка. что это за файл? Могу ли я выбрать другое имя для него? Если да, я должен создать это раньше?

Как работает третья команда? Что означает каждая часть в этом?:

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

Спасибо за ваши ответы и обучение меня (:

1 ответ

В первой команде число 512 относится к размеру блока изображения. Когда файл записывается на диск, он использует x количество блоков. Оставшаяся часть любого неиспользованного блока — пустое место. Вот почему вы иногда видите вещи, перечисленные как размер (фактический размер файла, папки и т. Д.) И размер на диске (объем фактически занятого диска, что позволяет учитывать несоответствие размера блока. Возьмите, например, файл размером 1234 байта, если бы мы использовали блоки по 512 байт, то на самом деле это заняло бы 3 блока, или 1536 байт (512 * 3) и 302 байта (1536 — 1234) были бы «потрачены впустую».

Loop0 — это устройство с обратной связью. Все файлы в /dev на самом деле устройства (отсюда и название:-)). Linux рассматривает устройства как файлы, что позволяет очень легко выполнять некоторые задачи при работе с оборудованием. т. е. следующая команда отправит аудиофайл непосредственно на звуковую карту для воспроизведения (программное обеспечение не требуется, аккуратно!)

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

Для последней команды мы просто монтируем файловую систему на вашем поддельном диске (ваш файл образа) в папку в локальной файловой системе. В Linux мы используем плоскую структуру каталогов, поэтому каждое местоположение файла (включая устройства, сетевые диски и внешние жесткие диски и т. Д.) Начинается с ‘/’, который также называется корнем файловой системы. Монтирование файловой системы просто помещает ее в место, доступное для остальной части системы (где-то в /).

Теперь по умолчанию только пользователь с именем «root» может монтировать файловые системы. Пользователь root в основном такой же, как пользователь администратора в Windows. Кто-то, кто может сделать что-нибудь на компьютере. В Ubuntu пользователь root скрыт для безопасности, поэтому нам нужно использовать sudo , Команда sudo, по сути, означает «эй, сделайте меня пользователем root для запуска этой команды».

mount вот команда, которую мы запускаем как root (sudo), /dev/loop0 — это наш поддельный диск, который мы создали ранее, и /mnt — это место, где мы хотим, чтобы образ был доступен. /mnt и /media — это стандартные места в Linux, где мы монтируем файловые системы, хотя это может быть где угодно. Лучше всего создавать подпапку в /mnt или /media для монтирования, вместо просто /mnt. Это потому, что у вас могут быть смонтированы другие файловые системы, и если вы смонтируете поверх них, они не будут доступны! Единственное предостережение: вам нужны права суперпользователя для создания папки, поэтому ваша последняя команда должна состоять из двух команд и выглядеть следующим образом:

mkdir это просто команда для создания каталога.

Источник

Что такое / dev / loopx? [dубликат]

Что это за /dev/loop файлы устройств? Моя оперативная память всегда заполнена. Связано это?

9 ответов

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

Читайте также:  Установить cisco anyconnect для mac os

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

/dev/loop* — это петлевые устройства, которые обеспечивают доступ к открытым файлам в виде блоков. Они не имеют никакого отношения к занятию ОЗУ. Они обычно используются для установки образов дисков, в вашем случае, по-видимому, для Ubuntu Snap. См. Эту статью в Википедии.

Это нормально. / dev / loopX — это виртуальные устройства для монтирования файлов изображений, это только -read, поэтому они не становятся больше или меньше, чем при создании.

Точки монтирования подключены к службе snapd. Вы увидите дополнительные устройства цикла, добавленные для каждого программного обеспечения, которое вы устанавливаете, используя «привязку». Его можно удалить, удалив приложение через snapd.

Это нормально. / dev / loopX — это виртуальные устройства для монтирования файлов изображений, это только -read, поэтому они не становятся больше или меньше, чем при создании.

Точки монтирования подключены к службе snapd. Вы увидите дополнительные устройства цикла, добавленные для каждого программного обеспечения, которое вы устанавливаете, используя «привязку». Его можно удалить, удалив приложение через snapd.

Это нормально. / dev / loopX — это виртуальные устройства для монтирования файлов изображений, это только -read, поэтому они не становятся больше или меньше, чем при создании.

Точки монтирования подключены к службе snapd. Вы увидите дополнительные устройства цикла, добавленные для каждого программного обеспечения, которое вы устанавливаете, используя «привязку». Его можно удалить, удалив приложение через snapd.

Источник

Устройство петли — Loop device

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

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

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

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

СОДЕРЖАНИЕ

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

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

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

Читайте также:  Настройка почты windows для gmail

Доступность

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

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

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

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

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

В Solaris / OpenSolaris устройство цикла называется «файловый интерфейс обратной связи» или lofi и находится в / dev / lofi / 1 и т. Д. SunOS имеет программу настройки lofiadm . «lofi поддерживает сжатие только для чтения и шифрование для чтения и записи. С лета 1988 года для SunOS / Solaris доступен также сторонний драйвер fbk ( файл эмулирует блочное устройство ).

UnixWare включает динамически загружаемый драйвер устройства marry (7) и утилиту marry (1M). Драйвер 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 . Однако это средство часто добавляется с помощью сторонних приложений, таких как Daemon Tools и Alcohol 120% . Свободно доступные инструменты от VMware (Disk Mount Utility) и LTR Data (ImDisk) также могут использоваться для достижения аналогичной функциональности. В Windows XP и Vista также можно использовать функцию виртуального жесткого диска, добавив некоторый компонент из Microsoft Virtual Server 2005 R2.

В A2 , ранее AOS, а затем Bluebottle, виртуальный диск на основе файлов создается с помощью VirtualDisks.Create . На такой «диск» можно установить файловую систему с помощью VirtualDisks.Install .

Пример

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

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

Эти две операции могут быть выполнены либо с помощью двух отдельных команд, либо с помощью специальных флагов для команды mount. Первая операция может выполняться такими программами, как losetup в Linux или lofiadm в SunOS. Например, если example.img это обычный файл, содержащий файловую систему, и /home/you/dir каталог пользователя Linux, суперпользователь (root) может смонтировать файл в каталоге, выполнив следующие две команды:

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

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

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

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

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

Источник

Оцените статью