什么原因导致 Windows 报告此驱动器有问题

什么原因导致 Windows 报告此驱动器有问题

最近,在开发一个 Linux 设备时,该设备将自己作为 USB 驱动器呈现给 Windows,并且每次挂载时都会使用 mkfs.fat 创建文件系统,但是当挂载(通过 g_mass_storage)并呈现给 Windows 时,它总是显示消息“此设备或光盘上的某些文件可能有问题。如果在将所有文件写入设备或光盘之前将其移除,就会发生这种情况。”

让 Windows 修复之后,Windows 报告没有发现错误。

什么原因导致 Windows 报告“此驱动器有问题”?

答案1

FAT32 和 vFat 文件系统具有“Dirty”标志,该标志应该设置为指示写入正在进行中,以便表示文件系统可能被部分写入(因此需要检查)。

当驱动器以读写方式安装时,Linux 会在该驱动器上设置“脏”标志,并且直到卸载后才会取消设置。这意味着如果驱动器在未先卸载的情况下被移除,则脏标志仍会设置,即使没有待处理或已进行任何更改。

它应该做的是,在第一次打开文件或目录进行写入时设置它,然后在关闭所有这些文件并且待处理的写入完成时取消设置它。

相关内容