O Parted deve conseguir ler a imagem do disco a partir do arquivo e interpretar a tabela de partições. Então use
parted -s disk.img unit s print
Para minha (disco) imagem de disco, ele fornece:
# parted -s /root/sdd.img unit s print
Model: (file)
Disk /root/sdd.img: 16384s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 5s 7812s 7808s primary type=83
2 7872s 16383s 8512s primary type=83
Você pode ver qual setor cada partição inicia (e termina) em.