Hallo zusammem!
k1l schrieb:
Ahoi, wir hatten gerade einen Supportfall, bei dem ein User mit dem Script aus https://wiki.ubuntuusers.de/mount/#Festplatten-Image die Partition aus seinem dd-image nicht mounten konnte.
Das geht mittlerweile mit losetup wesentlich einfacher:
| losetup --partscan --find --show dd.img
|
Wenn es jetzt um die erste Partition geht, dann mountet man die mit:
um diese nachher wieder auszuhängen nimmt man:
So spart man sich den ganzen Kram mit dem offset etc pp.
Sollte man dieses einfach anstatt des Skripts dort auf der Wiki-Seite aufzeigen?
noisefloor schrieb:
Hallo,
einfacher ist immer gut.
Toll wäre natürlich auch, wenn jemand noch zusätzlich einen (kurzen?) Wikiartikel zu losetup schreiben würde.
Gruß, noisefloor
Ich möchte mich hiermit insbesondere auf den vorstehenden Post vom 18. Mai 2017 von k1l beziehen: Es gibt offensichtlich zig Variationen bei der Anwendung von losetup und/oder mount. Dies könnte auch für den hiesigen Wiki-Artikel interessant sein, als Alternative – und damit explizit nicht als Ersatz – zum hiesigen Mount-Skript! Explizit hinweisen möchte ich dabei als Inspiration auf .img-File (disk image) unter Linux mounten – thomasheinz.net 🇩🇪 sowie SOLVED \[stretch] mount: ... overlapping loop device exists - Raspberry Pi Forums 🇬🇧.
Im ersten Fall soll es – Zitat – so gehen:
Um ein Datenträgerabbild bzw. ein disk image im Form einer *.img-Datei unter Linux zu mounten um dann auf dessen Inhalte zugreifen zu können, hat sich für mich folgendes Vorgehen bewährt:
Zuerst einmal ein paar Informationen über das Image anzeigen lassen:
fdisk -l /path/to/img/arch.img
Das ergibt dann folgende Ausgabe:
Disk arch.img: 15.1 GiB, 16172187648 bytes, 31586304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00057540
Device Boot Start End Blocks Id System
arch.img1 2048 186367 92160 c W95 FAT32 (LBA)
arch.img2 186368 31586303 15699968 5 Extended
arch.img5 188416 31584255 15697920 83 Linux
Uns interessieren nur die Start-Sektoren, also zum einen der Startsektor 2048 der FAT32 Partition und zum einen der Sektor 188416 der Linux Partition.
Um diese beiden Partitionen zu mounten erstellt man sich zunächst 2 Mountpoints:
mkdir /mnt/sd1
mkdir /mnt/sd2
Dann kann man auch schon die beiden Partitionen mounten. Den Offset mit den zuvor ermittelten Startsektoren anpassen (in meinem Fall 2048 und 188416). Solltet ihr eine andere Sektorgröße als 512 bytes haben, gilt es diesen Wert ebenfalls anzupassen.
mount -t auto -o loop,offset=$((2048*512)) /path/to/img/arch.img /mnt/sd1
mount -t auto -o loop,offset=$((188416*512)) /path/to/img/arch.img /mnt/sd2
Und schon kann man ganz normal über die Mountpoints auf die Daten zugreifen.
Im zweiten Fall soll es – Zitat – dann so gehen:
(...)
but when i do whe same step by step (attaching a loop and mounting the loop) be hand, it works:
Code: Select all
$ sudo losetup --offset 4194304 /dev/loop1 /x/2017-07-05-raspbian-jessie-lite.img
$ sudo mount /dev/loop1 /media/boot -o ro
$ sudo losetup --offset 48234496 /dev/loop2 /x/2017-07-05-raspbian-jessie-lite.img
$ sudo mount /dev/loop2 /media/root -o ro
$ sudo losetup -a
/dev/loop1: [45826]:260076 (/x/2017-07-05-raspbian-jessie-lite.img), offset 4194304
/dev/loop2: [45826]:260076 (/x/2017-07-05-raspbian-jessie-lite.img), offset 48234496
$ sudo mount
/dev/loop1 on /media/boot type vfat (ro,relatime...)
/dev/loop2 on /media/root type ext4 (ro,relatime...)
(...)
Bei mir (Ubuntu-MATE-Live-System) ging es nur darum, lediglich eine einzige Image-Partition einzubinden; nicht mehrere und schon gar nicht alle an einen einzigen Einhänge-Punkt!
Im Folgenden kommt ein abgewiesener Befehl sowie eine dmesg-Ausgabe...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | ubuntu-mate@ubuntu-mate:~$ sudo mount -t auto -o ro,loop,offset=$((8493056*512)) /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img /mnt/disk
mount: /mnt/disk: /dev/loop15 konnte nicht im Nur-Lese-Modus eingehängt werden.
dmesg(1) may have more information after failed mount system call.
ubuntu-mate@ubuntu-mate:~$ man dmesg
ubuntu-mate@ubuntu-mate:~$ sudo dmesg | tail
[25171.450395] EXT4-fs (loop15): write access unavailable, cannot proceed (try mounting with noload)
[25361.723353] loop15: detected capacity change from 0 to 1465147120
[25361.728489] EXT4-fs (loop15): mounted filesystem 4e9f91be-05a9-438f-87a0-7694e3479e12 ro with ordered data mode. Quota mode: none.
[25361.728862] audit: type=1400 audit(1734052953.735:153): apparmor="DENIED" operation="open" class="file" profile="snap.firefox.firefox" name="/etc/fstab" pid=17412 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[25653.468156] EXT4-fs (loop15): unmounting filesystem 4e9f91be-05a9-438f-87a0-7694e3479e12.
[25653.471900] audit: type=1400 audit(1734053245.485:154): apparmor="DENIED" operation="open" class="file" profile="snap.firefox.firefox" name="/etc/fstab" pid=17412 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
[25831.024876] loop15: detected capacity change from 0 to 1456656112
[25831.114200] EXT4-fs (loop15): INFO: recovery required on readonly filesystem
[25831.114217] EXT4-fs (loop15): write access unavailable, cannot proceed (try mounting with noload)
[27659.982065] audit: type=1400 audit(1734055252.042:155): apparmor="DENIED" operation="open" class="file" profile="snap.firmware-updater.firmware-notifier" name="/proc/sys/vm/max_map_count" pid=50890 comm="firmware-notifi" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
ubuntu-mate@ubuntu-mate:~$ sudo mount -t auto -o ro,loop,offset=$((8493056*512)) /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img /mnt/disk
mount: /mnt/disk: /dev/loop15 konnte nicht im Nur-Lese-Modus eingehängt werden.
dmesg(1) may have more information after failed mount system call.
|
...wobei ich den ersten Befehl später dann doch erfolgreich ausführen konnte(???)
So, nun komme ich zu „des Pudels Kern“:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 | ubuntu-mate@ubuntu-mate:~$ sudo losetup -l -a
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 0 1 /cdrom/casper/minimal.standard.squashfs 0 512
/dev/loop8 0 0 1 1 /var/lib/snapd/snaps/ubuntu-desktop-bootstrap_171.snap 0 512
/dev/loop6 0 0 1 1 /var/lib/snapd/snaps/firmware-updater_127.snap 0 512
/dev/loop13 0 0 1 1 /var/lib/snapd/snaps/snap-store_1124.snap 0 512
/dev/loop4 0 0 1 1 /var/lib/snapd/snaps/core22_1380.snap 0 512
/dev/loop11 0 0 1 1 /var/lib/snapd/snaps/snapd-desktop-integration_157.snap 0 512
/dev/loop2 0 0 0 1 /cdrom/casper/minimal.standard.live.squashfs 0 512
/dev/loop0 0 0 0 1 /cdrom/casper/minimal.squashfs 0 512
/dev/loop9 0 0 1 1 /var/lib/snapd/snaps/subiquity_5741.snap 0 512
/dev/loop7 0 0 1 1 /var/lib/snapd/snaps/gnome-42-2204_176.snap 0 512
/dev/loop14 0 0 1 1 /var/lib/snapd/snaps/thunderbird_593.snap 0 512
/dev/loop5 0 0 1 1 /var/lib/snapd/snaps/firefox_4173.snap 0 512
/dev/loop12 0 0 1 1 /var/lib/snapd/snaps/snapd_21465.snap 0 512
/dev/loop3 0 0 1 1 /var/lib/snapd/snaps/bare_5.snap 0 512
/dev/loop10 0 0 1 1 /var/lib/snapd/snaps/gtk-common-themes_1535.snap 0 512
ubuntu-mate@ubuntu-mate:~$ sudo losetup --offset $((47554560*512)) /dev/loop15 /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img
ubuntu-mate@ubuntu-mate:~$ sudo losetup -j /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img
/dev/loop15: [2065]:27 (/media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img), Position 24347934720
ubuntu-mate@ubuntu-mate:~$ sudo mount -o ro /dev/loop15 /mnt/disk
ubuntu-mate@ubuntu-mate:~$ ls -la /mnt/disk
insgesamt 32
drwxr-xr-x 4 root root 4096 Mai 6 2013 .
drwxr-xr-x 1 root root 60 Dez 13 01:48 ..
drwx------ 2 root root 16384 Mär 22 2011 lost+found
drwxr-xr-x 117 ubuntu-mate ubuntu-mate 12288 Sep 30 18:30 oom
ubuntu-mate@ubuntu-mate:~$ sudo umount /dev/loop15
ubuntu-mate@ubuntu-mate:~$ ls -la /mnt/disk
insgesamt 0
drwxr-xr-x 2 root root 40 Dez 13 01:48 .
drwxr-xr-x 1 root root 60 Dez 13 01:48 ..
ubuntu-mate@ubuntu-mate:~$ sudo losetup -j /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img
/dev/loop15: [2065]:27 (/media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img), Position 24347934720
ubuntu-mate@ubuntu-mate:~$ sudo losetup -d /dev/loop15
ubuntu-mate@ubuntu-mate:~$ sudo losetup -j /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img
ubuntu-mate@ubuntu-mate:~$ sudo losetup -l -a
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 0 1 /cdrom/casper/minimal.standard.squashfs 0 512
/dev/loop8 0 0 1 1 /var/lib/snapd/snaps/ubuntu-desktop-bootstrap_171.snap 0 512
/dev/loop6 0 0 1 1 /var/lib/snapd/snaps/firmware-updater_127.snap 0 512
/dev/loop13 0 0 1 1 /var/lib/snapd/snaps/snap-store_1124.snap 0 512
/dev/loop4 0 0 1 1 /var/lib/snapd/snaps/core22_1380.snap 0 512
/dev/loop11 0 0 1 1 /var/lib/snapd/snaps/snapd-desktop-integration_157.snap 0 512
/dev/loop2 0 0 0 1 /cdrom/casper/minimal.standard.live.squashfs 0 512
/dev/loop0 0 0 0 1 /cdrom/casper/minimal.squashfs 0 512
/dev/loop9 0 0 1 1 /var/lib/snapd/snaps/subiquity_5741.snap 0 512
/dev/loop7 0 0 1 1 /var/lib/snapd/snaps/gnome-42-2204_176.snap 0 512
/dev/loop14 0 0 1 1 /var/lib/snapd/snaps/thunderbird_593.snap 0 512
/dev/loop5 0 0 1 1 /var/lib/snapd/snaps/firefox_4173.snap 0 512
/dev/loop12 0 0 1 1 /var/lib/snapd/snaps/snapd_21465.snap 0 512
/dev/loop3 0 0 1 1 /var/lib/snapd/snaps/bare_5.snap 0 512
/dev/loop10 0 0 1 1 /var/lib/snapd/snaps/gtk-common-themes_1535.snap 0 512
ubuntu-mate@ubuntu-mate:~$
|
Also insgesamt 11 Befehle (davon einige zwecks Kontrolle doppelt und dreifach) 😎 . Den Offset habe ich dabei automatisch berechnen lassen.
Achso: Loop-Geräte wie /dev/loop0p1 haben bei mir auch nicht funktioniert („für /media/ubuntu-mate/12-TB-Festplatte/disk-Kopie.img existieren sich überschneidende Loop-Geräte.“).
Meine gesamten diesbezüglichen Aktionen habe ich übrigens unter 20241213_Image-Partition_mounten in der Ablage gespeichert.
▶ Ich hoffe, dass das Vorstehende für Euch jetzt nicht zu viel und/oder wirr war...