Hardlinks auf High Sierra

Ich habe Hardlinks, wie hier beschrieben , verwendet, um meine wichtigen Ordner mit meiner Dropbox zu verknüpfen. Ein sehr nützlicher Trick zum Sichern, ohne Ihre bevorzugte Verzeichnisstruktur durcheinander zu bringen.

Nach meinem Update der High Sierra waren alle Hardlinks so beschädigt, dass alle Dateien verloren gingen.

Dies hinterlässt bei mir ein Problem. Wie sichere ich ausgewählte Ordner von meiner Festplatte über Dropbox, ohne meine ursprüngliche Dateiorganisation zu ändern, ohne diesmal alle meine Informationen zu verlieren? Unterstützt High Sierra Hardlinks? Es scheint nicht... was ist in einem solchen Fall zu tun?

aktualisieren

Sowohl Dropbox als auch OneDrive müssen also Dateien in einem dedizierten Ordner ablegen. Es scheint, als wären harte Links keine Option mehr. In diesem Fall sollte ich wohl zu einem dedizierten Dienst wechseln, der es mir erlaubt, vorhandene Ordner in die Sicherung einzuchecken?

Ist das neue Dateisystem HFS oder APFS?
Ich bin neugierig, aber wäre es nicht eine Lösung (wenn auch eine ziemlich aufwändige), ein Skript zu erstellen, das Dateisystemänderungen in den beiden Ordnern überwacht und alle Änderungen an den anderen Ordner weitergibt? Ich wüsste aber nicht, wie ich das umsetzen würde.

Antworten (4)

Ich habe Dropbox erfolgreich mit Ordnern "außerhalb des Stammverzeichnisses" unter Verwendung von Symlinks verwendet:

  • Stoppen Sie Dropbox (beenden Sie die App)

  • Erstellen Sie an einer beliebigen Stelle innerhalb der Dropbox-Ordnerbäume einen symbolischen Link zum Zielordner

  • Starten Sie Dropbox neu

Der Link wird an dieser Position als Ordner in Dropbox synchronisiert. Funktioniert super!

BEARBEITEN: Wie @krim in den Kommentaren unten erwähnt, hat Dropbox diese Problemumgehung leider Ende 2019 eingestellt 😿😭

OMG Dropbox unterstützt Symlinks. Das ist großartig. Ich kaufe gerade Dropbox Professional, obwohl mein Arbeitgeber OneDrive anbietet (das keine Symlinks unterstützt). Das zukünftige Ich aus einer alternativen Zeitachse (die jetzt zu existieren scheint), bei dem Datenverlust aufgrund nicht erfolgter Synchronisierung aufgetreten ist, danke!
Dies ist nicht mehr der Fall. Dropbox hat das Verhalten von folgenden Symlinks ab 2019 eingestellt. ( help.dropbox.com/installs-integrations/sync-uploads/symlinks )

Die von Ihnen beschriebene Methode beinhaltet die Installation eines ln-Befehls eines Drittanbieters, mit dem Sie den Kernel auffordern können, einen festen Link für ein Verzeichnis zu erstellen.

Der ln-Befehl von coreutils führt am Ende zur Ausführung der linkat()-Funktion im Darwin-Kernel, wo der Quellcode den folgenden Kommentar enthält:

/*
 * Normally, linking to directories is not supported.
 * However, some file systems may have limited support.
 */

Es wird daher generell nicht empfohlen, Hardlinks zu Verzeichnissen anzulegen.

In Bezug auf ein Upgrade auf High Sierra wird das Dateisystem Ihres Systems normalerweise von HFS+ (das diese Hardlinks in einigen Fällen unterstützt) in APFS (das keine Verzeichnis-Hardlinks unterstützt) konvertiert. Daher haben Sie nach der Konvertierung keine Hardlinks.

Siehe die Dokumentation von Apple zu diesem Thema hier:

https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html

Vor allem der folgende Absatz:

Feste Verzeichnislinks werden vom Apple File System nicht unterstützt. Alle festen Verzeichnislinks werden in symbolische Links oder Aliase konvertiert, wenn Sie unter macOS von HFS+- in APFS-Volume-Formate konvertieren.

Das Konvertierungsprogramm soll diese Hard-Links in symbolische Links (Soft-Links) umwandeln. Die symbolischen Links zeigen auf neue Einträge, die in /.HFS+ Private Directory Data/ erstellt wurden.

Es scheint jedoch, dass bei der Konvertierung ein Fehler aufgetreten ist, da Sie Dateien verloren haben. Dies kann daran liegen, dass fest verknüpfte Verzeichnisse selten verwendet werden und nicht mit den standardmäßig von Apple gelieferten Tools erstellt werden können.

Daher denke ich, dass Sie mit Radar einen Fehlerbericht bei Apple einreichen sollten.

Danke, also gibt es im Grunde keine Möglichkeit mehr, dies zu tun?
Nicht mit APFS, nein. Sie könnten ein mit HFS+ formatiertes Laufwerk verwenden und wie zuvor fortfahren. Es ist jedoch (soweit ich weiß) nicht möglich, APFS online in HFS+ zu konvertieren. Sie müssten dann alle Ihre Daten auf ein sekundäres Laufwerk (USB oder ähnliches) kopieren, die ursprüngliche Festplatte neu formatieren und die Daten dann zurückkopieren. Time Machine-Backups wären wahrscheinlich eine einfache Möglichkeit, dies zu tun.
Da ein neuer Linux-Benutzer auf Mac umgestiegen ist, verwende ich Time Machine nicht, da alle meine externen Backup-Laufwerke gut nach Themen organisiert sind, die nicht für die Mac-Nutzung formatiert sind. Leider habe ich heutzutage große Probleme, auf meine NFTS- und EXT3-Festplatte zuzugreifen, aber das ist ein anderes Thema. Apple... bitte mach dein fs anständig.
Verzeichnis-Hardlinks werden auch unter Linux nicht empfohlen. Tatsächlich ist ihre Erstellung absichtlich auf den Root-Benutzer beschränkt, und selbst dann unterstützen die meisten Dateisysteme sie nicht wirklich. Zum Beispiel wird sich der fsck für ext3 darüber beschweren, soweit ich mich erinnere. Ich bin mir nicht einmal sicher, ob btrfs das Erstellen überhaupt unterstützt.
In Bezug auf den Zugriff auf NTFS- und ext3-Laufwerke von macOS aus ist dies durchaus möglich. Sie können AskDifferent einfach nach Lösungen durchsuchen (es gibt mehrere).
Wie funktioniert .und ..arbeitet man dann mit APFS? Sie sind nur harte Links zum entsprechenden Verzeichnis und ls -izeigen wie erwartet dieselben Inode-Nummern.
@blm Das sind Sonderfälle - dh keine generischen Verzeichnis-Hardlinks, wie hier die Frage war. .zeigt immer auf das aktuelle Verzeichnis, es handelt sich also nicht um Inode-Informationen, die separat auf der Festplatte gespeichert werden. ..zeigt immer auf das übergeordnete Verzeichnis, ist jedoch nicht als feste Linkstruktur auf der Festplatte implementiert. Stattdessen hat jeder Inode ein spezielles Feld, das parent_idmit einem Inode-Zeiger auf das übergeordnete Verzeichnis benannt ist. Tatsächliche Hardlinks werden in Geschwisterstrukturen auf der Platte gespeichert.

Sie können auch das Gegenteil tun: Verschieben Sie Ihre Ordner in den Dropbox-Ordner und erstellen Sie dann Symlinks zu den gewünschten Speicherorten.

Beispiel :

mv ~/Documents/cats ~/Dropbox/cats
ln -s ~/Dropbox/cats ~/Documents/cats
Scheint ein bisschen umständlich zu sein. Ich bin es gewohnt, Terminal zu verwenden, um durch meine Dokumente zu navigieren, dies würde die Art und Weise ändern, wie ich zu meinen Dateien gehe. Außerdem sind viele meiner Dateien Code, der möglicherweise einige Links zueinander enthält, die möglicherweise nicht mehr funktionieren.

Passierte über diesen Beitrag, als ich versuchte, einen Weg zu finden, das Löschen von Hardlinks zu automatisieren. Dachte, ich gebe meinen Senf dazu.

Ich benutze Sugarsync seit etwa 5 Jahren, um genau das Problem zu vermeiden, das Sie beschreiben. Es sichert nur meine Dateien in ihrer ursprünglichen Verzeichnisstruktur. Es hat gut funktioniert.