Let’s assume you created a disk image with
dd on a linux computer like
1$ sudo dd if=/dev/sda of=disk.img bs=4M status=progress conv=fsync
There are several partitions in that image and we want to access the linux
filesystem on it. For reference, I’ll bring in some old backup I made from a
Raspberry Pi. That backup is taken from a 8GB sdcard, which is 2.6GB compressed
When uncompressed, look at the partition table with fdisk:
1$ fdisk -l disk.img 2Festplatte disk.img: 7,4 GiB, 7948206080 Bytes, 15523840 Sektoren 3Einheiten: Sektoren von 1 * 512 = 512 Bytes 4Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes 5E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes 6Festplattenbezeichnungstyp: dos 7Festplattenbezeichner: 0x1b7f4bbb 8 9Gerät Boot Anfang Ende Sektoren Größe Kn Typ 10disk.img1 8192 532479 524288 256M c W95 FAT32 (LBA) 11disk.img2 532480 15523839 14991360 7,1G 83 Linux
We will refer to this output later again.
The output of fdisk is not that important to us, unless we have an unknown disk image that we need to inspect first. I already know the partitions. The first is the FAT32 partition used for UEFI and the second is the root file system.
Creating and mounting the loop device
The second line is the output of the program. I used losetup already today, so
this is not loop0 but loop1. You may get
Mount the new virtual loop device to the directory that you like. This is
~/tmp in my case.
1$ sudo mount /dev/loop1p2 tmp
Removing the loop device
From the output above, we see that
532480 is the starting unit of the linux
filesystem in this image file. Further above you see the Units (Einheiten):
1 Unit is 1 sector of 512 Bytes.
I use a german speaking computer, so you might look for Start or Offset or Beginning—you know what to look for…
We calculate the needed offset like:
532480 * 512 = 272629760
And the resulting command is
1$ sudo mount -o loop,offset=272629760 disk.img tmp/
A remount is simple as
1$ sudo umount tmp
When do you need this stuff
I often create quick and dirty (big) card images from my Raspberry Pies. They are saved and easy to copy over to another storage (because they are a single file).
If you have less space,
dd is probably not the best method to create a disk
partimage for example creates images from partitions, but it only
saves the used data from that partition. Those images are smaller.