快速压缩dd备份


23

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

我在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

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


2
别。这不是备份。检查“转储”和“恢复”命令。
朱利诺2009年

或tar或cpio ....
克里斯-

1
朱利安诺,“这不是备份”是什么意思?
Phil

5
这不是备份,因为备份是认真的,结构合理的并且使用了旨在创建备份的适当工具。您只是在复制分区的原始数据。要还原此数据,您将需要另一个具有相同几何形状的分区,但不能保证。同样,如果损坏了归档文件的单个块(超级块,inode表,根目录等),则可能会丢失所有数据。有了适当的备份,这种情况就不会发生。
朱利诺

7
“要还原此数据,您将需要另一个具有相同几何形状的分区,但不能保证”。为什么他需要这样做,他不能将分区映像安装在回送设备上吗?
凯尔·布​​兰特

Answers:


41

您可以访问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是一个非常危险的命令,使用of代替,if您最终将覆盖要备份的内容!请注意,键oi彼此相邻吗?所以要非常非常非常小心。

我会尝试的。我还如何使其bs = 64k?(而且我必须吗?)
Phil

bs = 64k仅使传输更快,因为dd将读取每个64k的块,而不是默认的块大小(我不记得了)。
克里斯,

克里斯说了什么,如果要包括它,请将其放在dd之后和竖线符号(|)之前,因为它是dd的参数。
凯尔·布​​兰特

1
我有时也会在管道中使用“ sudo tee $ file> / dev / null”,以允许写入用户帐户也没有访问权限的文件。
里克·施耐德

6

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

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

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


3

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

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

3
花费大量时间。有关更多详细信息,请参见changelog.complete.org/archives/… “如何考虑压缩”。
比尔·韦斯

@BillWeiss:感谢您的评论,非常有趣的阅读!
andreas

压缩:lzma> bzip2> gzip ..速度:gzip> bzip2> lzma。除非您将磁盘映像发布到Internet上,否则您在花费时间,CPU能力和内存上获得更好压缩的好处并不多。
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.