If you haven't destroyed the image with all your attempts with different tools you are able to mount it like an SD Card and get access to its files. For example I will take the Raspbian Buster Lite image how this can be done. Create a mount point:
linux ~$ sudo mkdir /mnt/img
Mount partitions from the image
Alternative 1:
Attach the image partitions to device files with:
linux ~$ sudo losetup --find --partscan --show 2019-09-26-raspbian-buster-lite.img
/dev/loop0
linux ~$ ls /dev/loop0* # check if partitions are attached
/dev/loop0 /dev/loop0p1 /dev/loop0p2
Mount the partitions as usual:
linux ~$ sudo mount /dev/loop0p2 /mnt/img # p2 = root partition
linux ~$ sudo mount /dev/loop0p1 /mnt/img/boot # p1 = boot partition
Have attention to the order of the mount commands because the mount point for boot/
is only available after the first mount. Now go to section Copy data from the image.
Alternative 2:
If you want to know what's going on you can also mount the image partitions direct with offsets. You will find the correct values for your backup.img taking the example as template. Show the partitions inside the image with:
linux ~$ sudo parted 2019-09-26-raspbian-buster-lite.img unit s print
Model: (file)
Disk /home/ingo/devel/raspi/2019-09-26-raspbian-buster-lite.img: 4390912s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 8192s 532479s 524288s primary fat32 lba
2 532480s 4390911s 3858432s primary ext4
You can see where the partitions start so you can mount them with giving the offset to the mount program. We have to do a bit arithmetic because parted shows sectors (512 bytes) not bytes.
linux ~$ sudo mount -o loop,offset=$((532480*512)),sizelimit=$((3858432*512)) 2019-09-26-raspbian-buster-lite.img /mnt/img
linux ~$ sudo mount -o loop,offset=$((8192*512)),sizelimit=$((524288*512)) 2019-09-26-raspbian-buster-lite.img /mnt/img/boot
Have attention to the order of the mount commands because the mount point for boot/
is only available after the first mount.
Copy data from the image
linux ~$ sudo ls /mnt/img
bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
linux ~$ sudo ls /mnt/img/boot
COPYING.linux bcm2708-rpi-zero.dtb bcm2711-rpi-4-b.dtb fixup4cd.dat issue.txt start.elf start_db.elf
--- snip ---
Copy what you want from the image and unmount it:
linux ~$ sudo umount /mnt/img/boot # this first
linux ~$ sudo umount /mnt/img
linux ~$ sudo losetup --detach-all # if you have used alternative 1
linux ~$ sudo rmdir /mnt/img
linux ~$
I used the dd command line on linux and cloned it
please show the command you used - if there's no boot partition, you probably only cloned the root partition - please check the boot partition which should be visible in windows