Festplatten/SD Image unter Linux einbinden/mounten

  • Eine *.img Image Datei, die zum Beispiel mit dd erstellt wurde oder auch das Raspbian Image welches auf die SD geschrieben wird, ist ein komplettes Abbild des Datenträgers - man muss beim mounten also die einzelnen Partitionen ansprechen

    Zunächst ruft man folgenden Befehl auf um informationen über die Partitionen zu erhalten:

    Code
    file -s sda.img


    Also zum Beispiel:

    Code
    file -s 2013-09-25-wheezy-raspbian.img

    Die Ausgabe könnte dann zum Beispiel so aussehen:

    Code
    sda.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors;
    partition 2: ID=0x83, starthead 165, startsector 122880, 3665920 sectors, code offset 0xb8

    Das Image hat also 2 Partitionen. Die erste fängt beim startsector 8192 an, die zweite Partition hat den startsector 122880

    Diese Information benötigen wir nun um die jeweilige Partition zu mounten. Bei der ersten Partition handelt es sich aber meistens nur um die Bootpartition, die kann man also eigentlich erstmal ignorieren da auf der zweiten Partition die eigentlichen Dateien liegen.

    Zuvor müssen wir aber selbstverständlich noch ein Verzeichnis anlegen auf das wir mounten können:

    Code
    mkdir -p /mnt/sda2

    Nun können wir unter Verwendung des startsector's die zweite Partition nach /mnt/sda2 mounten:

    Code
    mount 2013-09-25-wheezy-raspbian.img /mnt/sda2 -o offset=$((122880*512))

    Jetzt könnt ihr auf alle Dateien zugreifen und diese ggf verändern. Wenn ihr was verändert habt ist es wichtig vor dem umount sicherzustellen das der Schreib-Buffer leer ist:

    Code
    sync

    Und dann erst das Image wieder aushängen:

    Code
    umount /mnt/sda2
  • Festplatten/SD Image unter Linux einbinden/mounten? Schau mal ob du hier fündig wirst!

  • Vielleicht als Ergänzung am Anfang:

    Nicht jede *.img-Datei, die mit dd erstellt wurde, ist per se ein Abbild eines Datenträgers. Aber gerade mit Hilfe von "file -s" kann man dies herausfinden.

  • Hm,
    ich habe mit dd ein Image meines Raspis gemacht. Die Datei heißt pybackup.img.
    Ein

    Code
    file -s pybackup

    ergibt lediglich ein

    Code
    pybackup.img: x86 boot sector


    Keine Angaben zur zweiten Partition. Das Image ist aber in Ordnung, das habe ich schon ausprobiert, indem ich es auf die SD-Card zurückgespielt habe.
    Ich kann die zweite Partition auch mounten und dann darauf zugreifen, indem ich den gleichen Offset angebe, wie oben beschrieben. Funktioniert alles tadellos.
    Mich würde nur mal interessieren, warum ich nur diese magere Info von file bekomme.

  • Ich habe das gleiche Problem...

    KlappMint # date ; dd if=/dev/sdb of=/mnt/pladde/rpi.img bs=1M ; date
    Do 31. Dez 15:07:13 CET 2015
    7420+0 Datensätze ein
    7420+0 Datensätze aus
    7780433920 Bytes (7,8 GB) kopiert, 869,729 s, 8,9 MB/s
    Do 31. Dez 15:21:43 CET 2015
    KlappMint # ls -l
    insgesamt 7598084
    -rw-r--r-- 1 root root 7780433920 Dez 31 15:21 rpi.img
    KlappMint # file -s rpi.img
    rpi.img: x86 boot sector

    Beim Mounten bekomme ich dann:

    KlappMint pladde # mount rpi.img /mnt/image -o offset=$((122880*512))
    mount: Sie müssen den Dateisystemtyp angeben

    Hab mal mit -t ext4 versucht, ging aber auch nicht.


    Ach ja, ich betreibe die Karte in einem Raspberry Pi 2 Mod. B und das Backup der Karte habe ich in einem Kartenleser am Laptop unter Linux Mint 17.3 durchgeführt.
    Automatisch zusammengefügt:
    So, habe das Image jetzt einfach mal mittels cp auf eine andere SD-Karte zurückkopiert und es funktioniert scheinbar. Kann es aber nicht mounten.
    Automatisch zusammengefügt:
    Gnaaa.

    Wenn ich in der Desktopumgebung mit rechts auf das Image klicke, bietet er mir das Einhängen an und das funktioniert auch. Wieso bekomme ich es dann mit einem normalen mount nicht hin?

    Einmal editiert, zuletzt von MrMoods (31. Dezember 2015 um 16:25)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!