Auf meinem Server läuft jede Nacht ein Script, das die Gesamte SD-Karte in ein Image-Datei auf der angeschlossener Festplatte speichert. Beim Crash der Karte kann man so eine neue mit dem Inhalt vom Vortag erstellen. Schön und gut, jedoch habe ich heute ein paar Dateien zu viel gelöscht. Dafür die ganze Karte zu beschreiben wäre doch etwas unbequem.
Aber man kann ja das Image auch so ins Dateisystem mounten. Der erste Versuch schlug jedoch fehl. Ein superblock error. Klar, das Image enthält ja nicht nur die gewünschte Partition, sondern den gesamten Karteninhalt.
Aber das schöne an Linux ist ja gerade, dass man es trotzdem bewerkstelligen kann. Ein kurzer Besuch beim Onkel Google verrät auch wie es geht.
Zuerst werfen wir das Image dem fdisk vor die Füße:
sudo fdisk -lu /mnt/data/data/_bak/sd_backups/backup_20150224_020001.img
Disk /mnt/data/data/_bak/sd_backups/backup_20150224_020001.img: 7948 MB, 7948206080 bytes 19 heads, 55 sectors/track, 14855 cylinders, total 15523840 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 Disk identifier: 0x0002efc9 Device Boot Start End Blocks Id System /mnt/data/data/_bak/sd_backups/backup_20150224_020001.img1 2048 15523839 7760896 83 Linux
Jetzt kann man das Offset des Partitionsanfang ausrechnen:
Sectorgröße * Startsektor = (in meinem Fall) 2048 * 512 = 1048576
Vorbereiten:
sudo losetup -o 1048576 /dev/loop0 /mnt/data/data/_bak/sd_backups/backup_20150224_020001.img
Wenn man schon dabei ist, kann man auch mal testen, ob das Image in Ordnung ist:
sudo fsck -fv /dev/loop0
fsck from util-linux 2.20.1 e2fsck 1.42.5 (29-Jul-2012) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information 91195 inodes used (19.00%, out of 480000) 176 non-contiguous files (0.2%) 69 non-contiguous directories (0.1%) # of inodes with ind/dind/tind blocks: 0/0/0 Extent depth histogram: 86580/41 1011443 blocks used (52.13%, out of 1940224) 0 bad blocks 1 large file 77984 regular files 8332 directories 12 character device files 25 block device files 1 fifo 26 links 4831 symbolic links (4527 fast symbolic links) 1 socket ------------ 91212 files
Sieht gut aus. Rest ist einfach.
Mounten:
sudo mount /dev/loop0 /mnt/data/data/tmp/
Jetzt hatte ich meine Dateien alle wieder.
Um am Ende das wieder loszuwerden:
sudo umount /mnt/data/data/tmp/
sudo losetup -d /dev/loop0
Kommentare (0)