고쳐 쓰다:이는 libmount의 버그로 인한 것으로 밝혀졌는데, 현재는 업스트림이 수정되었습니다.https://github.com/karelzak/util-linux/issues/1235
원래 질문은 다음과 같습니다
실행하면 mount -r /media/sdd1
장치는 -r
옵션이 실패했다는 경고나 표시 없이 읽기-쓰기를 마운트합니다.
$ egrep sdd1 /etc/fstab
/dev/sdd1 /media/sdd1 auto user,noauto,exec,nodev 0 0
$ umount /media/sdd1
umount: /media/sdd1: not mounted
$ mount -r /media/sdd1
$ touch /media/sdd1/file.tmp
$ umount /media/sdd1
$ mount -r /media/sdd1
$ ls /media/sdd1/file.tmp
/media/sdd1/file.tmp
$ rm -f /media/sdd1/file.tmp
$ umount /media/sdd1
$ mount -r /media/sdd1
$ ls /media/sdd1/file.tmp
ls: cannot access '/media/sdd1/file.tmp': No such file or directory
예를 들어 파일 시스템에 쓰지 말아야 한다는 사실을 잊어버린 경우 이는 파괴적일 수 있습니다. 제가 시도한 파일 시스템 유형은 FAT16입니다(사용 가능한 경우).
mount
플래그를 제거하여 항상 플래그를 사용하도록 강요하는 것 외에 플래그를 존중하기 위해 내가 할 수 있는 다른 방법이 있습니까 ?-r
user
sudo
답변1
일반 사용자로 실행하면 mount
사용자 정의 마운트 옵션을 지정할 수 없습니다(실행은 마운트 옵션을 mount -r
추가하는 것과 동일 ro
). 이 경우 모든 사용자 정의 마운트 옵션이 제거되고 fstab
기본 옵션 + 옵션만 사용됩니다.
런타임 결과 sudo mount -r /mnt/test
:
/dev/sdb /mnt/test vfat ro,nosuid,nodev,noexec,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
일반 사용자의 경우 이 옵션이 무시되는 것을 볼 수 있습니다 ro
.
/dev/sdb /mnt/test vfat rw,nosuid,nodev,noexec,relatime,uid=1000,gid=1000,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
이 설정은 변경할 수 없으므로 이 ro
옵션을 지정 fstab
하거나 루트로 명령을 실행 해야 합니다 mount
.
mount
"권한 없는" 마운트를 사용하고 수행하는 것은 fstab
일반적으로 매우 제한적이며 이는 의미가 있습니다. 루트가 아닌 사용자가 fstab
. 이 경우 에서 로 전환할 때 권한을 "낮추기" 때문에 "안전"할 수 있지만 rw
변경할 ro
수 없는 항목은 여전히 변경됩니다.
답변2
이는 시스템을 이중 부팅하고 운영 체제 중 하나가 Windows인 경우에 발생합니다. Windows 운영 체제에는 Windows를 더 빠르게 시작하는 데 도움이 되는 구성이 있기 때문에 Windows 운영 체제는 디스크를 제대로 마운트 해제할 수 없습니다.
첫 번째 해결 방법: Windows 운영 체제로 부팅하고 다음 단계를 수행할 수 있습니다. (Windows 10의 경우)
- 작업 표시줄에서 Windows 버튼을 마우스 오른쪽 버튼으로 클릭한 다음 전원 옵션을 클릭합니다.
- 창 오른쪽 창에서 "추가 전원 설정"을 클릭합니다.
- 제어판의 왼쪽 창에서 전원 버튼의 기능 선택을 클릭합니다.
- 현재 사용할 수 없는 설정 변경을 클릭합니다.
- 메시지가 표시되면 UAC 대화 상자를 수락하고 빠른 시작 켜기 선택을 취소합니다.
- 변경 사항을 저장하고 Linux 배포판으로 부팅합니다.
이제 자동 설치는 드라이브에 대한 읽기 및 쓰기 액세스 권한을 갖게 됩니다.
두 번째 해결 방법: 이 문제를 해결하는 두 번째 방법은 터미널에서 다음 명령을 사용하는 것입니다.
sudo apt-get install ntfs-3g -y
sudo ntfsfix /dev/drive-name
위의 명령을 실행한 후 다시 마운트해 보세요.
세 번째 해결 방법: 이는 작동하지만 Linux 배포판을 부팅할 때마다 이 작업을 수행해야 합니다.