Code:
# ls -lh testfile.bin
-rw-r--r-- 1 root root 10M Aug 15 17:23 testfile.bin
Mein Testimage ist nur 10 MB groß. Gucken wir mal rein:
Code:
# fdisk -l testfile.bin
Medium testfile.bin: 10 MiB, 10485760 Bytes, 20480 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O Größe (minimal/optimal): 512 Bytes / 512 Bytes
Typ der Medienbezeichnung: dos
Medienkennung: 0xa01fa242
Gerät Boot Start Ende Sektoren Größe Id Typ
testfile.bin1 2048 12287 10240 5M 83 Linux
testfile.bin2 12288 20479 8192 4M 1 FAT12
Es sind also zwei Partition darin. Eine Linux und eine FAT12. Die wollen wir nun mounten. Dazu verbinden wir die Datei mit einem Loopdevice des Kernels:
Code:
# losetup /dev/loop0 testfile.bin
Falls /dev/loop0 schon belegt ist, muss man natürlich ein anderes Device nehmen. Sind genug da. Gucken wir uns nun nochmal das Loopdevice an:
Code:
# fdisk -l /dev/loop0
Medium /dev/loop0: 10 MiB, 10485760 Bytes, 20480 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O Größe (minimal/optimal): 512 Bytes / 512 Bytes
Typ der Medienbezeichnung: dos
Medienkennung: 0xa01fa242
Gerät Boot Start Ende Sektoren Größe Id Typ
/dev/loop0p1 2048 12287 10240 5M 83 Linux
/dev/loop0p2 12288 20479 8192 4M 1 FAT12
Sind also immer noch die beiden Partitionen, nur dass sie jetzt im Loopdevice hängen. Jetzt brauchen wir noch Gerätedateien für die beiden Partitionen, damit wir komfortabel direkt darauf zugreifen können:
Code:
# kpartx -av /dev/loop0
add map loop0p1 (252:0): 0 10240 linear 7:0 2048
add map loop0p2 (252:1): 0 8192 linear 7:0 12288
Die Dateien werden unter /dev/mapper angelegt und mit denen können wir die Partitionen im Image nun mounten:
Code:
# mount /dev/mapper/loop0p1 /mnt
# ls -l /mnt
insgesamt 13
-rw-r--r-- 1 root root 5 Aug 15 17:23 file001.txt
drwx------ 2 root root 12288 Aug 15 17:22 lost+found
# umount /mnt
# mount /dev/mapper/loop0p2 /mnt
# ls -l /mnt
insgesamt 2
-rwxr-xr-x 1 root root 7 Aug 15 17:23 file002.txt
Und um alles wieder auszuhängen und aufzuräumen:
Code:
# umount /mnt
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
Fertig.