loop-устройства
В Linux работа с образами дисков осуществляется через так называемые петлевые (loop) устройства. Образ привязывается к loop-устройству, после этого система может работать с этим устройством, как с обычным блочным.
Команда mount знакома с loop-устройствами, поэтому при простом монтировании достаточно указать параметр loop . Подробнее о монтировании образов здесь. В некоторых других случаях (например, при работе с lvm, mkfs) манипуляции с петлевыми устройствами придётся выполнять руками.
Образ к loop-устройству подцепляется так:
А отцепляется так:
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Dev loop0 что это
Другой пример смотрите в losetup(8).
Для шифрования и расшифровки каждому закольцованному устройству может быть назначена функция обмена.
Для закольцованного блочного устройства доступны следующие операции ioctl(2):
LOOP_SET_FD Связывает закольцованное устройство с открытым файлом, чей файловый дескриптор передаётся в третьем аргументе ioctl(2). LOOP_CLR_FD Отвязывает закольцованное устройство от файлового дескриптора. LOOP_SET_STATUS Назначает состояние (передаваемое в третьем аргументе ioctl(2)) закольцованному устройству. Данный аргумент представляет собой указатель на структуру loop_info, определённую в <linux/loop.h> следующим образом:
Типом шифрования (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, в которой есть несколько дополнительных полей, а некоторым другим полям назначены типы с большим диапазоном значений:
Loopback Device
A Loopback Device is a mechanism used to interpret files as real devices. The main advantage of this method is that all tools used on real disks can be used with a loopback device.
Note: This article only covers UNIX environments (including Cygwin). For information on how to use loopback devices on Windows, see diskpart.
Contents
Loopback Device under Linux
The linux loopback device can be used by root only, and needs to be enabled in the kernel before use.
Floppy Disk Images With GRUB and EXT2
First, lets create an empty image.
Now, lets set it up for mounting.
Now lets make it EXT2 formatted.
Create GRUB directory.
Copy GRUB’s second stage files. (GRUB stage[12] could also be located in /usr/lib/grub/)
Create a device mapping for the GRUB installation. You need quotations around the first part.
Start GRUB console for installation into the boot record.
In the GRUB console:
NOTE: You must unmount /mnt/myfloppy before using a emulator to directly read /dev/loop0, such as:
NOTE: When deleting the loop device, the original floppy.img file will be saved with the modified contents.
Floppy Disk Images With FAT16
Create an empty image.
Set it up for mounting.
Make it MSDOS formatted.
Floppy Disk Images With FAT12
The steps mentioned below will be useful for the BrokenThorn Entertainment tutorials
Create an empty image.
Set it up for mounting.
Format it to FAT12.
Destroy loopback device
Hard Disk Images
A hard disk image contains an MBR, then a number of partitions, but the ‘mount’ instruction in Linux works with disk partitions, not full disks. To mount a partition contained in our disk image, we need to make sure the ‘mount’ command only sees our partition, not the whole disk.
Creating an image
First create the empty file that we will use for our disk image. We will assume a disk geometry of #cylinders, 16 heads, 63 sectors/track, 512 bytes/sector, which means that each cylinder contains 516096 bytes (16*63*512). Decide how large you want your disk image to be, and choose an appropriate number of cylinders (I’ll be using #cylinders throughout).
Example: If I want a 500Mb disk, I would choose 1000 cylinders (approximation of (500*1000*1024)/516096).
Write the disk image (I’ll assume the filename c.img throughout):