我捡到了一个HP Simplesave外置硬盘。它附带一些花哨的软件,但对我来说毫无用处,因为我不使用 Windows。与许多当前面向消费者的备份硬盘一样,备份软件实际上包含在硬盘本身中。我想保存硬盘的初始状态,以便在决定出售时可以恢复它。
备份盒本身是经过一定程度定制的:除了硬盘设备外,它还提供了一个类似 CDROM 的设备/dev/sr0
。我了解到,这个 cdrom 设备的目的是通过 Windows 自动播放磁盘本身上的备份应用程序来引导。我不认为有任何保证可以做到这一点,因此保留磁盘的准确状态似乎很重要。
该驱动器采用单个 500GB NTFS 分区格式化。
我最初的想法是使用dd
转储磁盘(/dev/sdb
)本身,但这被证明是不切实际的,因为生成的文件不稀疏。这似乎是因为 NTFS 的空白空间不是用零填充的,而是用一系列重复的 16 个字节填充的。
我尝试对 的输出进行 gzip 压缩dd
。这可以将文件缩减到可管理的大小 — 前 18GB 被压缩到 81MB,而将挂载文件系统的内容压缩为 47MB — 但在我的 Pentium M 处理器上速度非常慢,我承认这有点过时了。处理前 18GB 的时间大约为 30 分钟。
因此我采取了分别转储磁盘状态和分区数据的方法。
我已经转储了分区状态
sfdisk -d /dev/sdb > sfdisk.-d.out
我还创建了 NTFS 分区(磁盘上唯一的分区)的压缩映像,
ntfsclone --save-image --output - /dev/sdb1 | gzip -c > ntfsclone.img.gz
我还应该做些什么来确保能够恢复驱动器的精确原始状态?
答案1
最初的 dd+gzip 设置是你最好的选择。事实上,一些法医专家认为 'dd' 是仅有的能够逐位复制磁盘的工具。当然,您可以在速度更快的计算机上创建副本,而不必在将要使用该磁盘的计算机上进行复制。