Что такое 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):
LOOP_SET_STATUS64, LOOP_GET_STATUS64 Они подобны описанным выше LOOP_SET_STATUS и LOOP_GET_STATUS, но используют структуру loop_info64, в которой есть несколько дополнительных полей, а некоторым другим полям назначены типы с большим диапазоном значений:
Источник
Зачем вообще нужно петлевое устройство?
Ранее я использовал для создания файлов изображений с помощью 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 программа обнаруживает, что аргумент, который, как ожидается, будет блочным устройством, вместо этого представляется файлом плана.
Источник
Вопросы по устройствам 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. См. Эту статью в Википедии.
/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.
Источник
Gentoo: настройка и подключение через /dev/loop файловой системы с компрессией на примере Reiser4
Есть у меня несколько VPS’ок с Gentoo, бегущих под VMWare, для которых я, пожадничав, выделил всего по 7G дискового пространства. Как-то раз, после выхода очередной версии gcc, на одной из них закончилось место. Покопавшись, я обнаружил, что главными потребителями были директории /usr/src и /usr/portage. Тут же родилась мысль переместить их на файловую систему с компрессией (ага, на NTFS) и выбор пал на Reiser4, так как эти данные идеально подходят для неё — очень много файлов и они все маленькие.
Про эту файловую систему в сети имеется множество противоречивой информации (2013), но, пожалуй, стоит почитать статью (2010) ведущего разработчика.
Цитата из статьи:
за последние четыре года я не помню, чтобы кто-то терял данные на reiser4 разделе при исправно работающем железе. Ко мне обращалось несколько человек с жалобой на работу fsck. В конечном итоге все они получали и свои данные и работающий fsck.
Не надо её бояться…
Хочу особо подчеркнуть, так как их часто путают между собой, Reiser4 это не то же самое, что ReiserFS. Это две разных файловых системы! ReiserFS давно уже живет в основном транке ядра, а вот для Reiser4, хотя и появилась она на свет в далеком 2004 году, придется применять патч, который, надо заметить, регулярно обновляется для новых версий ядра.
Качаем и применяем патч в соответствии с вашей версией ядра (у меня в системе linux-3.10.25-gentoo) с этой страницы
Скажем, это можно сделать вот так:
Конфигурируем наше ядро. Обратите внимание — поддержка ReiserFS не требуется. Скрин моей конкретной системы, на вашей могут быть другие настройки, но нас сейчас интересует только:
File Systems -> Reiser4
и не забываем про:
Device Drivers > Block devices -> Loopback device support
Вот пример реальной последовательности команд и действий, которые я выполнял на своем сервере, вдруг, кому-то пригодится:
Так как я ставлю совсем новое ядро, то нужно подправить настройки загрузчика, я пользуюсь GRUB:
Рабочая запись для нового ядра выглядит так (просто для примера, у вас может быть всё совсем по-другому):
Не стоит пока что делать её конфигурацией по умолчанию, для начала перезапустим сервер и убедимся, что все хорошо.
Делаем контрольный замер свободного места на дисках:
Запасаемся попкорном с валидолом и…
Не забываем ручками выбрать новую конфигурацию ядра для загрузки:
Надеюсь, ваш сервер всё ещё с вами…
Первое и второе мы уже съели, переходим к десерту — созданию loop устройства и монтированием на него образа диска с Reiser4:
Наконец, монтируем наш новый «диск»:
Перемещаем требуемые директории на новое место жительства (тут можно выпить чашечку кофе и поделать другие дела)
Всё, можно сделать контрольный и подсчитывать профит:
Итого: наши исходники занимали 3.9G, после упаковки это значение уменьшилось до 1.8G, или 46% (сжались больше, чем в два раза!) от исходного размера. Мелочь, конечно, но приятно.
Такая конфигурация используется у меня около года без каких-либо проблем, 2G еще ни разу не закончились, ядро не паниковало, а CPU не расправился во время emerge -DNu world. Однако, все-таки есть один минус, если в таком контейнере закончится место, то для увеличения его размеров придется создавать новый файл большего размера и переливать в него все содержимое из старого файла. К сожалению, утилита resize_reiser4 все ещё никем не написана. Возможно, если кто-то знает другой способ увеличения размера этой файловой системы, то поделитесь пожалуйста в комментариях. И в каких файловых системах, кроме NTFS и BRTFS, есть поддержка прозрачного сжатия данных?
Цитата из статьи, ссылка на которую дана в начале поста:
The Reiser4 performance results were mixed but overall its performance was decent compared to EXT4/XFS/Btrfs given the limited manpower devoted to this out-of-tree file-system and its unfortunate history. Beyond porting the file-system to newer versions of the Linux kernel and fixing bugs, there’s been no major development progress on Reiser4 in months. At this time, however, it appears there are still no formal plans for merging Reiser4 into the mainline Linux kernel anytime soon.
Источник