Dateien und Verzeichnisse aus einem von dd erstellten Image entpacken?

7

Ich habe ein Image einer NTFS-Partition mit erstellt dd.

Ich frage mich, ob ich die Dateien und Verzeichnisse im Image auf eine Partition entladen / entpacken kann, deren Größe größer als die Image-Größe ist, damit ich auf die Dateien und Verzeichnisse genauso zugreifen kann wie auf die ursprüngliche Partition.

Wenn ja, wie soll ich das machen?


Hinzugefügt:

Ich habe gerade etwas Nützliches über einen Link gefunden :

Um eine Partition oder eine Festplatte aus einer Image-Datei wiederherzustellen, tauschen Sie einfach die Argumente "if" und "of" aus. Stellen Sie beispielsweise die erste Partition von / dev / sda aus der Image-Datei "disk2.img" wieder her:

dd if=disk2.img of=/dev/sda1
  1. Ich frage mich, was passieren wird, wenn die Partition für ofnicht die ursprüngliche Partition ist, von der aus das Image erstellt wird.

    • Betrachten Sie die Fälle, in denen die Partition für ofkleiner oder größer als die ursprüngliche Partition ist.
    • Berücksichtigen Sie auch die Fälle, in denen die Partition für ofbereits einige Daten enthält. Ist es möglich, von einer bestimmten Position in der Partition wiederherzustellen, um zu vermeiden, dass vorhandene Daten auf der Partition für überschrieben werden of?
  2. Kann die Wiederherstellung von einem Image, dddas von anderen ähnlichen Anwendungen erstellt wurde, auch von Windows-Software verwendet werden? Mit anderen Worten, hat das von erstellte Bild ddein bestimmtes Format dd?

Vielen Dank!


quelle

Antworten:

12

So geht das nicht.

Sie möchten das Disk-Image als Loopback-Gerät bereitstellen:

mount -o ro,loop -t ntfs disk.image /mnt/test

Der Inhalt des Bildes ist in verfügbar /mnt/test(Sie können es jedoch beliebig anbringen). Sie können einzelne Dateien (oder ganze Verzeichnisbäume) daraus kopieren. Verwenden Sie umount /mnt/test1diese Option, um die Bereitstellung aufzuheben.

Wenn Sie das Image auf einer neuen Festplatte wiederherstellen möchten, müssen Sie es auf die gleiche Weise wiederherstellen, wie Sie es erstellt haben. Dh wenn Sie ein Image eines gesamten Blockgeräts erstellt haben (z.sda ) erstellt haben, stellen Sie es auf einem gesamten Blockgerät wieder her. Wenn Sie es aus einer Partition (z. B. sda1) erstellt haben, stellen Sie es nur auf einer Partition wieder her.

Wenn Sie jedoch Partitionen ausführen, müssen Sie diese vor dem Wiederherstellen auf dem Zielgerät erstellen. Das Zielgerät muss außerdem mindestens so groß sein wie das von Ihnen erstellte Bild.

Wenn Sie mit Partitionen arbeiten, können Sie die Partition genau in der gleichen Größe erstellen, und es wird Ihnen gut gehen. Sie können andere Partitionen aus beliebigen Blöcken erstellen, die noch keiner Partition zugeordnet sind. Wenn Sie sich zuerst mit einer vollständigen Blockgerätewiederherstellung befassen gparted, ändern Sie die Partitionen mit *.


* Ich bin mir ziemlich sicher, dass gpartedPartitionen im Disk-Image direkt in der Größe geändert werden können, aber ich bevorzuge es, die Disk-Images makellos zu halten.

Bahamat
quelle
Vielen Dank! Was bedeutet Loopback-Gerät?
Danke, @don_crissti und bahamat! Ich habe gerade festgestellt, dass ich von einem Image auf einer Partition wiederherstellen kann. Aber ich frage mich, was passiert, wenn sich die Zielpartition und die ursprüngliche Partition, von der das Image erstellt wurde, unterscheiden? Siehe meinen hinzugefügten Teil zu meinem Beitrag. Vielen Dank!
Ich habe meine Antwort aktualisiert, um das Wiederherstellen des Bildes einzuschließen.
Bahamat
Wenn Sie es vorziehen, die Bilder makellos zu halten, würde ich -r verwenden, um schreibgeschützt zu mounten.
Didi Kohen
@ DavidKohen: Guter Punkt. Geändert.
Bahamat
4

Bahamat hat bereits eine gute Antwort gegeben, wie man Dateien aus einer Disk-Image-Datei extrahiert (dh Loopback mounten und dann kopieren), daher werde ich eine allgemeine Antwort zum Klonen von Dateisystemen geben.

Wenn Sie ein Dateisystem sichern und wiederherstellen oder von einem Computer auf einen anderen klonen möchten, gehen Sie wie folgt vor:

  1. Unter Linux und Unix ist es fast immer besser, dateibasierte Sicherungen durchzuführen, als Sicherungen von Festplatten- oder Partitionsimages. Es gibt viele Tools , die Sie diese verwenden können , um zu tun, einschließlich cpio, tarund (mein Favorit) rsync.

    Wenn Sie das Root-Dateisystem sichern, müssen Sie den Grub-Bootloader beim Wiederherstellen im MBR neu installieren. Weitere Informationen, insbesondere den grub-installBefehl , finden Sie in der Grub-Dokumentation .

  2. Verwenden Sie für NTFS ein Tool wie ntfscloneaus dem ntfs-3gPaket. Es kann NTFS-Partitionen klonen und deren Größe ändern.

  3. Clonezilla ist eine großartige bootfähige CD zum Sichern / Wiederherstellen und Klonen von Festplatten- und Partitionsabbildern. Es wickelt Tools wie parted, dd, resize2fs, ntfscloneund viele andere , mit einem einfach zu bedienende Text-Modus - Dialog und Menüsystem. Beispielsweise kann eine Partition oder Festplatte auf eine andere Partition oder Festplatte oder auf eine komprimierte Image-Datei auf einer Netzwerkdateifreigabe (z. B. NFS oder Samba) geklont und von derselben wiederhergestellt werden.

cas
quelle
Danke, Craig! Ich würde Ihre Antwort gerne positiv bewerten, aber mein Ruf ist zu niedrig, um dies zu tun. Ich war motiviert, eine Frage zu Backups auf Byte- und Dateiebene zu stellen: unix.stackexchange.com/questions/47770/…
Mein Favorit ist auch rsync, aber es gibt viele Probleme bei der Speicherverwaltung, wodurch der Serverspeicher beim Kopieren vieler Dateien voll wird. Denken Sie daran.
Didi Kohen