Ubuntu에서 쓰기 권한이있는 Windows 폴더 마운트


17

분명히 대답은 여기에 있습니다 : /superuser/251537/mount-specific-ntfs-directory-on-linux 그러나 예상대로 작동하지 않습니다.

Windows 7 및 Ubuntu 13.04 (12.10에서 업그레이드 됨)가 포함 된 이중 부팅 시스템이 있으며 읽기 및 쓰기를 위해 Windows 7 개인 폴더에 액세스하고 싶습니다. 주어진 링크에 따라 지침을 따르고 /etc/fstab파일은 다음과 같습니다.

/dev/sda1 /media/windows ntfs ro,umask=0222,defaults 0 0
/media/windows/Users/MyUser/    /home/myuser/Windows    ntfs-3g rbind,user,umask=0222,defaults 0 0
/media/windows/Users/OtherUser/ /home/otheruser/Windows ntfs-3g rbind,user,umask=0222,defaults 0 0

거의 예상대로 작동합니다. 내 Windows 파티션이 /media/windows/읽기 전용 권한으로 켜져 있고 Windows 개인 폴더가에 ~/Windows있습니다. 그러나이 개인 폴더도 읽기 전용입니다.

참고 멀티 세션 환경에서이를 구성하고 있으므로 세션 및 다른 사용자의 세션에서 작동해야합니다. 각 사용자가 Linux에서 Windows 폴더에 액세스하고 Windows 폴더를 쓰고 읽을 수 있어야합니다.


전체 시스템을 다시 시작하지 않고도 구성을 변경하고 테스트 할 수있는 방법이 있습니까? 지금까지 긍정적 인 결과없이 umask 및 000 매개 변수 등을 추가하여 umask (0002로)를 변경하려고 시도했지만 각 변경에는 시스템 종료가 필요합니다.
Carlos Eugenio Thompson Pinzón

나는 아이디어를 얻거나 /root/(작동중인) 파티션을 마운트하기 위해 totti에게 100 현상금을 수여했습니다 . 내 현재 솔루션은 falconer, ajThapa, totti 및 yilmi가 제공 한 힌트를 사용하지만 원래 질문에서 예상대로 작동하지 않지만 (보호는 충분하지 않음) 작동합니다 (사용자는 데이터에 rw 액세스 할 수 있음). 언급 된 모든 답변은 찬성되었습니다.
Carlos Eugenio Thompson Pinzón

답변:


6

위의 링크 된 수퍼 유저 질문은 파티션과 하위 디렉토리를 읽기 전용 모드 로 마운트하기위한 것 입니다. 하위 디렉토리 (개인 폴더) 만 읽고 쓸 수 있습니다.

먼저 시스템이 읽기-쓰기 모드로 ntfs 파티션을 마운트 할 수 있는지 확인하십시오

mount -t ntfs-3g  -o rw /dev/sda1 /media/windows

이제 마운트 된 fs가 쓰기 가능한지 테스트하십시오. 여기서 멈추지 않으면이 사이트에서 다른 질문을하십시오.

문제는 RO 마운트 파티션의 하위 디렉토리가 RW에있을 수 없다는 것입니다. 따라서 해결책은 RW의 Windows 파티션을 숨겨져 액세스 할 수없는 장소에 마운트하는 것입니다. 그럼에 마운트 할 수 / / 루트 승리 (없이 루트가 아닌 사용자가 액세스 할 수있는 sudo)

루트 사용자 로서 다음
단계를 수행
하십시오. 1. RW에 Windows 파티션 마운트

mount -t ntfs-3g -o rw /dev/sda1 /root/win  

2. 바인드

mount --bind /root/win/Users/MyUser/  /home/myuser/Windows  

3. 읽기 전용 Windows 파티션 인스턴스 바인드

mount --bind /root/win /media/windows  
mount -o remount,ro /media/windows

이제 모든 것이 정상입니다. 또한 Windows 파티션을 마운트 해제 할 수는 있지만 일부 시스템에서는 바인드 된 (@home)을 액세스 할 수 없게 만들 것이라고 경고합니다. 코드는umount /root/win

또는 / root / win 대신 / media / windows 에서 RW의 Windows 파티션을 마운트하고 동일한 마운트 포인트 (/ media / windows)에 즉시 마운트하여 바인드 할 수 없습니다 (루트조차도). 파티션 (그러나 사용자 폴더에 있음).


작동합니까 ? 무슨 문제 요?
totti

첫 번째 부분 인 / media / windows에 rw를 마운트하면 실제로 파일을 터치하고 편집 할 수있는 권한이보고되지 않지만 작동하는 것 같습니다.
Carlos Eugenio Thompson Pinzón

다시 마운트 할 때 나는 다음과 같은 오류가 발생합니다 :Remounting is not supported at present. You have to umount volume and then mount it once again.
카를로스 에우 제 니오 톰슨 핀존

나는 당신의 시스템 문제라고 생각합니다. 우분투 12.10에서 성공적으로 테스트했습니다. 우분투 10.04에서도 그러한 오류를 보지 못했습니다. 실제 시스템에서 시도 할 수 있습니다 (OS가 업데이트 된 것처럼 보입니다).
totti

우아한 해결책과 매우 명확한 설명을 위해 나에게도 +1 감사합니다. 특히 사용자 폴더를 마운트하는 트릭이 마음에들므로 하나의 루트 (심지어 루트)가 사용자 폴더 이외의 다른 폴더에 쓸 수 있습니다. 시스템 파일이 속한 Windows 8.1 인스턴스 이외의 OS 인스턴스가 해당 시스템 파일에 액세스하는 비즈니스가 없기 때문에 실제로 최상의 솔루션입니다. 그러나 공유 데이터는 다른 이야기입니다.
Bill The Ape

5

연결된 수퍼 유저 답변이 제대로 작동하는지 의심합니다. (나는 그것을 시도 할 수는 없지만) man mount.

파일 시스템 마운트 옵션은 원래 마운트 포인트의 옵션과 동일하게 유지되며, -bind /-rbind와 함께 -o 옵션을 전달하여 변경할 수 없습니다. 마운트 옵션은 다음과 같은 별도의 다시 마운트 명령으로 변경할 수 있습니다.

mount --bind olddir newdir
mount -o remount,ro newdir

또한 --rbind다른 파일 시스템 드라이버 (ntfs와 ntfs-3g)를 사용하여 파일 시스템의 일부 가 가능하다는 것을 의심합니다 .

당신이 할 때 rbind(가) 마운트 아무것도 읽기 - 쓰기가되지 않도록 명령은 모든 옵션을 무시합니다. 커널 ntfs 드라이버는 쓰기를 지원하지 않기 때문에 분명히 rw옵션도 도움이되지 않습니다. ntfs-3g 드라이버를 사용하십시오.

기본적으로 당신이해야 할 일은 이것입니다 (터미널에서) :

mount -t ntfs-3g -o ro /dev/sda1 /media/windows
mount --bind /media/windows/Users/MyUser/    /home/myuser/Windows
mount -o remount,rw /home/myuser/Windows

( --rbind그것도 불필요 하다고 생각합니다 --bind.)

그리고 질문 아래의 의견과 관련하여 : 물론 테스트를 위해 시스템을 다시 시작할 필요가 없으므로 mount위 의 명령을 사용하십시오 . (그리고 umount명령으로 마운트 해제하십시오 .)

이것이 의도 한대로 작동하는지 확인한 후 마운트를 수정하고 원하는 옵션을 추가하십시오 : uid, gid, umask 등


글쎄,을 사용하여 테스트 할 수는 mount있지만 작동하는 구성을 찾으면 자동으로 /etc/fstab또는 다른 방법 으로 수행하고 싶습니다 . (산부인과 질문 : 어떻게 번역 할 mount에 명령을 fstab매개 변수?)
카를로스 에우 제 니오 톰슨 핀존에게

@ CarlosEugenioThompsonPinzón 시작시 명령에 fstab의해 순차적으로 구문 분석되는 파일 일뿐 mount입니다. 하지만 우분투가 사용하지 않는 생각 mount하지만, mountall순차적으로 fstab 파일에있는 명령을 실행되지 않을 수 있습니다 시작에서. 예, 이러한 명령 매개 변수를 단순히 넣으면 fstab작동하지 않을 수 있습니다. 그러나 항상 간단하게 작동하는 마운트 명령을 시작 스크립트 (예 /etc/rc.local:)에 넣거나 시작 스크립트에서 시작할 수 있습니다. 귀하의 경우 가장 중요한 것은 작동하는 마운트 구성표를 찾는 것입니다. 시작시 자동 마운트하는 것은 쉬운 일입니다.
매 사냥

@ CarlosEugenioThompsonPinzón 죄송합니다. 댓글에서 마지막 질문을 놓쳤습니다. 그러면 마운트 명령이 fstab으로 어떻게 변환됩니까? man mount또는 여기 에서 찾을 수 있습니다 . 짧은 이야기 : 첫 번째 필드 : 마운트 할 장치, 두 번째 필드 : 마운트 포인트, 세 번째 필드 : fs 유형 (보다 정확하게는 fs 드라이버), 네 번째 필드 : 마운트 옵션, 다른 필드는 현재 덜 중요합니다. 그래서 우리가 쓴 문자열 -t은 세 번째 필드에 -o들어가고, 우리가 쓴 문자열 은 네 번째 필드에갑니다.
falconer

3

이것이 도움이되는지 확인하십시오 ...

sda1에 이미 마운트 된 경우 /media/windows다음을 사용하여 마운트를 해제 할 수 있습니다.

sudo umount /media/windows

다음에 디렉토리 windows를 만드십시오 /media/:

sudo mkdir /media/windows

/etc/fstab아래와 같이 편집하십시오 :

/dev/sda1  /media/windows ntfs-3g  rw,nodev,noexec,auto,nouser,async,locale=en_US.utf8,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/MyUser/  /home/myuser/Windows  ntfs-3g rbind,user,rw,nodev,noexec,auto,async,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/OtherUser/  /home/otheruser/Windows  rbind,user,rw,nodev,noexec,auto,async,uid=1001,gid=1001,umask=0002 0 0

( 참고 : 사용자에 대한 uidgid 값을 변경 하십시오 . 사용자의 uid 및 gid를 얻으려면 명령 id -u usernameid -g usernameresp를 사용할 수 있습니다 .)

이제 다음 명령을 사용하여 마운트 할 수 있습니다.

sudo mount -a

이제 리 바인드 디렉토리 로 이동 하여 파일을 편집 할 수 있는지 확인하십시오. 그리고 당신은해야합니다.


좋아,에 RW 권한이 /media/windows(안보고를 ls,하지만 난 파일을 편집 할 수 있습니다)하지만 내가 필요 로컬 디렉토리에 루트로 sudo파일을 수정하기 위해.
Carlos Eugenio Thompson Pinzón

... 지금은 모든 디렉토리에서 나에게 (사용자 1000)에 속하는된다 장착 /media/windows/home/someotheruser/Windows.
Carlos Eugenio Thompson Pinzón

나는 지금 당신과 다른 사용자가 resp에서 작품을 만들고 저장할 수 있다고 생각합니다. 사용자의 $ HOME에있는 마운트 포인트 ... 나머지 사용자가 여전히 RW 액세스 권한을 가질 수없는 경우 그룹에 추가하십시오 (아마도 gid 1000 사용)
정확한

현재 모든 로컬 사용자가 연결된 그룹이 있으며 해당 그룹에 대한 쓰기 권한을 부여하고 있습니다. 이렇게하면 "각 사용자가 자신의 데이터에 rw 액세스 할 수 있지만"전체 파티션 및 다른 사용자의 데이터가 보호되지 않습니다.
Carlos Eugenio Thompson Pinzón

3

fstab 구성 파일을 편집하기 전에 모든 테스트를 수행하십시오.

파일 시스템이 더티 플래그 인 경우 ntfs 파일 시스템이 읽기 전용으로 자동 마운트된다는 것을 알고있을 것입니다. 대답을 시도하기 전에 먼저 수행해야 할 일은 디스크를 Windows에 마운트하고 chkdsk를 실행하여 다시 마운트하기위한 것입니다.

또한 rw에 마운트 할 수없는 경우 sudo mount -t ntfs또는 같은 다른 마운트 유형 옵션으로 마운트를 시도해야합니다.sudo mount -t ntfs-3g

fs가 rw에 마운트되면 다음을 수행 할 수 있습니다.

mount --bind /media/MOUNTPOINT/TARGETFOLDER /home/SHAREDDIRECTORY/ mount -o remount,ro /home/SHAREDDIRECTORY/

또는

sudo gksu nautilus또는 sudo gksu dolphinsu 권한이있는 탐색기를 열려면


감사합니다 chkdsk. 실제로 NTFS 파티션에 약간의 손상이 있었으므로 이제로 마운트 된 드라이브에 쓸 수 있습니다 sudo.
Carlos Eugenio Thompson Pinzón

2

읽기 및 쓰기 속성으로 마운트를 시도하지 않는 이유는 무엇 rw 입니까?

/ dev / sda1 / media / windows ntfs rw , umask = 0222, 기본값은 0 0


확인하지만 전체 파티션을 읽기 전용으로하고 특정 폴더 만 읽기 / 쓰기로 설정합니다.
Carlos Eugenio Thompson Pinzón

작동하지 않았다. 파티션과 폴더는 모두 읽기 전용입니다. 유일한 차이점은 chmod와 chown이 읽기 전용 오류보고에 실패하지 않는다는 것입니다. 작동하지 않습니다.
Carlos Eugenio Thompson Pinzón

2

그러나 잘 모르겠습니다. 이걸 시도해보십시오. 드라이브가 마운트 된 후 터미널에 다음 명령을 제공하십시오

sudo gksu nautilus

관리자 암호를 입력하고 열리는 그래픽 창에서 드라이브를 클릭하고 읽기 / 쓰기 권한을 변경할 수 있어야합니다.

이것이 작동하는지 알려주세요. 루트 권한이있는 그래픽 인터페이스와 함께 노틸러스를 사용할 수있는 도움말이 있습니다.


이렇게하면 파일에 액세스 할 수 있으며 파일도 복사 할 수 있지만 비 유닉스 파일 시스템은 읽기 전용으로 마운트되므로 읽기 전용 권한은 변경되지 않을 수 있습니다.
Wilf

1

sudo chmod.666 ~ / Windows를 사용하는 것이 좋습니다.

https://help.ubuntu.com/community/FilePermissions


1
권한이나 소유자를 변경할 수 없습니다 (로도 sudo). 시스템이 읽기 전용이라는 명령을 거부합니다. 심지어에 /media/windows/있는 모든 파티션은 (그리고 예상되는 동작하지 않을 것이다)
카를로스 에우 제 니오 톰슨 핀존

아마도 틀렸을 수도 있지만 sudo에 루트 권한이없는 경우가 있습니다. sudo su를 실행 한 다음 chmod
virtualxtc

0

읽기 / 쓰기로 Windows를 마운트하는 가장 쉬운 방법은 간단히 재부팅하거나 완전히 종료하는 것입니다. "빠른 종료"를 사용하면 NTFS 파티션이 최대 절전 모드로 전환 됩니다. 이 원칙은 이 링크 에서 더 자세히 다루고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.