![我如何知道 NTFS 卷上最后写入的是哪些块/扇区?](https://linux22.com/image/1307685/%E6%88%91%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%20NTFS%20%E5%8D%B7%E4%B8%8A%E6%9C%80%E5%90%8E%E5%86%99%E5%85%A5%E7%9A%84%E6%98%AF%E5%93%AA%E4%BA%9B%E5%9D%97%2F%E6%89%87%E5%8C%BA%EF%BC%9F.png)
是否有工具可以让我识别哪些数据块是最后(最近)写入 NTFS 卷的?也许 NTFS 卷的“$Journal”文件可能包含可以提取或分析/解释的信息。是否有工具可以识别哪些簇或扇区是最后写入或更改的 NTFS 或 FAT 卷?
我之所以问这个问题,是因为当我使用的计算机正在将一个 2-4 MB 左右的文件保存到内置硬盘时,它死机了(很快,没有蓝屏 -- 我假设 Windows 没有进行内存转储)。我想知道该文件的任何内容是否真的以物理方式写入硬盘。可能任何要物理写入的文件内容仍然只在 RAM I/O 缓冲区中。如果是这样的话,我想我将无法检索/找到属于该文件的任何数据(哪怕是部分数据)(除非 *)。但是,我想知道该文件的部分内容是否确实被写入了永久存储。我运行的是 64 位 Windows 7,并正在写入 C: 卷(该硬盘上的主系统 NTFS 卷)。主板(和/或电源)已经有一段时间不稳定了。我以前也遇到过这样的崩溃。
我已经开始了解 The Sleuth Kit。它是一款开源、免费的取证软件套件,可以安装在任何 GNU/Linux 发行版(或者我相信其他类 UNIX 系统也可以)。也许该工具套件中的其中一个应用程序可用于此目的。TheSleutKit 中的一个这样的应用程序是 blkls。在默认模式下运行它,没有任何开关,将把存储设备/分区上所有未分配块/扇区的原始(二进制?)内容输出到 stdout(1>>)(或 | )。但是,我认为这不会有帮助,因为这是 NTFS 系统卷,并且许多未分配的块包含比我正在寻找片段的一个文件更旧的已删除文件。如果所有这些未分配的块之前从未包含任何数据,也许 blkls 对此目的会有所帮助。
说到 RAM 转储的可能性,我最近读到,当 Windows 创建内存转储时,RAM 的内容(部分或全部)(可能只有选定的进程,如果不是整个 RAM 映像)会被复制到 hibfil.sys,然后在下次启动 Windows 时,该内存转储会被提取并保存到 C:\Windows 或用户文件夹中某个单独的 .dmp 文件中。如果任何要写入 NTFS 卷的数据首先位于 RAM I/O 缓冲区中,那么其中的任何内容是否可能成为内存转储的一部分?