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.