即时压缩dd备份

也许这听起来像愚蠢的问题,但我想这样做的方式不起作用。

我livecd,驱动器已卸载等

当我做这样的备份

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

…通常它会工作,但我没有足够的空间在外部高清我正在复制(它几乎适合它)。 所以我想这样压缩

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

…但我拒绝了权限。 我不明白。

你有权访问sda2-backup … gz文件吗? Sudo只能在后面的命令中使用,并不适用于redirect。 如果您希望将其应用于redirect,请以root用户身份运行shell,以便所有subprocess都是root用户:

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

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

其他信息可能会帮助你:

  • 块大小对于大部分速度来说只是非常重要的。 默认值为512字节,您要保留MBR和软盘。 更大的大小到一个点应该加快操作,认为它类似于缓冲区。 这是一个链接到谁做了不同的块大小速度基准的人。 但是你应该做自己的testing,因为性能受很多因素的影响。 再看看安德烈斯的另一个答案
  • 如果你想用ssh和netcat来完成这个networking,那么空间可能不是一个大问题,看到这个serverfault问题 。
  • 你真的需要一个分区的形象,可能会有更好的备份策略?
  • DD是一个非常危险的命令,使用而不是if你最终覆盖你正在尝试备份! 注意oi的关键是如何相邻? 所以要非常非常小心。

在第一种情况下,dd以root身份运行。

在第二种情况下,dd以root身份运行,但gzip正在运行。

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

另外,你也可以用bzip2replacegzip – 以获得更好的压缩效果