I have a DD image taken from the raw HDD image (/dev/sdb). This image file contains an XFS filesystem that I need to mount. It is much too large to restore to disks (2.6TB img file) so I would like to mount it using loopback.

However, the partition table becomes a problem. I tried to determine the partitions offset using both parted and fdisk -lu. Parted returns "unrecognized disk label", fdisk -lu shows me a blank partition table.

How would you recommend finding the partition start so that I can mount it with -o loop

link|improve this question

50% accept rate
sfidsk does not show me the partition table. "No partitions found" I used head -c 15000 sdb.img in order to see what I was looking at. I then did some researcha nd saw that it is a LVM volumegroup meta data. Contains things like dev_size, pe_start, pe_count. etc – coderego Apr 18 '11 at 19:42
how are you using those tools? – Keith Apr 18 '11 at 20:05
I am using the tools through bash with sudo. – coderego Apr 18 '11 at 21:04
feedback

5 Answers

up vote 4 down vote accepted

The kpartx command will do all the work for you of detecting where the partitions exist and setting up loop devices with the appropriate offsets.

# kpartx -l /dev/ganderData/example-sysdisk
ganderData-example--sysdisk-1 : 0 497952 /dev/ganderData/example-sysdisk 63
ganderData-example--sysdisk-2 : 0 62412525 /dev/ganderData/example-sysdisk 498015

# kpartx -a /dev/ganderData/example-sysdisk
# mount /dev/mapper/ganderData-example--sysdisk-2 /mnt/tmp
link|improve this answer
feedback

See if testdisk can find your partition labels. You can try and see if kpartx can find and enable it first:

# kpartx -a -v image

Also remember to try those two things on a copy of the image. You don't want to destroy your backup image with tests.

link|improve this answer
feedback

You can use sfdisk to dump the partition table of the image. Pretty well any of the *fdisk variants will do so, but some complain more than others. This will enable you to calculate the offset of the partition.

link|improve this answer
feedback

Run file - </dev/sdb to see what you actually have on the disk, since it doesn't seem to be an image of a disk with a PC partition system.

Given your comment, you probably have an LVM physical volume. So first associate a block device to it with losetup, then register the loop device as a physical volume and go on from there.

losetup -fv /path/to/image/file
pvs  # will show /dev/loop99 (for some value of 99) as a physical volume
vgs  # will show the VG(s) on /dev/loop99
lvs  # will show the LV(s) on the VG(s) on /dev/loop99
mount /dev/mapper/groupname-volumename /mnt
…
vgchange -an groupname
losetup -u /dev/loop99
link|improve this answer
feedback

kpartx was mentioned twice and you should use it! This post will give you some pratice with kpartx &Co.: Can I "atomically" swap a raid5 drive in Linux software raid?

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.