Estou usando o Ubuntu 14.04.
Eu tenho um cartão SD que uso com minha câmera e estou tentando excluir fotos dele. Consegui movê-los para a Lixeira, mas quando tento excluir qualquer um dos arquivos da Lixeira, recebo Failed to delete the item from the trash
.
Eu posso navegar para o diretório .Trash-1000/files
no dispositivo, mas quando tento sudo rm
dos arquivos, recebo rm: cannot remove ‘IMG_1483.JPG’: Read-only file system
.
mount
me dá isso:
/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)
Eu tentei montar novamente o dispositivo usando sudo mount /dev/sdb1 /media/zack/SD -o rw,dmask=0000
e recebi o mesmo erro quando tentei excluir os arquivos.
Por fim, verifiquei o interruptor no próprio cartão e confirmei que ele está na posição destravada. Eu tentei trocá-lo para bloqueado apenas no caso de ser um cartão bobo e eu não poderia deletá-lo então também.
O que está acontecendo aqui? Como posso me livrar desses arquivos?
Atualização 1: Eu tentei algumas outras coisas em resposta ao comentário de aventurin. Eu tirei uma nova foto, tentei sudo rm
e isso funcionou. Quando voltei para .Trash-1000/files
e tentei novamente, consegui excluir alguns arquivos, mas não outros:
$ 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
...
... e assim por diante. Eu fiz um ll
antes de apagar esses arquivos, e as permissões para todos os arquivos .JPG parecem exatamente as mesmas.
Atualização 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
Eu tentei sudo fsck /dev/sdb1
e recebi muitos erros:
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
Eu disse para consertar todos, mas quando eu corri novamente, todos eles aparecem novamente.
Atualização 3:
Eu desmontei o cartão e executei sudo fsck /dev/sdb1 -a
. Ele correu por cerca de 6 horas e ainda não tinha terminado, então eu finalmente Ctrl-C-lo. Na maioria das vezes, parecia estar renomeando arquivos com nomes de usuários corrompidos, e tinha quase 18 mil arquivos renomeados antes de eu os matar (eu certamente nunca tirei tantas fotos antes ...).
Eu tentei sudo mount /dev/sdb1 /media/zack/SD -v -o rw
e obtive esta saída:
$ 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)
Apesar de não ter um erro, ainda não consigo excluir os arquivos e obter o mesmo erro antigo do sistema de arquivos "somente leitura".