Решил написать мануал (которых можно найти множество!) как подключать образы дисков в Linux как часть файловой системы. Есть некая загрузочная административная флэшка, которая используется для ремонта и обслуживания компьютеров под управлением Windows. Требуется поддерживать её в актуальном состоянии — обновлять имеющиеся на ней инструменты, дистрибутивы, переписывать обновления антивирусных программ и т.д.
Имеем флэшку, образ флэшки на винчестере и желание поддерживать всё это в порядке. Какие проблемы? Иногда флэшку нужно вставлять в небезопасные компьютеры, которые могут быть заражены вирусами. Лечить её после каждого такого события — несколько не удобная и продолжительная процедура, гораздо проще и быстрее просто затереть содержимое флэшки образом, который хранится на винчестере. В случае выхода из строя флэшки содержимое на ней не теряется безвозвратно — можно взять другую флэшку такого же размера и развернуть на неё образ.
Итак, нужно примонтировать образ флэшки, чтобы не делать образ каждый раз после обновления содержимого.
1. Запускаем fdisk ./flashka.bin
2. Переключаем единицы отображаемой информации программы fdisk командой u:
Команда (m для справки): u
Изменение единиц измерения экрана/содержимого на секторы
3. Выводим на экран структуру файловой системы флэшки командой p
Команда (m для справки): p
Диск ./flashka.bin: 0 МБ, 0 байт
255 heads, 63 sectors/track, 0 cylinders, всего 0 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00122998
Устр-во Загр Начало Конец Блоки Id Система
./flashka.bin1 * 63 31326207 15663072+ c W95 FAT32 (LBA)
Раздел 1 имеет различные физические/логические окончания:
физ=(924, 254, 63) логич=(1949, 246, 25)
4. Выходим из fdisk командой q
5. Вооружаемся калькулятором 🙂 и считаем смещение требуемого раздела относительно начала образа флэшки. Для флэшки это, как правило, один раздел, если будет образ USB винчестера, разделов может быть и больше. В нашем случае раздел FAT32 начинается с 64 сектора. Вычисляем смещение 63*512=32256 байт.
6. Монтируем образ командой mount:
sudo mount ПОЛНЫЙ_ПУТЬ_К_ОБРАЗУ/flashka.bin ПУТЬ_МОНТИРОВАНИЯ -t vfat -o loop,offset=32256,nosuid,uid=1000,gid=1000,dmask=0077,utf8=1
Здесь обязательно указать полные пути. uid и gid должны соответствовать вашему пользователю и группе, чтобы вам не пришлось работать с содержимым образа флэшки от имени root-а.
7. Запускаем команду mount без параметров и смотрим как примонтировался образ:
mount
…
/dev/loop0 on ПУТЬ_МОНТИРОВАНИЯ type vfat (rw,nosuid,offset=32256,uid=1000,gid=1000,dmask=0077,utf8=1)
8. Отмонтировать образ можно командой umount:
umount /dev/loop0