Mac OS X - Probleme mit der Dateiberechtigung auf dem NTFS-USB-Laufwerk

10

Ich kann Dateien auf einem externen NTFS-USB-Laufwerk lesen / schreiben.

Ich habe einige Probleme mit großen Dateien wie AVI / MKV, die auf einem externen NTFS-Laufwerk gespeichert sind. Diese Dateien erscheinen im Finder grau und wenn ich meinen Videoplayer "öffne", erhalte ich immer einen seltsamen Fehler, wenn ich meinen Videoplayer "öffne":

Das Element "file.avi" wird von Mac OS X verwendet und kann nicht geöffnet werden.

Nun, ich habe eine Problemumgehung gefunden: Wenn ich sie per Drag & Drop file.aviin meinen Videoplayer ziehe, funktioniert alles einwandfrei.

Aber ich kann wirklich nicht herausfinden, warum dieses Problem auftritt.

Bitte beachten Sie, dass ich keine benutzerdefinierten NTFS-Treiber installiert habe (z. B. MacFUSE oder NTFS-3g). Um mein NTFS-USB-Laufwerk in R / WI zu mounten, habe ich nur /etc/fstabdie folgende Zeile hinzugefügt:

LABEL=WD320 none ntfs rw
freedev
quelle
Geschieht dies nur bei Mediendateien (z. B. Videos)? Können Sie einige Dateitypen ausdrücklich ausschließen?
Slhck
Sie können auch versuchen, NTFS-3g zu installieren und zu prüfen, ob es damit funktioniert.
Slhck
Eine nicht technische Lösung besteht darin, die ausgegrauten Dateien mit dem nutzlosen Quick Time Player (QTP) zu öffnen, indem Sie auf "Schnellansicht"> Doppelklick (oder Rechtsklick) auf Dateiname> Schnellansicht klicken. Dies funktioniert nur mit Dateien, die QTP öffnen kann, z. B. mp4 avi etc. Es werden keine MKV-Dateien geöffnet.
Um das Problem vollständig zu umgehen, können Sie die Dateien erstellen, indem Sie sie von einer externen Festplatte auf Ihre NTFS-Festplatte übertragen (anstatt sie von der Festplatte Ihres Computers zu kopieren). Mühsam, sicher, aber dann kann direkt auf die Dateien zugegriffen werden

Antworten:

25

Ich habe einen Thread gefunden , der sich mit dem gleichen Thema befasst. Dateien erscheinen ausgegraut und können nicht mit derselben Fehlermeldung geöffnet werden.

Hier sind die Schritte, um (hoffentlich) das Problem zu beheben:

  • Öffnen Sie ein Terminal und führen Sie es aus

    xcode-select --install
    
  • Mit den oben genannten Anweisungen werden die XCode-Befehlszeilentools installiert

  • Dann renne

    GetFileInfo /Volumes/WD320/yourfile.avi
    
  • Es sollten Informationen über den Dateityp und den Ersteller sowie andere Dateiattribute vorhanden sein

  • Ändern Sie diese Attribute jetzt durch Aufrufen

    SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
    
  • Jetzt sollte die Datei abgespielt werden

Ich konnte es offensichtlich nicht versuchen (was ich normalerweise tun würde), aber vielleicht hilft es.

slhck
quelle
Möchte jemand erklären, warum das Downvote? @NSGod bezeichnete meine Antwort tatsächlich als das, was man ausprobieren sollte - seine (sehr gute) Antwort erklärt jedoch nur den technischen Hintergrund.
Slhck
1
Sehr gut. Vielen Dank für diesen Vorschlag :)
freedev
Können Sie diese Felder in den Eigenschaften der Finder-Datei selbst nicht mehr bearbeiten? Sie scheinen in bearbeitbaren Textfeldern im Screenshot zu sein, der in der Antwort von @NSGod angegeben ist. Wenn Sie können, würde dies eine Ablehnung erklären, wenn Sie empfehlen, ein unnötiges Programm herunterzuladen.
trlkly
@trikly: Nein, das in meiner Antwort gezeigte Fenster ist ein Screenshot der Xray-App von Rainer Brockerhoff ( brockerhoff.net/xray ). Der Mac OS X Finder hatte noch nie die Möglichkeit, Dateitypen und Erstellungscodes direkt über eine GUI zu bearbeiten (möglicherweise können Sie AppleScript verwenden). Mit dem Bild wollte ich versuchen, das Geschehen besser zu veranschaulichen.
NSGod
1
Funktioniert in macOS Sierra immer noch gut für meine NTFS-gemounteten HDD-Dateien :-) Danke!
Benno
7

Das Element "file.avi" wird von Mac OS X verwendet und kann nicht geöffnet werden.

Dies bedeutet, dass für das Element ein Dateityp 'brok'und ein Erstellungscode 'MACS'festgelegt wurden (und nicht gelöscht wurden):

Geben Sie hier die Bildbeschreibung ein

Wenn Sie den Finder zum Duplizieren von Dateien verwenden, legt der Finder beim ersten 'brok'Erstellen der doppelten Datei einen speziellen Dateityp und einen Erstellungscode von 'MACS'(den Erstellercode des Finder selbst) fest, um anzuzeigen, dass die Datei verwendet wird. Sobald der Finder die Erstellung der doppelten Datei abgeschlossen hat, werden der Dateityp und der Erstellungscode auf die der Originaldatei zurückgesetzt.

Normalerweise tritt nur dann eine Situation auf, in der der 'brok'Dateityp nicht zurückgesetzt wird, wenn der Finder abstürzt oder während des Kopierens der Datei auf andere Weise unterbrochen wird. Wenn dies bei Ihnen nicht der Fall ist, könnte das, was Sie sehen, ein Fehler in der rwUnterstützung des integrierten NTFS-Treibers sein.

Wie bereits erwähnt, sollten Sie in der Lage sein, diese Reaktion durch den Finder zu löschen, indem Sie den Dateityp und den Erstellungscode der betreffenden Datei löschen.

NSGod
quelle
2

Meine Antwort auf dieses Problem ist das Ergebnis des Zusammenschusterns von Antworten aus mehreren anderen Posts (vielen Dank) und meiner eigenen Erfahrung.

Hintergrund: Ich habe eine externe Festplatte mit einem NTFS-Dateisystem. Ich möchte es gelegentlich anschließen. Zuvor war das Volume schreibgeschützt. Nachdem ich das behoben hatte, befanden sich die Dateien auf dem Volume in einem unbrauchbaren Zustand. Um das Volume korrekt bereitzustellen und auf die Dateien zugreifen zu können, musste ich Folgendes tun:

Zu Ihrer Information: Ich bin ein Kornshell-Benutzer. Passen Sie diese Befehle an Ihre bevorzugte Shell an.

$ sudo ksh
<password>

$ mv /sbin/mount_ntfs /sbin/mount_ntfs.orig

$ vi /sbin/mount_ntfs

Fügen Sie dann den folgenden Inhalt ein:

#!/bin/ksh

# --- direct all script stdout to a temp file for examination
exec > /tmp/ntfs

# --- connect all stderr to stdout
exec 2>&1

# --- get the last argument on the command line - this is the mount point
eval echo \$$# |
read MOUNT_PT
echo "\${MOUNT_PT} = \"${MOUNT_PT}\""
echo

echo "Mounting $@"

# --- call the original ntfs mounter with the arguments handed in
/sbin/mount_ntfs.orig -o rw "$@"

echo "Mounted  $@"

# --- show the result of the mounting operation
mount

# --- fix files at the newly mounted MOUNT_PT that are in the 'brok' state
find "${MOUNT_PT}" -type f |
while read FILE; do

    # ---
    # --- use 'SetFile' to modify the file status
    # ---
    # --- this command line assumes the 'SetFile' command has been installed
    # --- and is available in your PATH
    # ---
    SetFile -c "" -t "" "${FILE}"

done

Dann:

$ chmod a+x /sbin/mount_ntfs

$ chown root:wheel /sbin/mount_ntfs

Jedes Mal, wenn ich die Festplatte einstecke, wird sie mit "Lesen / Schreiben" gemountet, und für die Dateien auf der Festplatte wird der Status "Brok" zurückgesetzt. Dieses Skript funktioniert gut für mich. Ihr Kilometerstand kann variieren.

Genießen --

Jeffardo
quelle
1

Vielen Dank dafür - ich habe das obige Skript verbessert, da es auf meinem OSX 10.8.4-Computer nicht ausgeführt wurde (Fehler gab) und etwas langsam war. Sie müssen nur überprüfen, wann eine schreibgeschützte Festplatte bereitgestellt ist ... Änderungen gekennzeichnet mit JCV CHANGED:

#!/bin/ksh

# --- direct all script stdout to a temp file for examination
exec > /tmp/ntfs

# --- connect all stderr to stdout
exec 2>&1

# --- get the last argument on the command line - this is the mount point
eval MOUNT_PT=\${$#}
# -- JCV CHANGED: corrected eval expression

echo "\${MOUNT_PT} = \"${MOUNT_PT}\""
echo

echo "Mounting $@"

# --- call the original ntfs mounter with the arguments handed in
/sbin/mount_ntfs.orig "$@"

echo "Mounted  $@"

# --- show the result of the mounting operation
 mount

# --- fix files at the newly mounted MOUNT_PT that are in the 'brok' state
find "${MOUNT_PT}" -type f |
while read FILE; do
  #JCV CHANGED: added check whether file type affected
  GetFileInfo -t "${FILE}"  | read FILETYPE
    if [[ $FILETYPE = "\"brok\"" ]];then
    # ---
    # --- use 'SetFile' to modify the file status
    # ---
    # --- this command line assumes the 'SetFile' command has been installed
    # --- and is available in your PATH
    # ---
    SetFile -c "" -t "" "${FILE}"
    echo "fixing file ${FILE}"
   fi
done
JCV
quelle
Könnten Sie bitte die vorgenommenen Änderungen erwähnen und warum - danke.
Verdächtiger
danke für die antwort - ich habe versucht es im obigen post zu erklären.
JCV
Das bedeutet, dass ein Leser beide Codeblöcke lesen und einen mentalen Vergleich durchführen muss. Einige Anmerkungen, die beschreiben, was Sie getan haben und warum dies hilfreich wäre.
Verdächtiger
1
Das Skript funktioniert nur, bis die Festplatte erneut bereitgestellt wird. Anschließend müssen die Parameter erneut geändert werden. Ich habe versucht, setFile-Parameter in -c "????" zu ändern. (Erstelleranwendung unbekannt), die eine dauerhafte Lösung bietet, aber dann die Quicktime beim Öffnen eines Films verwirrt (unbekannter Dateityp blah blag).
JCV