将整个分区或硬盘克隆到一个稀疏文件

Mar*_*rer 38 dd cloning sparse-files

我喜欢将整个分区或整个硬盘驱动器克隆到更大的外部磁盘上,但喜欢创建一个稀疏文件。我经常dd用于克隆,但它不支持稀疏文件。作为一种解决方法,我使用了类似的东西:

cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
Run Code Online (Sandbox Code Playgroud)

但是,这对我的口味来说有点太棘手,并且如果中止,我将无法恢复该过程。有趣的是,有一个用于此 ( ntfsclone)的 NTFS 工具,但不存在用于 Linux (EXT2-4) 的本机文件系统的此类工具。

是否有一些更好的工具,例如dd具有稀疏支持的变体?我不寻找一些用于磁盘备份的专有软件,而只是想制作一个稀疏克隆副本,如果需要,我可以将其安装为循环设备。

Ste*_*ard 23

你要dd_rescue

dd_rescue -a -b 8M /dev/sda1 /mount/external/backup/sda1.raw
Run Code Online (Sandbox Code Playgroud)

  • 在网上找`dd_rescue`我发现还有一个不同的工具叫做[`ddrescue`](http://www.forensicswiki.org/wiki/Ddrescue)(没有下划线)它是独立于`dd_rescue`开发的但似乎做的基本一样。我只是在这里提到作为一般参考。 (3认同)

max*_*zig 21

只是为了完整性,呼吁ddrescue。该--sparse-S标志允许稀疏写入的目标:

$ ddrescue -S -b8M /dev/sda1 /mount/external/backup/sda1.raw
Run Code Online (Sandbox Code Playgroud)

或者使用长选项:

$ ddrescue --sparse --block-size 8M /dev/sda1 /mount/external/backup/sda1.raw
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢MiB

$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw
Run Code Online (Sandbox Code Playgroud)

要允许中断和恢复救援,您还可以使用日志文件:

$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw ~/sda1.rescue.log
Run Code Online (Sandbox Code Playgroud)

请注意,GNUddrescuedd_rescue是不同的程序。但 GNUddrescue似乎更为广泛。例如,它已经与GRML一起打包。