Diese Frage bezieht sich aufeine von vor mehreren Jahren, wo ich nach einer Möglichkeit suchte, eine teilweise Imagesicherung durchzuführen. Dieser Teil wurde nie beantwortet, daher ist dies eine eigene Frage dazu.
Das Problem
Ich hatte vor, eine Windows-Partition zu verkleinern und wollte zur Sicherheit zunächst ein Image-Backup erstellen. Wenn eine Wiederherstellung erforderlich war, musste das Backup auf der verkleinerten Partition wiederhergestellt werden.
Da der Zweck darin bestand, das System in seinem aktuellen Zustand abzusichern, musste die Sicherung den „jungfräulichen“ Inhalt enthalten, also vor jeder Art von Modifikation, die irgendetwas verändert oder neue Risiken mit sich gebracht hätte.
Das Windows-Tool zum Verkleinern von Partitionen gibt im Voraus an, um wie viel die Partition verkleinert wird. Ich wollte nur ein Image des Teils der Partition, der nach der Verkleinerung übrig bleiben würde.
Da ich über ein dateibasiertes Backup verfügte, machte ich mir keine Sorgen um Dateien, die sich möglicherweise außerhalb des Verkleinerungsbereichs befanden und möglicherweise nicht vom Backup erfasst wurden.
Lösungskonzept
Allgemein wird angenommen, dass diese Anforderungen mit nicht erfüllt werden können dd
. Da jedoch gerade genug bekannt ist, um gefährlich zu sein, gibt es einen Ansatz, der eine Lösung zu sein scheint (ich gehe davon aus, dass eine dd
auf -basierte Lösung innerhalb von Linux ausgeführt werden würde).
Die Idee:
dd
verfügt über Parameter zum Angeben von Start- und Endpunkten.- Jedes Partitionsverwaltungstool zeigt an, wo sich diese Partition auf dem Laufwerk befindet.
- Das Tool zur Windows-Partitionsverkleinerung zeigt an, um wie viel es die Windows-Partition verkleinert.
Das scheint das Rohmaterial für die Berechnung der dd
Parameter zu sein. Die Teile zusammenzusetzen ist etwas, was ich noch nie gemacht habe.FrageIst:
- So bestimmen Sie die
dd
Parameter, die den geschrumpften Teil der Partition widerspiegeln - der
dd
Befehl zum Kopieren des relevanten Teils auf ein Sicherungslaufwerk - der
dd
Befehl zum Wiederherstellen dieses Images an derselben Stelle auf dem Originallaufwerk
Vorbehalt
Das Definieren und Kopieren eines gewünschten Abschnitts einer Partition von Bare Metal scheint unkompliziert zu sein. Unklar ist jedoch, ob die NTFS-MFT an die ursprüngliche Partitionsgröße gebunden ist, sodass eine Wiederherstellung auf der verkleinerten Partition sie beschädigt lassen würde, zumindest nicht mehr reparierbar chkdsk
.
Frage Ziel
DerOberstes Zielbesteht darin, wie beschrieben ein teilweises Image-Backup einer Windows-Partition zu erstellen. Dieses Problem wurde in der ursprünglichen Frage nie gelöst, daher soll diese Frage den Ansatz eines möglichen Ansatzes bieten. Mein Konzept funktioniert jedoch möglicherweise nicht. Obwohl dd
der Schwerpunkt dieser Frage auf einer Lösung liegt, würde ich eine alternative Lösung mit integrierten oder allgemein verfügbaren kostenlosen Tools nicht ausschließen. Eine erfolgreiche Antwort kann also sein:
- Eine
dd
arbeitsbasierte Lösung - Eine maßgebliche und endgültige Erklärung, warum eine
dd
-basierte Lösung unmöglich funktionieren kann (oder zumindest nicht darauf vertraut werden kann, dass sie zuverlässig funktioniert) - Eine alternative Lösung, die die Ziele erreicht.
Nachtrag
Kamil Maciorowskis Antwort stellt eine weitere Frage,Nur den verwendeten Speicherplatz von der Festplatte klonen, das ist ziemlich ähnlich, aber ich glaube nicht, dass es ein Duplikat ist. Einige wichtige Unterschiede:
- Bei dieser Frage geht es darum, nur den verwendeten Speicherplatz zu klonen. Bei dieser Frage geht es darum, einen bestimmten Abschnitt einer Partition zu klonen.
- Diese Frage hat keine besonderen Einschränkungen, um zum Ergebnis zu gelangen. Diese erfordert, dass das Bild im ursprünglichen aktuellen Zustand ist, ohne Änderungen oder Risiken für den Inhalt, was jede Art von „Vorbereitung“ ausschließt.
- Diese Frage betrifft ein ganzes Laufwerk und ein Linux-Dateisystem. Diese hier betrifft einen Abschnitt einer Partition und NTFS.
Antwort1
Ich würde sagen, es istXY-Problemund die eigentliche Frage ist:So klonen Sie nur den verwendeten Speicherplatz von der Festplatte(oder Partition)? Ich möchte nicht auf eine andere Antwort verweisen, ohne zu erklären, warum diese besser sein sollte als Ihre vorgeschlagene Idee. Also hier ist sie:
Im Allgemeinen ist nicht garantiert, dass sich der freie Speicherplatz am Ende des Dateisystems sammelt, auch nicht nach der Defragmentierung. Ich kenne weder die NTFS- noch die FAT-Familie gut genug, um sicher zu sein, aber ich vermute, dass es einige Datenstrukturen gibt, die weit entfernte Sektoren eines großen Dateisystems belegen, unabhängig davon, wie leer es ist.
Daher bin ich skeptisch, was die Idee angeht, nur ein Teilabbild zu speichern. Vielleicht gibt es Dateisysteme, die das überstehen würden, vielleicht ist NTFS eines davon – ich weiß es nicht.
Ich habe schon oft etwas Ähnliches erreicht wie Sie, meistens mit NTFS. Meine Methode funktioniert unabhängig davon, wo im Dateisystem sich die freien Chunks befinden. Im Grunde:
- Nullen in eine Datei schreiben, bis kein Platz mehr übrig ist,
- synchronisieren,
- Entfernen Sie die Datei mit den Nullen.
umount
,- Nehmen Sie das Bild in eine Sparse- oder komprimierte Datei auf.
Dies kann viel Zeit in Anspruch nehmen. Stellen Sie vorher sicher, dass das Dateisystem fehlerfrei ist. Tun Sie dies auch nicht, wenn Sie vermuten, dass die Festplatte fehlerhaft ist.
Weitere Einzelheiten finden Sie inmeine Antwort auf bereits gestellte Frage. Der wichtige Unterschied besteht darin, dass Sie mit nur Ihre einzelne Partition lesen dd
und nicht das gesamte Laufwerk.
Leider kann ein solches Image nicht auf der verkleinerten Partition wiederhergestellt werden. Das Image ist nützlich, wenn der Verkleinerungsprozess fehlschlägt und Sie Ihre Originaldateien verlieren. Ich denke, Sie benötigen ein Tool, mit dem Sie Dateien (und Metadaten innerhalb eines Dateisystems) sichern können, um sie auf einer kleineren Partition wiederherstellen zu können. Nun, dd
ein solches Tool gibt es nicht.