Table of Contents

Автоматическое обнаружение разделов

Автоматически распознать разделы в файле-образе можно так:

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