Erstellen Sie symbolische NTFS-Links unter Linux

15

Gibt es ein Linux-Dienstprogramm, das symbolische NTFS-Links erstellen kann ? Dies ist eine Verknüpfung auf einer NTFS-Partition, die auf einen anderen NTFS-Ordner verweist, der insbesondere in Windows 7 funktioniert.

Ich möchte einen Ordner verschieben, der normalerweise unter Windows verwendet wird. Diese Maschine kann Ubuntu bereits dual-booten, daher möchte ich das nutzen.

BEARBEITEN : Um zu verhindern, dass daraus möglicherweise "Welche Windows Live-CD ist die beste" wird, beschränke ich diese Frage auf "Ist es mit Linux möglich, ja oder nein?"

rymo
quelle
1
Erstellen Sie die symbolische Verknüpfung auf dem Laufwerk, das in einem anderen Windows-Computer als Slave gespeichert ist?
Das ist definitiv eine Alternative, aber ich werde in diesem Fall eher eine Boot-CD verwenden, als das Laufwerk zu ziehen.
Rymo
Bis heute erstellt ein aktuelles ntfs-3g unter Linux Links, die unter Linux einwandfrei funktionieren, aber Windows (7) erkennt sie nicht richtig. Mit mklink unter Windows erstellte Links funktionieren jedoch unter Linux einwandfrei.
Liwin

Antworten:

11

Mit NTFS-3G Advanced können vorhandene Junctions / NTFS-Links wie Linux-Symlinks behandelt werden. Mein eigentliches Ziel ist es jedoch, neue zu erstellen, die unter Windows funktionieren :

Das Dereferenzieren von Knotenpunkten und symbolischen Verknüpfungen, die von Windows erstellt wurden, wird somit ermöglicht, ebenso wie das feste Verknüpfen, Umbenennen und Löschen, das Erstellen neuer Verknüpfungen jedoch nicht .

rymo
quelle
4

So erstellen Sie eine symbolische Verknüpfung (auch bekannt als Junction Point oder Reparse Point) auf einem NTFS-Laufwerk unter Linux. Entnommen aus: http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/

Wenn benötigt: sudo apt-get attr

# Display the reparse data of the file source-file
getfattr -h -e hex -n system.ntfs_reparse_data source-file

# Copy the reparse data of the file source-file
# to the file target-file
REPARSE=`getfattr -h -e hex -n system.ntfs_reparse_data source-file | \
         grep '=' | sed -e 's/^.*=//'`
setfattr -h -v $REPARSE -n system.ntfs_reparse_data target-file
Erik Aronesty
quelle
Könnten Sie diese Antwort verbessern? Sie haben nicht erwähnt, dass es sudo apt-get attrzuerst erforderlich ist . Was ist die Quell- und Zieldatei? Wenn ich will , einen Link erstellen , die von /home/xxx/Musiczu /media/Storage/Musicdenen man die Quelle ist und welches ist das Ziel?
Loostro
Auch der erste Teil (getfattr) gibt „Kein solches Attribut“ , egal in Ich laufe es auf /home/xxx/Musicoder/media/Storage/Music
loostro
3

Ich weiß, dass dieser Thread ziemlich veraltet ist, aber in letzter Zeit hatte ich das gleiche Problem (ich musste einige Windows-Systemordner auf ein anderes Laufwerk verschieben) und hier ist eine einfache Lösung.

Kopieren Sie unter Windows den Ordner an einen neuen Speicherort (nicht verschieben) und erstellen Sie einen Symlink mit einem anderen Namen (es kommt also zu keiner Kollision). Löschen Sie unter Linux einfach den ursprünglichen Ordner und benennen Sie den Symlink in den ursprünglichen Ordnernamen um. Neustart und es funktioniert. Verwendete Systeme waren Windows 8.1 und Ubuntu 14.04.

Lubo

Lubo
quelle
0

Nur das Mounten der Partition unter Linux und das Erstellen der Verknüpfung mit ln -ssollte funktionieren. Dies gibt Ihnen keinen Zugriff auf die vollständige Komplexität von NTFS-Links, sollte jedoch für Ihren Zweck ausreichen.

Es gibt zwei verschiedene Implementierungen von NTFS für Linux: NTFS-3g (Name des Dateisystems ntfs-3g, Ubuntu-Paket ntfs-3g) und Linux-NTFS (Name des Dateisystems fuse.ntfs, Ubuntu-Paket ntfsprogs). Wenn einer von ihnen nicht tut, was Sie wollen, versuchen Sie es mit dem anderen.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Ich habe die Partition bereits mit ntfs-3g gemountet und sie folgt weder vorhandenen Links / Junctions noch erstellt sie Windows-kompatible Links mitln
rymo 29.07.10
-1

Es scheint, dass die Dokumentation für NTFS-3G veraltet ist. Ich verwende die Ubuntu-Version 2011.4.12AR.4-2ubuntu3 und konnte erfolgreich symbolische Links innerhalb einer virtuellen Partition erstellen. Hier ist das Verfahren, mit dem ich dies getestet habe:

dd if=/dev/zero of=ntfs.image bs=1024 count=20480
mkfs.ntfs -F ntfs.image
mkdir ntfs
sudo mount ntfs.image ntfs
cd ntfs
mkdir target
ln -s ./target symlink
ls -alF
cd -
rmdir ntfs
sudo umount ntfs
rm ntfs.image
Compholio
quelle
1
Die Frage ist, würde Ihr Symlink richtig funktionieren, wenn das ntfs.image unter einer tatsächlichen Windows-Installation bereitgestellt würde? Der springende Punkt war, dass ich Linux verwenden wollte, um die Verzeichnisstruktur einer physischen Windows-Partition neu zu ordnen.
Rymo
Ich weiß es nicht genau, aber ich würde vermuten, dass NTFS-3G diese Funktion von Windows nicht hinzugefügt hätte und den Link nicht erkannte. Es ist wichtig zu beachten, dass Sie das "ntfs-3g" -Paket laden müssen, wenn Sie auf eine Live-Festplatte booten, um dies zu versuchen. Keine mir bekannte Distribution enthält NTFS-3G auf der Festplatte.
Compholio
1
ln -s"funktionierte" für mich darin, dass es nicht fehlschlug, aber der resultierende Link war nicht verwendbar, wenn er unter Windows eingehängt wurde. Wenn Sie dies tatsächlich testen können, teilen Sie uns mit, was passiert.
Rymo
Ja, ich habe es bei der Arbeit versucht und diese Links werden nicht erkannt. Die unter Windows erstellten Junction Points werden ebenfalls nicht erkannt. Daher muss ich möglicherweise nur mein Betriebssystem aktualisieren (derzeit wird 11.10 verwendet).
Compholio