我有一个使用 FAT32 分区格式化的闪存驱动器。当我在卸载之前将其拉出时,它自然会设置脏位,并且当我在 Windows 计算机中使用闪存时,Windows 会抱怨驱动器应该修复。
Linux 机器是嵌入式设备,其 GUI 中没有“卸载”。但我可以通过 SSH 访问这台机器,并且尝试使用下面的命令来清除脏位:
root@system:~# fsck.fat -aw /dev/sda1
fsck.fat 4.1 (2017-01-24)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
Performing changes.
/dev/sda1: 4 files, 4/261376 clusters
然后我删除驱动器(仍然没有卸载),当我将其重新插入 Windows 系统时,它仍然显示驱动器应该修复消息。
那么问题来了,为什么 fsck 并没有真正清除脏位呢?
有没有什么方法可以防止或清除 drty 位,以便在没有正确卸载的情况下拔出驱动器不会触发脏位?
原因:我希望fsck
在安装驱动器后立即执行脚本或服务来清除脏位。我的意思是我希望设备根本不设置脏位或在插入驱动器后立即清除它。因为用户没有办法要求系统执行卸载
答案1
有一个犯罪到dosfstools
2021 年 1 月正确修复脏位。这成为版本 4.2,看起来你有 4.1。