Die Aufgabenstellung war, den vollständigen Inhalt einer Windows VM auf eine USB Platte zu kopieren. Die Vorbereitungen sind recht leicht, die Quell VMDK Files an eine andere Windows VM (unsere Arbeitsmaschine) anhängen und ausreichend Speicherplatz irgendwo an dieser Arbeitsmaschine bereitstellen.
Dann mit robocopy einfach alles rüberkopieren, fertig? Ja, ne, das gibt interessante Effekte. Die Windows-Systempartition hat unendlich viele Symlinks, auch Abzweigungspunkte genannt. Das resultiert dann in unendlichen, rekursiven Pfaden, die wegen ihrer Überlänge auch nur schwer wieder zu löschen sind!
Weiterhin macht es Sinn, die Attribute nicht zu kopieren, Berechtigungen sowieso nicht.
Die resultierenden robocopy Parameter sind also: /ZB /S /NP /LOG:logfile.txt /COPY:DT /DCOPY:D /XJ
ZB kopiert im schnellen Neustartmodus, bei Zugriffsverweigerung im Sicherungsmodus („Backup Files and Directories“ Privileg).
S kopiert alle Unterordner
NP zeigt keinen Fortschritt bei den einzelnen Dateien an, sieht im Logfile nachher auch unleserlich aus.
LOG schreibt eben das Logfile
und nun kommen die interessanten Parameter:
COPY:DT kopiert nur die Daten (Dateien) selbst und den Zeitstempel, im Standard (DATS) werden auch Attribute und NTFS Zugriffsrechte kopiert
DCOPY:D kopiert von den Ordnern nur die Daten, im Standard werden auch Attribute mitgenommen
XJ ist der Wichtigste hier, damit werden die ganzen Symlinks ignoriert und nur „echte“ Pfade kopiert
Im Endergebnis hat man nun eine komplette Kopie der Laufwerke mit allen Daten. Die ist natürlich nicht bootfähig, soll in diesem Fall aber genau so sein.