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)

Cancel or