Linux – Is it possible to mount a disk image, created with dd, to a directory on a mounted external usb hdd

ddhard drivelinuxpartitioningslackware

I have an image of my home (/dev/sda3) partition, which I've created using the "dd" command.

dd if=/dev/sda3 of=/path/to/disk.img

I've deleted the home partition via gparted in order to enlarge my /dev/root partition. Then I've recreated the /dev/sda3 partition which is smaller in size then the one I've backed up to the image.

I was wondering since I have a 2TB external HDD, could it be possible to mount my backed up image on the external HDD and then copy the files into the /home directory. Since the external HDD would be already in a "mounted state", I'm unsure whether this is a good idea, mounting on a mounted device.

  • I'm running Slackware 13.37 (64bit).
  • used ext4 on all the partitions.
  • resized the root partition with gparted live cd.

I've tried:

mount -t ext4 /path/to/disk.img /mng/image -o loop

It gave me an fs error (wrong fs type, bad option, bad superblock on dev/loop/0)

Then I did

dmesg | tail

which outputs:

EXT4-fs (loop0) : bad geometry: block count 29009610 exceeds size of
defice (1679229 blocks)

I have no idea what to do, I want to restore my /home data from the image I've backed up.

[Update]:
* The disk.image is on my USB 16GB flash drive. The image size is around 6GB. The image was created from a deleted partition which was around 100GB and now it's reduced to around 80GB.

[Update]:
I've tried this today:
LQWiki: Some dd examples
says:

You don't want to tell a drive it is bigger than it really is by writing a partition table from a larger drive to a smaller drive. The first 63 sectors of a drive are empty, except sector 1, the MBR.

dd if=/dev/sda skip=2 of=/dev/sdb seek=2 bs=4k conv=noerror

I tried then to mount /dev/sda3 to /home.
dmesg | tail outputs an error "group descriptors corrupted!"

Then I tried:

fsck.ext4 -y -f /dev/sda3

It outputs a large amount of fixed issues and million of numbers going down at the speed of light.

After that I successfully mounted /dev/sda3 to /home, but there was no data present in the home directory. Only some directory named "lost+found" which is also empty.

Best Answer

You can skip the first step, and simply:

sudo losetup /dev/loop0 /path/to/disk.img

mkdir /mnt/image
sudo mount /path/to/disk.img /mnt/image
Related Question