问题现象:
NTFS日志:事件ID 137 Error / 事件ID 141 Warning
如下图,C盘只读,报错很奇怪
Event ID 137 :卷 C: 上默认的事务资源管理器遇到不可重试的错误并且无法启动。该数据含有错误代码。
Explorer 报磁盘空间不足(disk full error,对应windows code一般是0xC000007F),但空间还有很多
或者比如数据盘,明明磁盘剩余空间显示还有100GB左右(下图紫红色划线部分),但是NTFS日志:Event ID 141 报磁盘已满,删了一些文件,磁盘剩余空间变大了,但仍然报相同的错
通过chkdsk /f /r命令修复磁盘,并成功恢复业务。
问题原因分析:
=========
结合问题现象、日志分析、解决方案(chkdsk /f /r),怀疑遇到的问题是NTFS文件系统metadata的USN journal(Update Sequence Number Journal)达到参数上限导致的。
USN journal:当文件、目录和其他NTFS对象被添加、删除和修改时,NTFS会将记录输入USN变更日志,计算机上的每个NTFS卷都有这样的日志文件。每条记录都表明变化的类型和变化的对象。新的记录被附加到流的末端。
当我们对一个NTFS卷里的对象操作足够多,是有可能达到USN journal参数的上限,从而触发我们当前遇到的问题。这是NTFS文件系统的缺陷。不过我们可以通过手动方式重置USN journal解决问题,或者使用ReFS文件系统避免这样问题(腾讯云目前不支持UEFI+GPT启动模式,ReFS需要这种模式,因此目前不支持使用ReFS文件系统)。
建议解决方案:
解决方案里的盘符要对应到发生问题的实际的盘符。
解决方案里的盘符要对应到发生问题的实际的盘符。
解决方案里的盘符要对应到发生问题的实际的盘符。
通过命令fsutil usn queryjournal C: 查看磁盘的USN journal情况
fsutil usn queryjournal C:
fsutil usn queryjournal D:
通过命令fsutil usn deleteJournal /D C: 重置USN journal
fsutil usn deleteJournal /D C:
fsutil usn deleteJournal /D D:
=========
Windows Server 2022不再有这个问题,随着微软2023年4月份的补丁解决
Windows Server 2019以及之前版本:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。