无法从 SD 卡删除“只读文件系统”

无法从 SD 卡删除“只读文件系统”

我使用的是 Ubuntu 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:我尝试了其他一些事情来回应阿文图林的评论。我拍了一张新照片,然后尝试了一下,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 完成了它。它似乎主要是用损坏的用户名重命名文件,在我杀死它之前重命名了近 18000 个文件(我以前从来没有拍过那么多照片......)。

然后我尝试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命令重新安装并没有。

得到了答案https://askubuntu.com/a/342448/638715

答案4

我有同样的问题。这对我有用:

  • 将 SD 卡放入 USB 读卡器中

  • 安装它

  • 转到终端中的文件夹

sudo rm -Rf .Trash-1000/

相关内容