我有几个旧硬盘(SATA 和 IDE 都有)积满灰尘。作为一个数据囤积者,我不想丢失硬盘上的所有信息。因此,我想备份硬盘上的所有数据。我做了一些调查,但不确定最好的方法是什么。
我正在寻找的一些标准,按重要性从高到低的顺序排列:
- 备份应该是面向未来的。因此,我更喜欢使用一些开源工具。
- 我希望能够轻松查看所有数据,也就是说,如果我不必经过多个环节来安装某些磁盘/分区,那就太好了。
- 至少有一个驱动器存在一些硬件问题(需要多次尝试才能启动),因此备份过程应该能够处理硬件问题(即不可读的扇区)。
- 虽然我可以直接连接 SATA 驱动器,但我必须使用 USB2-IDE 适配器来连接 IDE 驱动器。我知道这会将读取性能限制在 USB2 级别,但这不会影响备份过程。
- 必须在 Linux(Arch)或 Windows 10 上运行。
- 备份应该节省空间,即,如果硬盘上的数据仅使用了 250 GB 可用空间中的 10 GB,则备份不应超过 10 GB(或更少,例如,如果使用额外的压缩)。
我研究了不同的选项,如 dd、ddrescue、Clonezilla 和 partclone,但很难判断哪种工具最适合这项工作。
根据我的标准,最佳选择是什么?
(如果这种方法有更大的好处,那么使用多种工具也是可以的。另外,请指出我可能忘记的任何内容。)
附录:标准 2 意味着最好能够直接打开所有文件。但是,如果我必须先安装一些映像,那就没问题了,而必须确定要在备份文件中安装的分区的偏移量就不太理想了。我知道这些工具有一些权衡,例如备份的易用性等,这就是我正在寻找的输入。
此外,还有一个标准 - 不如处理硬件错误的能力(3)重要,但比适配器不干扰备份过程(4)更重要,所以我们称之为 3.5:
3.5. 一些驱动器包含操作系统,这些操作系统的程序/配置很难重新创建,但对于打开某些文件却很重要(我用旧的 DAW 和旧的插件录制了一些音乐,15 年后重新创建这样的设置真不容易……)。因此,如果以后能够启动这样的操作系统(例如在 VM 中,或者通过将数据复制回物理磁盘)那就太好了。如果需要额外的步骤才能做到这一点,我会没事的,但这个过程越简单越好。
答案1
我建议采取两个阶段的过程:
用于
ddrescue
可靠地创建磁盘的 1:1 块映像,让程序处理可能发生的任何读取错误(ddrescue 可以在使用它创建的相同“映射文件”再次运行时重试中断的复制)。一旦数据安全,将 1:1 图像转换为更节省空间的格式。
在 Linux 上,使用附加整个映像
losetup --partscan
并挂载各个文件系统。(GNOME Disks 将自动执行此操作。)此时,如果您正在处理普通数据磁盘,您可以直接取出文件并将其放入 .rar 中(如果这是您的偏好)。但是如果磁盘上安装了操作系统,而你想保留完整的映像(例如,将其转换回可启动磁盘),此时你可以
fstrim
在已挂载的文件系统上运行,从而产生一个不占用“未使用”空间的稀疏映像文件(它仍然有 250 GB 作为其明显的大小,但空白区域实际上并未分配)。对于 Windows,原始映像可以转换为 VHD/VHDX 格式,该格式可直接安装在 Windows 10+ 上(只需双击映像即可附加),并且更可靠地节省空间(并非所有文件系统都可以保留稀疏文件的“稀疏性”,而将 .vhd 放在 exFAT 格式的磁盘上则没有问题)。该
qemu-img
工具可能能够做到这一点。(如果已知磁盘没有问题,我本来会使用 Disk2vhd,但它不能很好地处理错误。)