C:\$extend\$Usn.Jrnl:$J:$data
最后是一张图片。顶部带中心的大条带是最大的块,其他灰色区域是与之相关的各种簇。
右边,那条又大又长的灰线是$logfile
(非分页),大小为 63 MB。分页,500 MB 是深青色块,位于内圈黄色 MFTres 旁边。磁盘已进行碎片整理,因此可以更轻松地看到它们。并非所有此类文件的群集都已标记,但这个想法是存在的。
磁盘为 4k 簇,现在大约 12 GB 大小。图片中每个可爱的小块为 0.81 MB,代表 207 个簇。dkGreen 部分主要是整个 Winsxs 堆,当他们不断告诉我们它不会占用太多磁盘空间时,这也很有趣。
维基百科建议在以前的 NT 系统中,“USN 日志”是开启的当启用时(假设它也可以被关闭?)。
哪些方面、服务或程序正在致力于将这些内容放到整个磁盘上(这些磁盘可被$jrnl$
类型集群识别),即使它不是实际的 USN 日志?
在 Windows 7 系统中是否可以完全禁用日志功能?这样做会产生什么后果?
在 Windows XP NTFS 系统上,我不记得看到过使用这些名称的磁盘簇的数量$jrnl$
,所以我不记得 NTFS 文件系统本身需要这么大的数量?
我明白,如果它没有有用的功能,它就不会存在:-) 如果这些信息有助于追踪系统的哪些部分创建和使用它,那么有关它有多棒的信息就很好了。
更改日记帐状态:
恢复文件系统索引也需要变更日志
嗯,这也许可以解释其中的一些问题,或者为什么它留在磁盘上。后台索引时崩溃了?
答案1
有一种方法可以完全删除(不仅仅是禁用)Windows 7 上的 USN 日志:
fsutil usn deletejournal /d c:
根据微软技术网,
删除更改日志会影响文件复制服务 (FRS) 和索引服务,因为这需要这些服务对卷进行完整(且耗时)的扫描。这反过来会对 FRS SYSVOL 复制和重新扫描卷时的 DFS 链接交替之间的复制产生负面影响。
上述同一来源解释了什么是 USN 日志,以及为什么需要它:
USN 更改日志提供对卷上文件所做的所有更改的持久日志。随着文件、目录和其他 NTFS 对象的添加、删除和修改,NTFS 会将记录输入到 USN 更改日志中,计算机上的每个卷都有一个记录。每条记录都表明更改的类型和更改的对象。新记录将附加到流的末尾。
程序可以查阅 USN 更改日志来确定对一组文件所做的所有修改。USN 更改日志比检查时间戳或注册文件通知要高效得多。索引服务、文件复制服务 (FRS)、远程安装服务 (RIS) 和远程存储启用并使用 USN 更改日志。
我认为,如果您不使用上面列出的任何服务,您可以继续删除 USN 日志。如果您发现以后需要它,您可以使用相同的命令重新创建它fsutil
(请参阅上面的 Technet 链接了解完整语法)。
更新
我继续尝试删除我的一台“一次性” Windows 7 VM 上的 USN 日志。结果,日志确实被删除了,但它立即被重新创建(fsutil usn queryjournal c:
确认了新的日志 ID)。我尝试停止搜索服务和其他服务,但没有帮助。所以我想,虽然你可以删除该日志,这种删除的用处相当有限。
答案2
从技术上来说,你可以禁用USN 变更日志。该变更看起来不像是持久性的,最多看起来像是 bug 的负担。
正在检查 MSDN ...
http://msdn.microsoft.com/en-us/library/aa363798(v=VS.85).aspx
要删除更改日志,请使用 FSCTL_DELETE_USN_JOURNAL 控制代码。使用此操作时,它会遍历卷上的所有文件并将每个文件的 USN 重置为零。然后,该操作会删除现有的更改日志。此操作在系统重启后持续存在,直到完成。在此过程中,任何读取、创建或修改更改日志的尝试都会失败,并显示错误代码 ERROR_JOURNAL_DELETE_IN_PROGRESS。(重点是我的)
您还可以使用 FSCTL_DELETE_USN_JOURNAL 控制代码来确定由其他进程启动的删除是否正在进行。例如,您的应用程序在启动时可以确定是否正在进行删除。由于日志删除在系统重启后仍然存在,因此在系统重启时启动的服务和应用程序应检查正在进行的删除。
变更日志不一定在启动时创建。要创建变更日志,管理员可以明确执行此操作或启动需要变更日志的其他服务。
答案3
在禁用日志之前,请记住,一旦禁用,它们就会被清除。从麦斯杰:
可以禁用给定卷上的更改日志,以防止系统记录文件和目录更改。默认情况下,NTFS 卷的更改日志将被禁用。某些应用程序必须明确激活日志。另请注意,任何应用程序都可以随时激活或禁用卷的日志。当第一个应用程序仍在使用日志时,应用程序必须能够妥善处理日志被禁用的情况。我们将在以后的文章中描述应用程序如何处理这种情况。当应用程序禁用卷的更改日志时,系统还将清除任何现有记录以防止恢复信息。这可以防止应用程序无意中读取不可靠的记录。只要日志持续处于活动状态,日志就会只包含记录。