staging.inyokaproject.org

Partitionen aus ge-gziptem dd image auslesen ohne zu entpacken?

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

blubbi

Anmeldungsdatum:
5. November 2006

Beiträge: Zähle...

Hallo zusammen,

folgendes Problem:

ich habe nach der Anleitung aus dem Wiki mit dd eine Kopie einer kompletten Platte angefertigt. (http://wiki.ubuntuusers.de/shell/dd#Festplatte-klonen) Das Image wurde angelegt mit

dd if=/dev/sda | gzip > ~/image-compress_hda1.img.gz 

ist also noch gezippt.

Die Platte wurde mittlerweile ersetzt und ich möchte ein paar Daten aus dem Image auslesen.

Jetzt steht ja im Wiki, dass man vorher mit

sudo fdisk -l -u /Pfad/zum/Image.img 

die Partitionstabelle auslesen muß, um dann mounten zu können.

Nun ist die Frage, ob (und wenn ja wie) ich mit fdisk in einem gepackten Image an die Tabelle komme?

Danke schonmal für eure Hilfe!

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: Zähle...

Hallo

Schau dir mal avfs an, ist in den Paketquellen. Ich hatte vor einiger Zeit mal probiert aus meinem gzip Plattenimage Partitionen zu mounten und nach kurzem Probieren wieder sein lassen. Evtl. hab ich ja nur ein Kleinigkeit übersehen.

Wenn du mehr Erfolg hast, könntest du kurz berichten wie das geht.

Gruß TNT

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: Zähle...

Da ich auch noch ein gezipptes Plattenimage habe, hab ich im Netz gesucht und diesmal klappt es... Also: Paket avfs installieren, Image ist /home/user/sda.img.gz und gemountet wird nach /mnt. Das Rautezeichen hinter dem Dateinamen (sda.img.gz#) muß mit eingegeben werden.

user@linux:~$ sudo su
root@linux:~# mkdir ~/.avfs
root@linux:~# mountavfs
Mounting AVFS on /root/.avfs...

root@linux:~# fdisk -ul ~/.avfs/home/user/sda.img.gz#
Sie müssen angeben Zylinder.
Sie können dies im Zusatzfunktionsmenü tun.

Platte /root/.avfs/home/user/sda.img.gz#: 0 MByte, 0 Byte
255 Köpfe, 63 Sektoren/Spur, 0 Zylinder, zusammen 0 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x12345678

                              Gerät     boot.     Anfang        Ende     Blöcke   Id  System
/root/.avfs/home/user/sda.img.gz#1   *          63   492295859   246147898+   7  HPFS/NTFS
/root/.avfs/home/user/sda.img.gz#2       492295860   976768064   242236102+   5  Erweiterte
/root/.avfs/home/user/sda.img.gz#6       495444663   495958679      257008+  83  Linux
/root/.avfs/home/user/sda.img.gz#7       495958743   976768064   240404661   83  Linux

root@linux:~# mount -t ext3 -ro loop,offset=$((512 * 495444663)) ~/.avfs/home/user/sda.img.gz# /mnt

Der Befehl fdisk kann eine Weile dauern, der letzte mountet Partition 6 nach /mnt. Bei offset ist Sektorgröße * Partitionsanfang anzugeben

Gruß TNT

blubbi

(Themenstarter)

Anmeldungsdatum:
5. November 2006

Beiträge: 145

ah ok cool, werd ich mal ausprobieren ☺ (wenns funktioniert am besten auch noch gleich den wiki artikel ergänzen)

Natenjo

Anmeldungsdatum:
23. Mai 2006

Beiträge: Zähle...

Hallo,

immer wenn ich fdisk -ul ~/.avfs/pfad/zum/image# eingebe erhalte ich nur die meldung "No such File orDirectory"... Die Datei existiert dort aber definitiv.

Hat jemand einen Tipp Für mich?

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Ohne "#", würde ich vermuten.

Natenjo

Anmeldungsdatum:
23. Mai 2006

Beiträge: 15

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Ok. Dann zeige doch bitte mal die vermeintlich vorhandenen Dateien so:

ls hal ~/.avfs/ordner
ls hal ~/.avfs

Entweder fehlt da ein Name, ist falsch oder avfs existiert gar nicht, funktioniert nicht oder wurde nicht richtig installiert oder konfiguriert.

Natenjo

Anmeldungsdatum:
23. Mai 2006

Beiträge: 15

hallo Benno,

hier die beiden Ausgaben

root@ubuntu:~# ls -hal ~/.avfs/home/joe/Desktop/image-mit-gzip.dd 
-rw-rw-r-- 1 joe joe 20M Jun 23 07:15 /root/.avfs/home/joe/Desktop/image-mit-gzip.dd

root@ubuntu:~# ls -hal ~/.avfs
total 108K
drwxr-xr-x  24 root root 4.0K Jun 23 07:24 .
drwx------   4 root root 4.0K Jun 23 07:20 ..
drwxr-xr-x   2 root root 4.0K Jun 23 06:57 bin
drwxr-xr-x   3 root root 4.0K Jun 23 07:24 boot
drwxr-xr-x   2 root root 4.0K Apr 28 05:35 cdrom
drwxr-xr-x  15 root root 4.4K Jun 23 07:24 dev
drwxr-xr-x 134 root root  12K Jun 23 07:24 etc
drwxr-xr-x   3 root root 4.0K Apr 28 05:38 home
lrwxrwxrwx   1 root root   32 Jun 23 07:24 initrd.img -> boot/initrd.img-3.8.0-23-generic
lrwxrwxrwx   1 root root   33 Jun 23 07:24 initrd.img.old -> boot/initrd.img-3.8.0-23-generic
drwxr-xr-x  22 root root 4.0K Apr 28 05:41 lib
drwxr-xr-x   2 root root 4.0K Apr 24 10:02 lib64
drwx------   2 root root  16K Apr 28 05:31 lost+found
drwxr-xr-x   4 root root 4.0K Jun 23 07:04 media
drwxr-xr-x   3 root root 4.0K Jun 23 07:16 mnt
drwxr-xr-x   2 root root 4.0K Apr 28 05:53 opt
dr-xr-xr-x 208 root root    0 Jun 23 07:02 proc
drwx------   4 root root 4.0K Jun 23 07:20 root
drwxr-xr-x  25 root root 1020 Jun 23 07:24 run
drwxr-xr-x   2 root root  12K Jun 23 06:57 sbin
drwxr-xr-x   2 root root 4.0K Jun 11  2012 selinux
drwxr-xr-x   2 root root 4.0K Apr 24 10:01 srv
dr-xr-xr-x  13 root root    0 Jun 23 07:02 sys
drwxrwxrwt  10 root root 4.0K Jun 23 09:53 tmp
drwxr-xr-x  10 root root 4.0K Apr 24 10:01 usr
drwxr-xr-x  13 root root 4.0K Jun 23 07:02 var
lrwxrwxrwx   1 root root   29 Jun 23 07:24 vmlinuz -> boot/vmlinuz-3.8.0-23-generic
lrwxrwxrwx   1 root root   29 Jun 23 07:24 vmlinuz.old -> boot/vmlinuz-3.8.0-23-generic

Also wie du siehst sind alle Dateien vorhanden die wir brauchen

Aber sobald ich was mit dem "#" Mache geht nichts mehr ☹ (Ist ja klar, die Dateien gibt es ja auch eigentlich gar-nicht.

Funktioniert das den bei euch ?

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Ich hab das nicht installiert. Und wenn du's mal ohne # probierst? Denn # ist ja weder im Dateiname enthalten noch Platzhalter für eine Nummerierung von ähnlichen Dateinamen. Bleibt nur, dass avfs das braucht, aber in dem Ordner selber findet es sich vielleicht doch? Mir ist das noch nicht ganz klar - gibt's eine Manpage dazu?

man avfs

Die Ausgabe könnte man mal in

man avfs | cat

direkt auf das Terminal umleiten, da man dort alles per Maus markieren und dann entsprechend kopieren kann (in Codeblock im Forum).

Dasselbe nochmal für avfsd. Sowie bei Fehlen:

avfsd --help

Außerdem wollte ich wirklich den Ordner sehen. Wenn das bei dir der Desktop ist und du nicht alles zeigen willst, dann wenigstens auf die Dateien hier eingrenzen:

ls -hal ~/.avfs/home/joe/Desktop/image-mit-gzip.dd*
ls -hal ~/.avfs/home/joe/Desktop/*#*

Eventuell ist anderen Anleitungen auch was entgangen und man muss es in Anführungszeichen setzen?

ls -hal '/home/joe/.avfs/home/joe/Desktop/image-mit-gzip.dd#'

Mal was andres, was kommt denn bei den angepassten Befehlen nach deinem Blog?

avfsd -o allow_root ~/.avfs
cd  ~/.avfs/home/joe/Desktop
sudo losetup /dev/loop1 image-mit-gzip.dd#
# nur Kommentar, 
sudo mount /dev/loop1 -o ro,noatime /home/... ... # nicht ausführen

Hier sehe ich schon mal einen Fehler (gelb) - da fehlt definitiv ein Leerzeichen. Das heißt, das Blog hat den Befehl nicht oder nicht richtig kopiert bzw. nochmal ausprobiert. Vielleicht war das schon dein Problem? Du scheinst aber noch eins mit dem Namen zu haben.

Aber jeder macht's anders, unten auch - langsam werden es mir zu viele Varianten, daher ist eine komplette Ausgabe deine Ein- und Ausgaben erforderlich. Ist es eine Partition oder eine Festplatte (dd)?

Natenjo

Anmeldungsdatum:
23. Mai 2006

Beiträge: 15

Hallo Benno,

als ich gerade dein Post durchgearbeitet habe bin ich auf das Rätsels Lösung gestoßen:)

meine Datei hieß ja nur "image-mit-gzip.dd" .. damit das ganze klappt muss die "passende" Dateiendung drangehangen werden.

also Wenn es mit gzip Komrimiert ist *.gz. Wenn es mit zip Komrimiert ist *.zip. Wenn es mit rar Komrimiert ist *.rar....etc

Ich habe also meine Datei in image-mit-gzip.dd.gz umbenannt, über eine Loop gemountet und konnte mir anschließend mein "Wichtiges Dokument" aus dem Komprimierten Image wiederherstellen. Die datei Rubbish war nur eine 100MB dummy file, auch diese konnte ich lesen ☺

root@ubuntu:~/.avfs/home/joe/Desktop# mv image-mit-gzip.dd image-mit-gzip.dd.gz
root@ubuntu:~/.avfs/home/joe/Desktop# losetup /dev/loop5 image-mit-gzip.dd.gz#
root@ubuntu:~/.avfs/home/joe/Desktop# mount /dev/loop5 -o ro /mnt/test/
root@ubuntu:~/.avfs/home/joe/Desktop# cd /mnt/test/
root@ubuntu:/mnt/test# ls -hal
lost+found  my mery important document  my mery important document~  rubbish
root@ubuntu:/mnt/test# cat my\ mery\ important\ document
where all my shit is stored in
root@ubuntu:/mnt/test# hexdump  rubbish 
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
6400000
root@ubuntu:/mnt/test# 

Ich muss aber sagen das die Dokumentation von AVFS nicht so der Brüller ist..

Aber ich habe wieder was gelernt ☺

Gibt es noch alternative Möglichkeiten in Komrimierte dd Archive hineinzuschauen ohne diese zu entpacken?

Edit:// Ich habe es hier nochmal kurz zusammengefasst ☺ http://blog.dreessen.it/?p=112

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: 828

Hi

Bei mir funktioniert avfs zur Zeit nicht auf 2 PCs mit jeweils 12.04 installiert

root@tnt:/home/tnt# mountavfs
Mounting AVFS on /root/.avfs...
^C
root@tnt:/home/tnt# ls -la /root 
ls: Zugriff auf /root/.avfs nicht möglich: Der Socket ist nicht verbunden
insgesamt 88
drwx------ 17 root root 4096 Jun 23 22:36 .
drwxr-xr-x 23 root root 4096 Jun 15 15:28 ..
d?????????  ? ?    ?       ?            ? .avfs
< ...>

der Befehl "mountavfs" hängt und muß durch "Strg+C" beendet werden in dmesg finde ich:

[354606.235073] avfsd[16718]: segfault at 6 ip b755b897 sp b74abf18 error 4 in libc-2.15.so[b74db000+1a3000]

Könnte dieser Bug sein: 1013607

Gruß TNT

emcekay

Anmeldungsdatum:
21. Dezember 2006

Beiträge: Zähle...

Hallo allerseits, hier mein Stand zum Thema "mounten von image.dd.gz Dateien":

* Unter Ubuntu 14.04 erfolgreich getestet.

* Unter Ubuntu 12.04 gehts scheinbar nicht.

* Geht scheinbar nicht unter der zsh ( dateiname# führt zu problemen ).

* Die Images müssen eine passende Endung haben, zB. .gz für gzip.

Images

Ich rede hier über Images die so entstanden sind (von einer Partition oder ganzen Platte):

# dd if=/dev/hdX | gzip > imagefile.dd.gz

Zurückspielen auf die Platte funktioniert so:

# gzip -dc imagefile.dd.gz | dd of=/dev/hdX

Vorbereitung

Nun wollen wir die Images oder eine Partition aus dem Image mounten (read only) um an die Daten ran zu kommen.

Benötigte Pakete Installieren:

# apt-get install avfs kpartx

AVFS mounten:

# mountavfs
Mounting AVFS on /home/user/.avfs...

Test:

# ls -la /home/user/.avfs

Das gesamte file system "/" wird unter "/home/user/.avfs/" abgebildet, mit der option darin archive direkt zu öffnen. Das Archiv muss die passende Endung haben (zB. .gz). Dem Dateinamen muss ein # angehängt werden (geht nicht auf der zsh, nur bash).

Image mit einer Partition, zb. sda5.dd.gz

Mounten:

# losetup /dev/loop1 /home/user/.avfs/path/to/sda5.dd.gz#       (Filename + #)
# mount   -o ro /dev/loop1 /media/mountpoint

Unmounten:

# umount /media/mountpoint
# losetup -d /dev/loop1

Image mit einer gesamten Platte, zb. sda.dd.gz

Partitionen im Image anzeigen lassen:

# kpartx -l /home/user/.avfs/path/to/sda.dd.gz#
loop0p1 : 0 204800 /dev/loop0 2048
loop0p2 : 0 50169856 /dev/loop0 206848

Partitionen im Image mappen lassen (read only) und zweite Partition mounten:

# kpartx -a -r /home/user/.avfs/path/to/sda.dd.gz#
# mount -o ro /dev/mapper/loop0p2 /media/mountpoint

Unmounten:

# umount /media/mountpoint
# kpartx -d /home/user/.avfs/path/to/sda.dd.gz#       (geht manchmal nich?!)

Weitere Informationsquellen

* http://blog.dreessen.it/gzip-komprimiertes-dd-image-mounten/

* http://tinyapps.org/docs/mount_partitions_from_disk_images.html

* http://unix.stackexchange.com/questions/31669/is-it-possible-to-mount-a-gzip-compressed-dd-image-on-the-fly

* http://blogs.gnome.org/muelli/2012/10/loopback-monting-huge-gzipped-file/

Viel Spaß damit 😉

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: 828

👍

Ich möchte hier noch sdelete (Option -z) für Windows/DOS (FAT/NTFS) und zerofree für Linux (ext2/3/4, Dateisystem vorher aushängen!!!) erwähnen, beide Programme überschreiben unbenutzte Stellen im Dateisystem mit Nullen (z.B. bereits gelöschte Dateien). Damit kann das komprimierte Image je nach Größe/Nutzung der Platte/Partition einige GB kleiner werden.

avfs kann auch noch:

At the moment it supports floppies, tar and gzip files, zip, bzip2, ar and rar files, ftp sessions, http, webdav, rsh/rcp, ssh/scp. Quite a few other handlers are implemented with the Midnight Commander's external FS.

Weiter Infos

zless /usr/share/doc/avfs/README.gz
avfsd --help

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Dazu braucht man auch nur per Live-CD mit dd eine Datei mit Nullen füllen, bis die Partition voll ist. Im Anschluss die Datei natürlich wieder löschen. Lösungen mit simplen Bordmitteln wie dd ziehe ich oft vor.

Antworten |