我正在尝试修复 SD 卡胖的,但fsck
没有写入更改 — 即使是魔法-w
选项也无济于事
$ sudo fsck.fat -aw /dev/sda1
fsck.fat 3.0.26 (2014-03-07)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
Free cluster summary wrong (240886 vs. really 241296)
Auto-correcting.
Performing changes.
/dev/sda1: 3471 files, 240319/481615 clusters
看起来已经修复了↑。但每次重启FSCK,它报告相同的问题,并假装用相同的文本修复了这些问题。
这是详细的变体
$ sudo fsck.fat -awv /dev/sda1
fsck.fat 3.0.26 (2014-03-07)
fsck.fat 3.0.26 (2014-03-07)
Checking we can access the last sector of the filesystem
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
Boot sector contents:
System ID "mkfs.fat"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
4096 bytes per cluster
32 reserved sectors
First FAT starts at byte 16384 (sector 32)
2 FATs, 32 bit entries
1926656 bytes per FAT (= 3763 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 3869696 (sector 7558)
481615 data clusters (1972695040 bytes)
62 sectors/track, 61 heads
2048 hidden sectors
3860480 sectors total
Reclaiming unconnected clusters.
Checking free cluster summary.
Free cluster summary wrong (240886 vs. really 241296)
Auto-correcting.
Performing changes.
/dev/sda1: 3471 files, 240319/481615 clusters
答案1
事实上,该卡的行为不稳定且不可预测,一次又一次出现相同的错误并不是一个好兆头,实际上是介质损坏的明显症状。这与 FAT 问题无关。我会丢弃这张卡,因为它不可信。不幸的是,SD 卡的使用寿命有限,并且进行大量写入操作的卡的使用寿命通常较短。
Android 还支持 ext2fs 文件系统。如果您只在 Linux 中使用该卡,这可能是一个有趣的选择。
请注意,虽然其他 Linux 文件系统可能如果支持的话,在 SD 卡事务文件系统中使用 ext3fs 并不是一个好主意。文件系统上的事务支持/写入会增加磨损。
答案2
这个命令看起来是正确的,但你必须考虑到你的SD卡中还有一个固件,它会阻止写入过程(例如对损坏的闪存芯片执行此操作)并且不会向操作系统报告该正确信息。
我建议使用 dd 和 md5sum 等软件检查卡在不同系统/读卡器上是否存在读写故障,如果怀疑卡运行不正常,则更换卡。另外,我建议不要购买最便宜的卡...
问候