Kopieren Sie auf eine andere NTFS-Festplatte und bewahren Sie feste Links auf


10

Ich muss die Verzeichnisstruktur von einer lokalen NTFS-Festplatte auf eine andere (Windows 7+) kopieren und die in dieser Verzeichnisstruktur vorhandenen Hardlinks beibehalten.

Eine akzeptable Lösung wäre, vor dem Kopieren feste Links durch (relative) symbolische Links zu ersetzen, aber ich bin mir nicht sicher, ob dies auch praktikabel ist.

Welche Möglichkeiten gibt es hier?


Laut superuser.com/questions/624811/… kann dies eine Software namens "Shadow Copy Cloner".
Vojtech

1
@Vojtech Es ist keine Freeware und scheint nicht verfügbar zu sein. Aber ln.exe entspricht andererseits meinen Bedürfnissen. Ich würde jedoch lieber eine Alternative mit GUI haben.
Estus Flask

1
@PJMahoney Ja, dies sind harte Links, es würde keine Probleme beim Kopieren von Junctions und Symbolen geben, letztere könnten einfach kopiert und später behoben werden. Ich habe nicht vor, es zu klonen, sondern nur die Verzeichnisstruktur (die Teil der gesamten Festplatte ist) auf eine andere nicht leere Festplatte zu kopieren.
Estus Flask

Antworten:


9

Tool zum Kopieren von Hardlinks über separate Festplattenpartitionen

LN - Befehlszeilen-Hardlinks

Befehl: ln --copy x:\dir\dir2 y:\dir\newdir

Im obigen Beispiel werden die Verzeichnisse und Dateien unter x: \ dir \ dir2 nach y: \ dir \ newdir kopiert, und alle Hardlinks / Junctions / symbolischen Links in x: \ dir \ dir2 werden kopiert / an ihre neuen Speicherorte unter y gebunden : \ dir \ newdir.

Ressource: http://schinagl.priv.at/nt/ln/ln.html

Download: http://schinagl.priv.at/nt/ln/ln.html#contact

Hinweis: Anscheinend laden Sie diese Software für Ihre CPU-Architektur einfach aus der ZIP-Datei sowie aus dem vcredist (Visual C ++ Redistributable) herunter und installieren sie. Extrahieren Sie dann einfach die Dateien und Ordner aus der ZIP-Datei in einen neuen Ordner (.eg C:\Temp). Wechseln Sie in der Befehlszeile einfach in diesen Ordner [Verzeichnis] ​​und führen Sie die erforderlichen Befehle für Ihre Laufwerksstandorte aus, wie im obigen Beispiel gezeigt. Das Ausführen ln --helpzeigt Hilfedetails, aber das obige Befehlsbeispiel soll das hard linksgemäß der Dokumentation kopieren .


Link Shell-Erweiterung

Ressource: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Download: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact

Abschnitte oder Funktionen von Interesse mit dieser Software

  • Smart Mirror
  • Clone
  • Smart Copy

ln - Befehlszeilen-Hardlinks - Screenshot herunterladen Geben Sie hier die Bildbeschreibung ein

Link Shell Extension - Screenshot herunterladen Geben Sie hier die Bildbeschreibung ein


INTERESSANTE NOTIZEN

Es scheint, dass sie hard linksfür ihre Dateizeiger usw. an dieselbe Festplattenpartition gebunden sind und nicht für mehrere Partitionen verwendet werden können. Außerdem sind hard linksPartitionen auf NTFS Teil der Master File TableDatensätze (oder zumindest Attribute für die Anzahl), sodass das Kopieren dieser Partitionen auf eine vorhandene Festplatte, die eine eigene hat MFT, als Problem erscheint, wenn Sie nicht Byte für Byte auf Partitionsebene klonen mindestens.


4

Das Befehlszeilenprogramm rsyncmacht das, was Sie verlangen.

Angenommen, Ihre alten Daten befinden sich an Position A und Ihre neuen Daten an B, gehen Sie wie folgt vor:

rsync -ahPruvz --hard-links A B

Zitat aus dem rsync-Handbuch:

Dadurch wird rsync angewiesen, in der Quelle nach fest verknüpften Dateien zu suchen und die entsprechenden Dateien im Ziel miteinander zu verknüpfen.

Wie bekomme rsyncich es und wie benutze ich es? Es gibt 2 einfache Alternativen für Windows:

Erste Alternative: verwenden cygwin. Es ist eine Windows-Software. Installieren Sie es und fügen Sie es rsyncbei der Auswahl der Pakete hinzu. Lassen Sie alles andere standardmäßig. Verwenden Sie nach der Installation die Shell, um den Befehl einzugeben. Wenn Sie möchten, können Sie den vollständigen Pfad /usr/bin/rsyncanstelle von nur verwenden rsync. Wenn Sie auf Windows-Laufwerke zugreifen möchten, verwenden Sie Pfade wie "/ cygwin / drive" und versuchen Sie immer, die automatische Vervollständigung mithilfe von TAB durchzuführen.

Zweite Alternative: Wenn es sich um einen Desktop-Computer handelt, verwenden Sie eine Live-GNU / Linux-Distribution. Bereiten Sie ein Live-USB-Image vor, starten Sie es, hängen Sie die gewünschten Festplatten ein und rufen Sie rsync auf. Wenn das Live-Image nicht vorhanden ist rsync, installieren Sie es. ( apt-get install rsyncin Debian und seinen Derivaten.) Wenn Sie noch keine Erfahrung mit dem Linux-Ökosystem haben, könnte Cygwin einfacher sein.


Vielen Dank für die Klarstellung. Ich habe rsync überprüft und es funktioniert in der Tat bei harten Links (/ cygwin / driveletter und Schrägstriche verursachen einige Unannehmlichkeiten, aber es funktioniert).
Estus Flask

Hinweis: Wenn Aes sich um ein Verzeichnis handelt, Bsollte dies der Name sein, den das Verzeichnis für das Ziel annimmt (im Gegensatz cpzum Beispiel, bei dem das letzte Argument das übergeordnete Verzeichnis ist)
MM

@estus - Welche Methoden haben Sie ausprobiert, wie hat es funktioniert? und welche ergebnisse haben sie am meisten gesehen und gemocht?
Alex S

@AlexS Ich erinnere mich nicht, habe aber wahrscheinlich das Ergebnis einer lnanderen Antwort erhalten. Cygwin rsyncaus dieser Antwort kann auch funktionieren, wie ich bereits erwähnte.
Estus Flask

1
@AlexS Ich habe das CLI-Dienstprogramm verwendet ln --copy. Was die grafische Benutzeroberfläche betrifft, gehe ich davon aus, dass Sie nach "Smart Copy" suchen.
Estus Flask

3

Versuchen Sie, in rsync nach Windows zu suchen. Da rsync die Option hat, Hardlinks (Flag -H, --hard-links) beizubehalten, sollte es die Aufgabe übernehmen (Quelle: https://download.samba.org/pub/rsync/rsync.html ).

Sie könnten versuchen, etwas wie cwRsync zu untersuchen: https://www.itefix.net/cwrsync# dieses hat GUI.

cwRsync ist eine Verpackung von Rsync für Windows mit einer Client-GUI. Sie können cwRsync für die schnelle Sicherung und Synchronisierung von Remote-Dateien verwenden.


1
Bitte seien Sie vorsichtig, wenn Sie Software empfehlen. Wie geschrieben, kann Ihre Antwort als Spam angesehen werden. Ihre Antwort sollte eine Beschreibung der Software und deren Behandlung enthalten. Weitere Informationen: Wie empfehle ich Software in meinen Antworten?
bwDraco

1
Ich konnte dies zuvor mit rsync nicht erreichen (ich glaube, ich habe DeltaCopy für die GUI verwendet). Dies kann für die Implementierung von NTFS-Hardlinks und die Tatsache relevant sein, dass rsync in erster Linie ein * nix-Tool ist. Eine Klarstellung wäre willkommen.
Estus Flask

1

Sehr spät zur Party hier.

Feuer mit Feuer bekämpfen. Da Robocopy das Durcheinander erlaubt hat, werden wir Robocopy auch verwenden, um es aufzuräumen.

Erstellen Sie ein leeres Verzeichnis und kopieren Sie das leere Verzeichnis mithilfe von Robocopy mithilfe der Bereinigungsoption auf das Ziel (mit den superlangen Pfaden).

md %temp%\foo
robocopy %temp%\foo target /purge
rd target
rd %temp%\foo

Das sollte funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.