web-dev-qa-db-fra.com

Mac OS X - Problèmes avec l'autorisation de fichier dans le lecteur USB NTFS

Je peux lire/écrire des fichiers dans un lecteur USB externe NTFS.

J'ai des problèmes avec de grands fichiers tels que AVI/MKV stocké sur un lecteur externe NTFS. Ces fichiers apparaissent grisés dans Finder et, toujours à l'aide de Finder, lorsque je "ouvert avec" mon lecteur vidéo, je reçois une erreur étrange:

Item "File.avi" est utilisé par Mac OS X et ne peut pas être ouvert.

Eh bien, j'ai trouvé une solution de contournement: si je traîne et dépose file.avi Dans mon lecteur vidéo Tout fonctionne bien.

Mais vraiment, je ne peux pas comprendre pourquoi ce problème apparaît.

Veuillez considérer que je n'ai pas installé de pilotes personnalisés NTFS (I.e. Macfuse ou NTFS-3G). Pour monter mon lecteur USB NTFS en r/w, j'ai modifié seulement /etc/fstab, ajouter la ligne suivante:

LABEL=WD320 none ntfs rw
9
freedev

J'ai trouvé n fil qui traite du même sujet. Les fichiers apparaissent grisés et ne peuvent pas être ouverts avec le même message d'erreur.

Voici les étapes à suivre (espérons-le) la résoudre:

  • Ouvrez un terminal et courez

    xcode-select --install
    
  • Ce qui précède installera les outils de ligne de commande Xcode

  • Ensuite, courez

    GetFileInfo /Volumes/WD320/yourfile.avi
    
  • Il devrait y avoir des informations sur le type de fichier et le créateur et d'autres attributs de fichiers.

  • Maintenant, changez ces attributs en appelant

    SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
    
  • Maintenant le fichier devrait jouer

Je ne pouvais évidemment pas l'essayer (que je ferais normalement), mais peut-être cela aide-t-il.

24
slhck

Item "File.avi" est utilisé par Mac OS X et ne peut pas être ouvert.

Cela signifie que l'article a eu un type de fichier 'brok' et un code de créateur de 'MACS' Ensemble pour cela (et non effacé):

enter image description here

Lorsque vous utilisez le Finder pour dupliquer des fichiers, lorsque le Finder crée d'abord le fichier dupliqué, il définit un type de fichier spécial de 'brok', et un code de créateur de 'MACS' (le code de créateur du Finder lui-même), de signifier que le fichier est utilisé. Une fois que le Finder a fini de créer le fichier en double, il réinitialise le type de fichier et le code de créateur à ceux du fichier d'origine.

Ordinairement, vous ne rencontreriez qu'une situation où le 'brok' Le type de fichier n'est pas réinitialisé si le Finder devait se bloquer ou être d'une manière ou d'une autre interrompue pendant la copie de fichier. Si ce n'est pas le cas pour vous, alors ce que vous voyez pourrait bien être un bug dans le support rw support du pilote NTFS intégré.

AS SLHCK mentionné, vous devriez pouvoir effacer cette réaction par le Finder en supprimant le type de fichier et le code de créateur du fichier-in-question.

7
NSGod

Ma réponse à ce problème est le résultat de la pontage des réponses regroupées de plusieurs autres postes (merci beaucoup) et de ma propre expérience.

L'arrière-plan: j'ai un disque dur externe avec un système de fichiers NTFS. Je veux le brancher à l'occasion. Auparavant, le volume montait "Lecture seulement". Une fois que j'ai reçu cela, les fichiers du volume étaient dans un état inutilisable. Pour obtenir le volume monté correctement et avoir les fichiers accessibles, je devais procéder comme suit:

FYI: Je suis un utilisateur de Kornshell. Ajustez ces commandes à votre coquille préférée.

$ Sudo ksh
<password>

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

$ vi /sbin/mount_ntfs

Puis collez le contenu ci-dessous:

#!/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

Puis:

$ chmod a+x /sbin/mount_ntfs

$ chown root:wheel /sbin/mount_ntfs

Maintenant, chaque fois que je branche le disque, il est monté "lecture/écriture" et les fichiers du disque ont leur statut "Brok". Ce script fonctionne bien pour moi. Votre kilométrage peut varier.

Prendre plaisir --

2
Jeffardo

Merci beaucoup pour cela - j'ai amélioré le script ci-dessus car il n'a pas été exécuté sur ma machine OSX 10.8.4 (a donné des erreurs) et était un peu lent. Il suffit de vérifier lorsqu'un disque en lecture seule est monté ... Changements marqués de 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
1
JCV