Mac OS X - проблемы с разрешением файлов на USB-накопитель NTFS


10

Я могу читать / записывать файлы на внешнем 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

Это происходит только с медиафайлами (например, видео)? Можете ли вы конкретно исключить некоторые типы файлов?
slhck

Другая вещь, которую вы можете попробовать, это просто установить NTFS-3g и посмотреть, работает ли он с этим.
slhck

Нетехническое решение состоит в том, чтобы открывать серые файлы с помощью бесполезного Quick Time Player (QTP) с помощью «быстрого просмотра»> двойного (или правого) щелчка имени файла> Quick Look. Это работает только с файлами, которые QTP может открыть, такими как mp4. AVI и т. д. Он не будет открывать MKV файлы.

Чтобы полностью обойти проблему, вы можете создать файлы, перенеся их с внешнего жесткого диска (вместо того, чтобы копировать их с HD вашего компьютера) на NTFS HD. Трудоемко, конечно, но тогда к файлам можно получить доступ напрямую

Ответы:


26

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

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

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

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

  • Затем беги

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

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

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

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


Кто-нибудь хочет объяснить, почему понизить? @NSGod на самом деле назвал мой ответ тем, что нужно попробовать - его (очень хороший) ответ объясняет только техническое обоснование.
slhck

1
Отлично. Большое спасибо за это предложение :)
freedev

Вы больше не можете редактировать эти поля в свойствах файла Finder? Похоже, они находятся в редактируемых текстовых полях на скриншоте, который дан в ответе @NSGod. Если вы можете, это объяснит понижение рейтинга, если вы порекомендуете загрузить ненужную программу.
trlkly

@trikly: Нет, окно, показанное в моем ответе, является снимком экрана с приложением Райнера Брокерхоффа ( brockerhoff.net/xray ). Mac OS X Finder никогда не имел возможности редактировать типы файлов и коды создателей напрямую через графический интерфейс (вы можете использовать AppleScript). Моим намерением показать изображение было попытка лучше проиллюстрировать происходящее.
NSGod

1
Все еще хорошо работает в macOS Sierra для моих файлов HDD, смонтированных в NTFS :-) спасибо!
Бенно

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

Не могли бы вы упомянуть внесенные изменения и почему - спасибо.
Подозреваемый

спасибо за ответ - я попытался объяснить это в посте выше.
JCV

Это означает, что читатель должен прочитать оба блока кода и провести мысленное сравнение. Немного аннотации, чтобы описать, что вы сделали и почему было бы полезно.
Подозреваемый

1
Скрипт работает только до тех пор, пока диск не будет перемонтирован - тогда он должен снова изменить параметры. Я попытался изменить параметры setFile на -c "????" (приложение-создатель неизвестно), которое дает постоянное решение, но затем сбивает с толку быстрое время при открытии фильма (неизвестный тип файла, бла-бла).
JCV
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.