是否可以获取硬盘格式化时的时间戳?

是否可以获取硬盘格式化时的时间戳?

我想知道是否可以确定硬盘何时格式化?它是使用来自 live linux 的 GParted 格式化的。之前安装了 Windows,文件系统是 NTFS。谢谢

答案1

这取决于您将其格式化为什么。简单地对磁盘进行分区不会留下任何时间戳。但是,当您对其进行格式化时,您正在给定分区上创建一个新的文件系统。是否记录创建日期取决于特定的文件系统。由于您没有说明将其格式化为哪种文件系统,我将回答 Windows、OSX 和 Linux 上最流行的文件系统。

Linux ext4

这是大多数主流 Linux 发行版支持的现代文件系统。它是目前使用最广泛的文件系统之一。根据ext4 磁盘布局,超级块包含一个 32 位时间戳,s_mkfs_time保存自文件系统创建以来的秒数。要获取 ext4 文件系统的创建日期,您可以运行调试tune2fs以 root 身份以 的形式执行命令tune2fs -l /dev/sda1,其中设备替换为您要检查的特定分区。这将输出大量调试信息。查找字段Filesystem created

OS X HFS+

HFS+ 是 Mac OS X 和许多其他 Apple 设备的标准文件系统。卷标头包含createDate字段,指定首次创建卷的时间。虽然我对 OS X 不是特别熟悉,但快速搜索后发现了一个名为hfsdebug。此命令将文件系统卷作为参数并输出一堆调试信息。查找字段createDate,它应该会为您提供文件系统创建的日期。

Windows NTFS

NTFS 是大多数 Windows 计算机使用的文件系统。文件系统的创建日期存储在FILE_FS_VOLUME_INFORMATION. 可以使用本机 Windows NT API 检索此数据结构ZwQueryVolumeInformationFile(). 根据超级用户答案,没有方便的实用程序来检索此信息,但 SysInternalsprocmon实用程序可能允许您获取此信息。简单程序是为了回答超级用户的问题而创建的,它很有用。

与 Linux 和其他类 Unix 系统不同,Windows 不以自纪元(1970 年 1 月 1 日 00:00:00)以来的秒数形式存储时间戳。相反,Windows 系统上的时间表示为自 1601 年初以来的 100 纳秒间隔数。

相关内容