Автоматическое обнаружение разделов
Автоматически распознать разделы в файле-образе можно так:
sudo kpartx -v -a /mnt/hdd/image_file.img ls /dev/mapper/
Монтирование разделов по смещению
Вручную смонтировать разделы из файла-образа можно сделать, указав команде losetup нужное смещение:
$ /sbin/fdisk -lu disk.img You must set cylinders. You can do this from the extra functions menu. Disk disk.img: 0 MB, 0 bytes 255 heads, 63 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System disk.imgp1 * 63 96389 48163+ 83 Linux disk.imgp2 96390 2056319 979965 82 Linux swap / Solaris disk.imgp3 2056320 78140159 38041920 5 Extended disk.imgp5 2056383 3052349 497983+ 83 Linux disk.imgp6 3052413 10859939 3903763+ 83 Linux disk.imgp7 10860003 68372639 28756318+ 83 Linux disk.imgp8 68372703 76180229 3903763+ 83 Linux disk.imgp9 76180293 78140159 979933+ 83 Linux
Тут смотрим размер юнита и смещение начала нужного раздела. В данном случае юнит - это один сектор размером 512 байт (Units = sectors of 1 * 512 = 512 bytes). Для раздела 7 смещение начала - 10860003 секторов. Теперь можно создавать loop-устройство с нужным смещением:
# losetup /dev/loop0 disk.img -o $((10860003 * 512)) # file -s /dev/loop0 /dev/loop0: Linux rev 1.0 ext3 filesystem data # mount /dev/loop0 /mnt [...] # umount /mnt # losetup -d /dev/loop0
Также, если на разделе действительно существует файловая система можно задать смещение непосредственно команде mount:
# mount -o loop,offset=$((10860003 * 512)) disk.img /mnt [...] # umount /mnt
Discussion