Mac OS X-NTFS USBドライブへのファイル許可に関する問題


10

NTFS外付けUSBドライブ内のファイルを読み書きできます。

NTFS外付けドライブに保存されているAVI / MKVなどの大きなファイルで問題が発生します。これらのファイルはFinderで灰色に表示され、常にFinderを使用しているときに、ビデオプレーヤーを[プログラムから開く]で奇妙なエラーを受け取ります。

項目「file.avi」はMac OS Xで使用され、開くことができません。

まあ、私は回避策を見つけました:file.aviビデオプレーヤーにドラッグアンドドロップすると、すべてが正常に動作します。

しかし、なぜこの問題が発生するのか、実際にはわかりません。

NTFSカスタムドライバ(MacFUSEやNTFS-3gなど)がインストールされていないことを考慮してください。NTFS USBドライブをR / WIにマウント/etc/fstabするには、次の行を追加するだけで変更されています。

LABEL=WD320 none ntfs rw

これはメディアファイル(ビデオなど)でのみ発生しますか?特定のファイルタイプを明確に除外できますか?
slhck

NTFS-3gをインストールして、それが動作するかどうかを確認することもできます。
slhck

技術的ではない解決策は、「クイックビュー」を使用して、役に立たないQuick Time Player(QTP)でグレー表示されたファイルを開く>ファイル名をダブル(または右)クリックする>クイックルックこれは、MP4などのQTPで開くことができるファイルでのみ機能しますaviなど。mkvファイルは開きません。

問題を完全に回避するには、ファイルを(ハードディスクのHDからコピーするのではなく)外部ハードディスクからNTFS HDに転送してファイルを作成します。

回答:


25

まったく同じテーマを扱っているスレッドを見つけまし。ファイルはグレー表示され、同じエラーメッセージで開くことができません。

(うまくいけば)それを解決する手順は次のとおりです。

  • ターミナルを開いて実行します

    xcode-select --install
    
  • 上記はXCodeコマンドラインツールをインストールします

  • 次に、実行します

    GetFileInfo /Volumes/WD320/yourfile.avi
    
  • ファイルの種類、作成者、およびその他のファイル属性に関する情報が必要です

  • 次に、これらの属性を呼び出して変更します

    SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
    
  • これでファイルが再生されます

私は明らかにそれを試すことができなかった(私は通常そうする)が、多分それは役立つ。


誰かが反対票を投じる理由を説明したいと思いますか @NSGodは実際に私の答えを試してみるものとして言及しました-彼の(非常に良い)答えは、技術的背景を説明するだけです。
slhck

1
とても良い。この提案に感謝します:)
freedev '07 / 07/14

Finderファイルのプロパティ自体でこれらのフィールドを編集できなくなりましたか?それらは、@ NSGodの回答にあるスクリーンショットの編集可能なテキストボックスに表示されます。できれば、不要なプログラムをダウンロードすることをすすめた場合、それは反対投票を説明することになります。
trlkly 2014年

@trikly:いいえ、私の回答に表示されているウィンドウはRainer BrockerhoffのXrayアプリのスクリーンショット(brockerhoff.net/xray)です。Mac OS Xのファインダーは、GUIを介してファイルタイプとクリエーターコードを直接編集することができませんでした(AppleScriptを使用できる場合があります)。画像を表示することの私の意図は、何が起こっていたかをよりよく説明しようとすることでした。
NSGod 2014年

1
私のNTFSマウントされたHDDファイルのmacOS Sierraでもまだうまく機能します:-)ありがとうございます!
Benno 2017

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

これで、ディスクを接続するたびに、ディスクが「読み取り/書き込み」でマウントされ、ディスク上のファイルの「状態」がリセットされます。このスクリプトは私にとってはうまくいきます。あなたのマイレージは異なる場合があります。

楽しい -


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

加えられた変更とその理由を教えてください-ありがとう。
容疑者2013

返信ありがとう-上記の投稿で説明しようとしました。
JCV 2013

つまり、読者は両方のコードブロックを読み取って、精神的な比較を行う必要があります。あなたがやったことと、なぜ役立つのかを説明するいくつかの注釈。
容疑者2013

1
スクリプトは、ディスクが再マウントされるまでのみ機能します。その後、パラメーターを再度変更する必要があります。setFile paramsを-c "????"に変更してみました (作成者のアプリケーションは不明)永続的な解決策を提供しますが、ムービー(不明なファイルタイプblah blag)を開くときにクイックタイムを混乱させます。
JCV 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.