Mac OS X - Problems with file permission into NTFS usb drive
I've found a thread that deals with the very same subject. Files appear greyed out and can not be opened with the same error message.
Here are the steps to (hopefully) resolve it:
-
Open a Terminal and run
xcode-select --install
The above will install the XCode command line tools
-
Then, run
GetFileInfo /Volumes/WD320/yourfile.avi
There should be information about the file type and creator and other file attributes
-
Now, change those attributes by calling
SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
Now the file should play
I obviously couldn't try it (which I'd normally do), but maybe it helps.
Item “file.avi” is used by Mac OS X and cannot be opened.
This means the item has had a file type of 'brok'
and a creator code of 'MACS'
set for it (and not cleared):
When you use the Finder to duplicate files, when the Finder first creates the duplicate file, it sets a special file type of 'brok'
, and a creator code of 'MACS'
(the creator code of the Finder itself), to signify that the file is in use. Once the Finder finishes creating the duplicate file, it resets the file type and creator code to those of the original file.
Ordinarily, you'd only encounter a situation where the 'brok'
file type isn't reset if the Finder were to crash or were somehow else interrupted during the file copy. If that isn't the case for you, then what you're seeing could well be a bug in the rw
support of the built-in NTFS driver.
As slhck mentioned, you should be able to clear this reaction by the Finder by clearing the file type and creator code of the file-in-question.
My response to this problem is the result of cobbling together answers taken from several other posts (many thanks) and my own experience.
The background: I have an external hard drive with an NTFS file system. I want to plug it in occasionally. Previously the volume would mount 'read only'. Once I got that fixed, the files on the volume were in an unusable state. in order to get the volume mounted correctly and have the files accessible, I had to do the following:
FYI: I'm a kornshell user. Adjust these commands to your preferred shell.
$ sudo ksh
<password>
$ mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
$ vi /sbin/mount_ntfs
Then paste the content below:
#!/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
Then:
$ chmod a+x /sbin/mount_ntfs
$ chown root:wheel /sbin/mount_ntfs
Now, any time I plug in the disk, it is mounted 'read/write' and the files on the disk have their 'brok' status reset. This script works well for me. Your mileage may vary.
Enjoy --