Mac OS X-NTFS USB 드라이브에 대한 파일 권한 문제


10

NTFS 외장 USB 드라이브 내에서 파일을 읽고 쓸 수 있습니다.

NTFS 외장 드라이브에 저장된 AVI / MKV와 같은 대용량 파일에 문제가 있습니다. 해당 파일은 Finder에 회색으로 표시되며 항상 Finder를 사용하여 비디오 플레이어를 "Open With"로 사용할 때 이상한 오류가 발생합니다.

“file.avi”항목은 Mac OS X에서 사용되며 열 수 없습니다.

글쎄, 해결 방법을 찾았 file.avi습니다. 비디오 플레이어로 드래그 앤 드롭 하면 모든 것이 잘 작동합니다.

그러나 실제로이 문제가 나타나는 이유를 알 수 없습니다.

NTFS 사용자 정의 드라이버 (예 : MacFUSE 또는 NTFS-3g)가 설치되어 있지 않은 것을 고려하십시오. R / WI에서 NTFS USB 드라이브를 마운트하려면 /etc/fstab다음 줄을 추가하여 수정했습니다 .

LABEL=WD320 none ntfs rw

미디어 파일 (예 : 비디오)에서만 발생합니까? 일부 파일 형식을 구체적으로 배제 할 수 있습니까?
slhck 2016 년

시도 할 수있는 또 다른 방법은 NTFS-3g를 설치하고 작동하는지 확인하는 것입니다.
slhck 2016 년

전문가가 아닌 솔루션은 '빠른보기'를 사용하여 쓸모없는 QTP (Quick Time Player)로 회색으로 표시된 파일을 여는 것입니다.> 두 번 (또는 오른쪽으로) 파일 이름을 클릭하십시오. AVI 등. 그것은 mkv 파일을 열지 않습니다.

문제를 완전히 피하려면 파일을 외부 하드 디스크 (퍼터의 HD에서 복사하는 대신)에서 NTFS HD로 전송하여 파일을 만들 수 있습니다. 힘든, 물론,하지만 파일에 직접 액세스 할 수 있습니다

답변:


26

나는 같은 주제를 다루는 을 발견 했습니다 . 파일이 회색으로 표시되어 동일한 오류 메시지로 열 수 없습니다.

다음은이를 희망적으로 해결하는 단계입니다.

  • 터미널을 열고 실행

    xcode-select --install
    
  • 위의 XCode 명령 줄 도구를 설치합니다

  • 그런 다음 실행

    GetFileInfo /Volumes/WD320/yourfile.avi
    
  • 파일 유형과 작성자 및 기타 파일 속성에 대한 정보가 있어야합니다

  • 이제 전화하여 해당 속성을 변경하십시오.

    SetFile -c "" -t "" /Volumes/WD320/yourfile.avi
    
  • 이제 파일이 재생됩니다

나는 그것을 시도 할 수 없었지만 (보통 나는 할 것이다) 어쩌면 도움이 될 것이다.


왜 downvote를 설명해야합니까? @NSGod는 실제로 내 대답을 시도해야한다고 언급했습니다. 그의 (매우 훌륭한) 대답은 기술적 인 배경만을 설명합니다.
slhck

1
아주 좋아요 이 제안에 감사드립니다 :)
freedev

Finder 파일 속성 자체에서이 필드를 더 이상 편집 할 수 없습니까? @NSGod의 답변에 제공된 스크린 샷의 편집 가능한 텍스트 상자에있는 것으로 보입니다. 가능하면 불필요한 프로그램을 다운로드하도록 권장하면 다운 보트를 설명 할 수 있습니다.
trlkly

@trikly : 아니요, 내 답변에 표시된 창은 Rainer Brockerhoff의 Xray 앱 ( brockerhoff.net/xray ) 의 스크린 샷입니다 . Mac OS X Finder는 GUI를 통해 파일 유형과 생성자 코드를 직접 편집 할 수 없었습니다 (AppleScript를 사용할 수 있음). 이미지를 보여주는 나의 의도는 무슨 일이 일어나고 있는지 더 잘 설명하려고 노력했다.
NSGod

1
NTFS 마운트 HDD 파일의 macOS Sierra에서 여전히 잘 작동합니다 :-) 감사합니다!
Benno

7

“file.avi”항목은 Mac OS X에서 사용되며 열 수 없습니다.

즉, 항목에 파일 유형이 'brok'있고 해당 항목에 대한 생성자 코드가 'MACS'설정되어 있습니다 (삭제되지 않음).

여기에 이미지 설명을 입력하십시오

Finder를 사용하여 파일을 복제 할 때 Finder가 처음으로 중복 파일을 작성할 때 파일이 사용 중임을 나타 내기 위해 특수 파일 유형 'brok'및 작성기 코드 'MACS'(Finder 자체의 작성기 코드)를 설정합니다. Finder가 중복 파일 작성을 마치면 파일 유형 및 작성자 코드를 원래 파일의 것으로 재설정합니다.

일반적으로 'brok'파인더가 충돌하거나 파일 복사 중에 중단 된 경우 파일 유형이 재설정되지 않는 상황 만 발생합니다 . 그렇지 않은 경우 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

변경 사항과 이유를 말씀해 주시겠습니까?
suspectus

답장을 보내 주셔서 감사합니다-위의 게시물에서 설명하려고했습니다.
JCV

즉, 독자는 두 코드 블록을 읽고 정신 비교를해야합니다. 당신이 한 일과 왜 도움이 될지를 설명하는 주석.
suspectus

1
스크립트는 디스크를 다시 마운트 할 때까지만 작동하며 매개 변수를 다시 변경해야합니다. setFile 매개 변수를 -c "????"로 변경하려고했습니다. (생성자 응용 프로그램 알 수 없음) 지속적인 솔루션을 제공하지만 영화 (알 수없는 파일 유형 blah blag)를 여는 동안 퀵타임을 혼란스럽게합니다.
JCV
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.