우분투 14.04를 사용하고 있습니다.
카메라용 SD 카드가 있는데 거기에서 사진을 삭제하려고 합니다. 해당 파일을 휴지통으로 이동할 수 있지만 휴지통에서 파일을 삭제하려고 하면 Failed to delete the item from the trash
.
.Trash-1000/files
장치의 디렉터리 로 이동할 수 있지만 sudo rm
파일에 액세스하려고 하면 rm: cannot remove ‘IMG_1483.JPG’: Read-only file system
.
mount
나에게 이것을 주었다:
/dev/sdb1 on /media/zack/6562-61611 type vfat (ro,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
장치를 다시 설치해 보았지만 sudo mount /dev/sdb1 /media/zack/SD -o rw,dmask=0000
파일을 삭제하려고 할 때에도 동일한 오류가 발생했습니다.
마지막으로 카드 자체의 스위치를 확인하여 잠금 해제 위치에 있는지 확인했습니다. 어리석은 카드일 경우를 대비해 잠김으로 전환해 보았지만 제거할 수 없었습니다.
여기서 무슨 일이 일어나고 있는 걸까요? 이 파일들을 어떻게 제거할 수 있나요?
업데이트 1:나는 Aventurin의 의견에 응답하여 몇 가지 다른 것을 시도했습니다. 새로운 사진을 찍어서 시도해 보았는데 sudo rm
효과가 있었습니다. 돌아가서 .Trash-1000/files
다시 시도했을 때 일부 파일은 삭제할 수 있었지만 다른 파일은 삭제할 수 없었습니다.
$ ls
100___12
101___01
102___02 # directories
103___03
...
IMG_1365.JPG
IMG_1374.JPG
IMG_1375.JPG
IMG_1380.JPG
...
$ sudo rm -rvf *.JPG
removed ‘IMG_1365.JPG’
removed ‘IMG_1374.JPG’
removed ‘IMG_1375.JPG’
rm: cannot remove ‘IMG_1380.JPG’: Read-only file system
rm: cannot remove ‘IMG_1381.JPG’: Read-only file system
rm: cannot remove ‘IMG_1383.JPG’: Read-only file system
...
...등. 파일을 삭제하기 전에 ll
올바른 일을 했고 모든 .JPG 파일에 대한 권한은 정확히 동일해 보였습니다.
업데이트 2:
$ dmesg | grep sdb1
[ 714.950034] FAT-fs (sdb1): error, invalid access to FAT (entry 0x6ce0c8c0)
... # a bunch more of those
[ 2192.017345] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 2192.663466] sdb1: rw=0, want=105540772768, limit=62325760
[ 2192.663470] sdb1: rw=0, want=105540772744, limit=62325760
[ 2192.663499] FAT-fs (sdb1): error, invalid access to FAT (entry 0xad23600b)
[ 2192.663501] FAT-fs (sdb1): Filesystem has been set read-only
[ 2192.663601] FAT-fs (sdb1): error, invalid access to FAT (entry 0x58f3a807)
[ 2271.537913] sdb: sdb1
[ 2273.782060] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 2407.374492] FAT-fs (sdb1): error, fat_free_clusters: deleting FAT entry beyond EOF
[ 2407.374496] FAT-fs (sdb1): Filesystem has been set read-only
시도해 보았는데 sudo fsck /dev/sdb1
많은 오류가 발견되었습니다.
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
...
/.Trash-1000/files/IMG_1483.JPG and
/.Trash-1000/files/117___09/IMG_1737.JPG
share clusters.
1) Truncate first to 5439488 bytes
2) Truncate second to 0 bytes
? 1
모든 문제를 해결하라고 지시했지만 다시 실행하면 모두 다시 나타납니다.
업데이트 3:
나는 카드를 제거하고 달렸다 sudo fsck /dev/sdb1 -a
. 6시간 정도 실행했는데 아직도 끝나지 않아서 드디어 Ctrl-C를 눌러 마무리했습니다. 그것은 대부분 맹글린 사용자 이름으로 파일 이름을 바꾸는 것 같았고, 거의 18,000개의 파일을 죽이기 전에 이름을 바꿨습니다. (저는 이전에 이렇게 많은 사진을 찍은 적이 없었습니다...)
그런 다음 다음 출력을 얻으려고 합니다 sudo mount /dev/sdb1 /media/zack/SD -v -o rw
.
$ sudo mount /dev/sdb1 /media/zack/SD -v -o rw
mount: you didn't specify a filesystem type for /dev/sdb1
I will try type vfat
/dev/sdb1 on /media/zack/SD type vfat (rw)
오류가 없더라도 파일을 삭제할 수 없으며 이전과 동일한 "읽기 전용 파일 시스템" 오류가 발생합니다.
답변1
파일 시스템이 손상된 것 같습니다. fsck를 끝까지 실행할 수 없다면 카드를 다시 포맷하는 것이 좋습니다 mkfs.vfat
. 하지만 나중에 손상을 방지하려면 badblocks
먼저 SD 카드를 확인하는 것이 좋습니다(파괴 -w
옵션을 사용할 수 있지만 그런 다음에는 파티션 테이블을 다시 만들어야 합니다. cfdisk
예를 들어 사용). 그런 다음 불량 블록이 있으면 다음과 같이 mkfs 명령에 전달할 수 있습니다.
badblocks -w -o ~/badblocksList /dev/sda
mkfs.vfat -l ~/badblocksList /dev/sda
참고: 또는 mkfs.vfat -c
포맷하는 동안 간단한 불량 블록 검사를 수행할 수도 있습니다. 또한 FAT는 저널링 파일 시스템이 아니므로 적절하게 마운트 해제하지 않으면 손상되기 매우 쉽습니다. 가능하다면 가지고 다니는 장치에서는 사용하지 마십시오.
답변2
rm: cannot remove '/XXX/.Trash-1000/files/XXX.rtf': Read-only file system
몇 시간 전, USB 스틱에서 위 그림과 같은 오류가 발생했습니다. 구글링을 통해 이런 페이지를 찾았습니다. 제안된 방법을 시도했지만 작동하지 않았습니다. 그런 다음 VirtualBox에서 Windows를 시작했습니다. Windows가 성공적으로 제거되었습니다..Trash-1000"폴더와 그 안의 모든 것.
답변3
실제로 hdparm -r0 /dev/sda1
(필요에 따라 장치 경로 수정) 카드를 꺼냈다가 다시 삽입하는 것이 나에게 효과적이었습니다. 단순히 mount
명령을 사용하여 다시 설치하지 않았습니다.
답변4
나는 같은 문제를 가지고있다. 이것은 나에게 효과적입니다.
SD 카드를 USB 카드 리더기에 넣습니다.
설치하다
터미널 폴더로 이동
sudo rm -Rf .Trash-1000/