Ответ на этот вопрос является частью ответа на другие вопросы, но здесь он заслуживает канонического подхода, поэтому повторять его не нужно.
Вы не можете смонтировать образ в целом, потому что он на самом деле содержит два раздела и загрузочный сектор. Однако вы можете смонтировать отдельные разделы в образе, если знаете их смещение внутри файла. Чтобы найти их, изучите изображение как блочное устройство fdisk -l whatever.img
. Выходные данные должны включать в себя следующую таблицу:
Device Boot Start End Blocks Id System
whatever.img1 8192 122879 57344 c W95 FAT32 (LBA)
whatever.img2 122880 5785599 2831360 83 Linux
Это два раздела. Первый помечен как «FAT32», а второй - «Linux». Над этой таблицей есть некоторая другая информация об устройстве в целом, включая:
Units: sectors of 1 * 512 = 512 bytes
Мы можем найти смещение в байтах, умножив размер этого блока на Start
блок раздела:
- 1-й раздел 512 * 8192 = 4194304
- 2-я перегородка 512 * 122880 = 62914560
Они могут быть использованы с offset
опцией mount
команды. У нас также есть подсказка о типе каждого раздела из fdisk
. Итак, предположим, что у нас есть каталоги /mnt/img/one
и они /mnt/img/two
доступны как точки монтирования:
mount -v -o offset=4194304 -t vfat whatever.img /mnt/img/one
mount -v -o offset=62914560 -t ext4 whatever.img /mnt/img/two
Если вы получаете ошибку «Перекрывающийся цикл», ваша версия mount
требует, чтобы вы указали размер, а также смещение первого раздела. Размонтируйте его и используйте количество блоков (57344) * 512 (= 29360128):
mount -v -o offset=4194304,sizelimit=29360128 \
-t vfat whatever.img /mnt/img/one
Второй раздел не нуждается в sizelimit, так как на изображении нет ничего после него.
Теперь вы можете получить доступ к двум разделам. Если вы не собираетесь что-либо менять в них, используйте -r
переключатель (только для чтения). Если вы что-то измените, эти изменения будут включены в .img
файл.
Обратите внимание, что первый раздел, вероятно, смонтирован /boot
во втором разделе, когда система работает.