8

Я могу читать / записывать файлы на внешнем USB-накопителе NTFS.

У меня есть некоторые проблемы с большими файлами, такими как AVI/MKV, хранящимися на внешнем диске NTFS. Эти файлы отображаются в Finder серым цветом, и, всегда используя Finder, когда я "открываю с" мой видеоплеер, я получаю странную ошибку:

Элемент «file.avi» используется Mac OS X и не может быть открыт.

Что ж, я нашел обходной путь: если я перетащил file.avi в мой видеоплеер, все работает нормально.

Но на самом деле я не могу понять, почему возникает эта проблема.

Пожалуйста, учтите, что у меня не установлено никаких пользовательских драйверов NTFS (например, MacFUSE или NTFS-3g). Для подключения моего NTFS USB-накопителя в R/W я изменил только /etc/fstab , добавив следующую строку:

LABEL=WD320 none ntfs rw

4 ответа4

22

Я нашел тему, которая имеет дело с тем же предметом. Файлы отображаются серым цветом и не могут быть открыты с тем же сообщением об ошибке.

Вот шаги, чтобы (мы надеемся) решить это:

  • Откройте терминал и запустите

    xcode-select --install
    
  • Выше установит инструменты командной строки XCode

  • Затем беги

    GetFileInfo /Volumes/WD320/yourfile.avi
    
  • Должна быть информация о типе файла, его создателе и других атрибутах файла.

  • Теперь измените эти атрибуты, вызвав

    SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
    
  • Теперь файл должен играть

Я, очевидно, не мог попробовать (что я обычно делал бы), но, возможно, это помогает.

7

Элемент «file.avi» используется Mac OS X и не может быть открыт.

Это означает, что для элемента был установлен тип файла 'brok' и код создателя 'MACS' (и не очищенный):

Когда вы используете Finder для дублирования файлов, когда Finder впервые создает дубликат файла, он устанавливает специальный тип файла 'brok' и код создателя 'MACS' (код создателя самого Finder), чтобы показать, что файл используется. Когда Finder завершает создание дубликата файла, он сбрасывает тип файла и код создателя на исходный файл.

Обычно вы сталкивались бы только с ситуацией, когда тип файла 'brok' не сбрасывался, если Finder должен был аварийно завершиться или был каким-либо другим образом прерван во время копирования файла. Если это не так, то то, что вы видите, может быть ошибкой в поддержке rw встроенного драйвера NTFS.

Как упомянул slhck, вы должны быть в состоянии очистить эту реакцию с помощью Finder, очистив тип файла и код создателя рассматриваемого файла.

2

Мой ответ на эту проблему является результатом объединения ответов, взятых из нескольких других сообщений (большое спасибо), и моего собственного опыта.

Предыстория: у меня есть внешний жесткий диск с файловой системой NTFS. Я хочу подключить его время от времени. Ранее том монтировался как «только для чтения». Как только я это исправил, файлы на томе были в непригодном для использования состоянии. чтобы правильно смонтировать том и получить доступ к файлам, мне пришлось сделать следующее:

К вашему сведению: я пользователь kornshell. Настройте эти команды для вашей предпочитаемой оболочки.

$ sudo ksh
<password>

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

$ vi /sbin/mount_ntfs

Затем вставьте содержимое ниже:

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

Затем:

$ chmod a+x /sbin/mount_ntfs

$ chown root:wheel /sbin/mount_ntfs

Теперь, каждый раз, когда я подключаю диск, он монтируется на «чтение / запись», а файлы на диске сбрасываются в состояние «brok». Этот сценарий хорошо работает для меня. Ваш пробег может отличаться.

Наслаждаться --

1

Большое спасибо за это - я улучшил скрипт выше, так как он не работал на моей машине с OSX 10.8.4 (выдавал ошибки) и был немного медленным. Нужно только проверить, установлен ли диск только для чтения ... Изменения, помеченные как 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .