it-swarm.cn

快速压缩dd备份

也许这听起来像是愚蠢的问题,但我尝试执行的方式不起作用。

我在livecd上,驱动器已卸载,等等。

当我这样备份时

Sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

...通常可以正常工作,但我复制的外部高清硬盘没有足够的空间(它适合ALMOST)。所以我想用这种方式压缩

 Sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

...但是我被拒绝了权限。我不明白.

25
Phil

您可以访问sda2-backup ... gz文件吗? Sudo仅在其后的命令中起作用,而不适用于重定向。如果要将其应用于重定向,请以root用户身份运行Shell,以便所有子进程也都为root用户:

Sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

或者,您可以使用uid/gid挂载选项挂载磁盘(假设ext3),因此无论您是什么用户,您都具有写权限。或者,使用root在您具有权限的/ media/disk中创建一个文件夹。

可能会帮助您的其他信息:

  • 块大小实际上只对速度至关重要。默认值是要为MBR和软盘保留的512字节。一定程度上,较大的大小可以加快操作,可以认为它类似于缓冲区。 这里是链接 某人使用不同的块大小进行了一些速度基准测试。但是您应该进行自己的测试,因为性能受许多因素影响。看看安德烈亚斯的其他答案
  • 如果要使用ssh和netcat在网络上完成此任务,所以空间可能不是问题,请参阅 此serverfault问题
  • 您是否真的需要该分区的映像,可能会有更好的备份策略?
  • dd是very危险命令,使用of而不是if,您最终将覆盖要备份的内容! !注意键oi如何彼此相邻?因此,请小心非常非常
41
Kyle Brandt

在第一种情况下,dd作为root运行。

在第二种情况下,dd以root身份运行,而gzip以您的身份运行。

更改/ media/disk上的权限,给自己一个root Shell,或者也以root用户身份运行gzip。

6
chris

另外,您可以用bzip2 --best替换gzip,以获得更好的压缩效果:

Sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2
3
dmityugov