gzip-重定向还是管道?


10

我将使用dd将大容量(750GB)磁盘备份到外部USB磁盘。
我应该使用重定向还是管道?哪个更有效?还是有区别?

另外,最佳块大小是多少?USB可能是这里的瓶颈。

dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz

gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M

dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz

dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M

谢谢。


2
我会尝试备份文件系统,而不是原始磁盘映像。要调整参数,您必须进行基准测试。

dd是过时的(值得庆幸的是,其他任何工具都没有使用bs=count=,例如ddrescue),并且在您的情况下也毫无意义。只需将其输入gzip -c </dev/sda >disk.img.gz&即可gzip -cd disk.img.gz >/dev/sda

或使用rsync进行。只需使用参数构造命令,它将以其认为的最有效方式来完成所有工作。
vakufo 2012年

在第二个清单的第二个命令中,该dd if=.../disk.img.gz |零件应该做什么?据我了解,当有文件参数时,gzip -dc(= zcat)并不关心它stdin
sr_ 2012年

我认为Linux不能仅通过复制文件结构来可靠地复制Windows安装。因此,需要像这样的按位复制ddddrescue看起来比普通更健壮dd。您会使用GNU ddrescue还是dd_rescue?什么是好的Live CD要下载?
mcu 2012年

Answers:


3

配管涉及一个以上的过程和一个以上的用户态副本,因此使用重定向应该更有效。

但是我想在当今的硬件和软件缓存系统上,它并没有什么真正的区别。也许使用bs=4k或可以获得更好的结果bs=64k,因为这是Linux下管道的限制。有关不同bs参数的更多详细信息,请参见此问题


9

您根本不需要使用dd或管道连接。

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda

我曾经做过一个基准测试,发现使用dd速度要比cat在不同磁盘之间进行直接复制慢。dd在这种情况下,我希望管道能够提供任何涉及到更慢的解决方案。


使用重定向的一个例子。
psusi 2012年

@psusi Gah!我的意思是写“ dd或管道”。谢谢。
吉尔斯(Gillles)“所以-别再邪恶了”

有没有办法pv在这些命令中组合?
Yaron

2
@Yaron肯定的:替代gzippv | gzipgzip -dgzip -d | gv
吉尔斯“SO-停止作恶”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.