Монтирование образа диска с разделами, из командной строки, может быть не такой простой.
Создадим образ диска (например флешки), либо возьмем имеющийся, созданной какой-либо программой, например dd.
Для примера, можно потренироваться на простом образе:
Создадим файл-образ:
iam@mir:$ truncate --size=128MiB test.img
Это пустой файл.
Разметка образа в старую систему MBR (хотя можно также использовать GPT - gdisk).
iam@mir:$ fdisk test.img
Создадим 2 любых первичных раздела:
и посмотрим что получилось (первый раздел 64MiB, второй - что осталось):
iam@mir:$ fdisk -l test.img
Диск test.img: 134 МБ, 134217728 байт
255 головок, 63 секторов/треков, 16 цилиндров, всего 262144 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0xdcf09775
Устр-во Загр Начало Конец Блоки Id Система
test.img1 2048 127047 62500 83 Linux
test.img2 127048 262143 67548 83 Linux
Создадим образ диска (например флешки), либо возьмем имеющийся, созданной какой-либо программой, например dd.
Для примера, можно потренироваться на простом образе:
Создадим файл-образ:
iam@mir:$ truncate --size=128MiB test.img
Это пустой файл.
Разметка образа в старую систему MBR (хотя можно также использовать GPT - gdisk).
iam@mir:$ fdisk test.img
Создадим 2 любых первичных раздела:
и посмотрим что получилось (первый раздел 64MiB, второй - что осталось):
iam@mir:$ fdisk -l test.img
Диск test.img: 134 МБ, 134217728 байт
255 головок, 63 секторов/треков, 16 цилиндров, всего 262144 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0xdcf09775
Устр-во Загр Начало Конец Блоки Id Система
test.img1 2048 127047 62500 83 Linux
test.img2 127048 262143 67548 83 Linux
Кстати видно, что утилита fdisk из последних версий, осуществляет выравнивание разделов, иначе бы, начало первого раздела было с сектора 63, а не 2048.
Итак, основная идея - использование опции offset и sizelimit команд losetup и mount. Это потенциально позволит взять любой кусок из файла и примонтировать его.
Для получения смещения первого раздела, вычислим 2048 х 512 = 1048576
Для получения смещения второго раздела, вычислим 127048 х 512 = 65048576
Примонтируем первый раздел образа, как петлевое устройство /dev/loop7
iam@mir:$ sudo losetup --offset=1048576 --sizelimit=64MiB /dev/loop7 test.img
Посмотрим:
iam@mir:$ sudo losetup -a
/dev/loop7: [0804]:3823823 (/home/iam/test.img), offset 1048576, sizelimit 67108864
Сделаем файловую систему на разделе. Я предпочитаю UDF.
iam@mir:$ sudo mkudffs /dev/loop7
start=0, blocks=16, type=RESERVED
start=16, blocks=3, type=VRS
start=19, blocks=237, type=USPACE
start=256, blocks=1, type=ANCHOR
start=257, blocks=16, type=PVDS
start=273, blocks=1, type=LVID
start=274, blocks=32237, type=PSPACE
start=32511, blocks=1, type=ANCHOR
start=32512, blocks=239, type=USPACE
start=32751, blocks=16, type=RVDS
start=32767, blocks=1, type=ANCHOR
Можно отмонтировать петлевое устройство:
iam@mir:$ sudo losetup -d /dev/loop7
Проверяем, правильно ли всё сделали - монтируем:
root@mir:# mount test.img /mnt/udf -o loop,offset=1048576
Если всё правильно, в синтаксисе не ошиблись, то можно читать писать в каталог /mnt/udf
Отмонтируем наш 64MiB раздел:
root@mir:# sync && umount /mnt/udf
Со вторым разделом, можно проделать тоже самое.
Комментариев нет:
Отправить комментарий