标签: dd

我怎么知道 dd 是否仍在工作?

我还没有使用dd那么多,但到目前为止它还没有让我失望。现在,我已经dd进行了 12 多个小时 - 我正在将图像写回它来自的磁盘 - 我有点担心,因为我能够dd从磁盘到图像大约7小时。

我在配备 Core 2 Duo 的 MacBook 上运行 OSX 10.6.6,频率为 2.1ghz/core,内存为 4gb。我正在从 7200rpm 硬盘驱动器(引导驱动器)上的 .dmg 中读取数据,并且正在写入通过 SATA-to-USB 连接器连接的 7200rpm 驱动器。我默认保留了块大小,图像大约为 160GB。

编辑:而且,经过 14 小时的纯压力,dd毕竟工作得很好。不过,下一次,我将运行它pv并使用strace. 感谢大家的帮助。

osx file-transfer dd hard-disk

153
推荐指数
8
解决办法
18万
查看次数

dd 与 cat - 这些天 dd 仍然相关吗?

我最近意识到我们可以使用cat尽可能多的dd,而且它实际上比dd

我知道这dd在处理块大小实际上影响正确性而不仅仅是性能的磁带时很有用。然而,在这些日子里,是否存在dd可以做一些cat不能做的事情?(在这里,我认为不到 20% 的性能差异无关紧要。)

具体的例子会很好!

dd cloning cat

147
推荐指数
8
解决办法
4万
查看次数

在两台计算机之间发送大量数据的最快方法是什么?

这是我经常遇到的情况:

  • 我有一个内部有 320GB 硬盘驱动器和 16GB 内存的源服务器(此处提供确切规格,但由于这是我在其他机器上也经常遇到的问题,我希望答案适用于任何“合理”的 Linux 机器)
  • 我有一个有几 TB 硬盘空间的备份服务器(这里有确切的规格,请参阅上面的免责声明)

我想将 320GB 的数据从源服务器传输到目标服务器(特别是来自 的数据/dev/sda)。

  1. 两台计算机在物理上彼此相邻,因此我可以在它们之间铺设电缆。
  2. 我在局域网上,我使用的是新路由器,这意味着我的网络速度“理想情况下”应该是 1000Mbit,对吧?
  3. 安全不是问题。我在本地网络上,我信任网络上的所有机器,包括路由器。
  4. (可选)我不一定需要数据的签名校验和,但应该检测基本错误检查(例如丢弃的数据包或驱动器变得不可读),而不仅仅是消失在输出中。

我在网上搜索了这个问题,并测试了几个命令。出现频率最高的就是这个:

ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz
Run Code Online (Sandbox Code Playgroud)

这个命令被证明太慢了(它运行了一个小时,只得到了大约 80GB 的数据)。1GB 的测试数据包大约需要 1 分 22 秒,最终在未压缩时速度是原来的两倍。结果也可能因传输的文件小于源系统上的 RAM 量而产生偏差。

此外(这是在 1GB 测试片上测试的),如果我使用gzip命令和dd; 与直接通过管道传输相比,在目标上提取的结果文件具有不同的校验和。我仍在试图弄清楚为什么会发生这种情况。

networking backup file-transfer dd

117
推荐指数
7
解决办法
4万
查看次数

如何在本地机器上使用 SSH 添加远程磁盘并保存到本地磁盘

如何在本地计算机上使用 SSH 创建远程磁盘的备份并将其保存到本地磁盘?


我尝试了以下方法:

ssh hostname@my.ip.address "sudo dd if=/dev/sdX " | \
  dd of=/home/username/Documents/filename.image`
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

不存在 tty 且未指定 askpass 程序

ssh remote dd hard-disk

107
推荐指数
4
解决办法
19万
查看次数

是否可以动态安装 gzip 压缩的 dd 图像?

我喜欢在第一次备份系统时创建映像备份。在第一次之后,我使用 rsync 进行增量备份。

我平时的镜像备份如下:

安装并清零空白空间:

dd if=/dev/zero of=temp.dd bs=1M

rm temp.dd

在压缩驱动器的同时卸载并添加驱动器

dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.ddimg.gz

为了让系统恢复正常,我通常会做一个

gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K

这真的很简单,允许我保存“整个驱动器”,但实际上只是节省了已用空间。

这是问题所在。假设我执行了上述操作,但不是在干净的系统上执行,并且没有足够快地进行 rsync 备份,并且我想访问映像上的文件。假设我没有存储空间来实际解压缩图像并将其 dd 到驱动器,但想挂载图像以从中获取单个文件......这可能吗?

通常情况下,人们不会压缩 dd 图像,这将允许您仅使用-o loop...挂载图像,但这不是我的情况...

有什么建议可以即时安装压缩的 img 吗?

是否会使用AVFS来“挂载”gz 文件然后挂载内部 dd.img 工作(我不这么认为......但需要验证......)?

command-line backup compression mount dd

83
推荐指数
5
解决办法
9万
查看次数

有没有办法确定 dd 的 bs 参数的最佳值?

有时我会在网上看到“确保你设置 'bs=' 因为默认值会花费太长时间”的评论,以及我自己非常不科学的经验,“这似乎比其他人花费的时间更长上周时间”似乎证明了这一点。因此,每当我使用“dd”(通常在 1-2GB 范围内)时,我都会确保指定 bytes 参数。大约有一半的时间我使用我从中复制的任何在线指南中指定的值;剩下的时间我会从'fdisk -l'列表中选择一些有意义的数字,我认为是较慢的媒体(例如我正在写入的SD卡)。

对于给定的情况(媒体类型、总线大小或其他重要事项),有没有办法确定“最佳”值?容易确定吗?如果没有,是否有一种简单的方法可以达到 90-95%?或者“只选择大于 512 的东西”甚至是正确答案?

我想过自己尝试这个实验,但是(除了工作量很大)我不确定哪些因素会影响答案,所以我不知道如何设计一个好的实验。

performance dd file-copy

81
推荐指数
3
解决办法
6万
查看次数

从文件开头删除字节的最佳方法?

今天我不得不从一个 800MB 的混合文本/二进制文件中删除前 1131 个字节,我正在为一个新的存储库进行过滤的颠覆转储。做到这一点的最佳方法是什么?

首先我试过

dd bs=1 skip=1131 if=filtered.dump of=trimmed.dump
Run Code Online (Sandbox Code Playgroud)

但是在跳过之后,它一次一个字节地复制文件的其余部分,即非常慢。最后我计算出我需要 405 个字节来将其四舍五入为三个 512 块,我可以跳过

dd if=/dev/zero of=405zeros bs=1 count=405
cat 405zeros filtered.dump | dd bs=512 skip=3 of=trimmed.dump
Run Code Online (Sandbox Code Playgroud)

哪个完成得相当快,但一定有更简单/更好的方法?有没有我忘记的另一个工具?

dd

76
推荐指数
4
解决办法
9万
查看次数

dd什么时候适合拷贝数据?(或者,什么时候 read() 和 write() 是部分的)

简短版本:在什么情况下可以dd安全地用于复制数据,安全意味着不存在由于部分读取或写入而导致损坏的风险?

长版本 — 序言: dd通常用于复制数据,尤其是从设备复制数据或向设备复制数据(示例)。有时将其归因于能够以比其他工具更低的级别访问设备的神秘特性(实际上是设备文件在发挥作用)——但dd if=/dev/sdacat /dev/sda. dd有时被认为更快,但cat在实践中可以击败它。尽管如此,它dd具有独特的特性,使其有时真正有用

问题: dd if=foo of=bar实际上与cat <foo >bar. 在大多数 unices¹ 上,ddread(). (我发现POSIX在什么构成“读取输入块”方面很模糊dd。)如果read()返回部分结果(根据 POSIX 和其他参考文档,除非实现文档另有说明,否则允许这样做),则复制部分块。存在完全相同的问题write()

观察:在实践中,我发现dd可以处理块设备和常规文件,但这可能只是我没有太多练习。说到管道,不难找dd错;例如试试这个代码

yes | dd of=out bs=1024k count=10
Run Code Online (Sandbox Code Playgroud)

并检查out文件的大小(它可能远低于 10MB)。

问题:在什么情况下可以dd安全地用于复制数据?换句话说,在块大小、实现、文件类型等方面的哪些条件可以确保dd将复制所有数据?

GNU dd有一个 …

io dd

73
推荐指数
2
解决办法
2万
查看次数

使用 cat、dd、pv 或其他程序复制 CD/DVD 是否更好?

背景

我正在将一些数据 CD/DVD 复制到 ISO 文件中,以便以后在驱动器中不需要它们的情况下使用它们。

我在网上寻找程序,我发现了很多:

我不知道是不是所有的人都应该是等价的,虽然我测试了其中的一些(使用md5sum工具)和,至少,dd并且pv等价的。以下是md5sum使用每个过程的驱动器和生成的文件:

dd程序的md5: 71b676875b0194495060b38f35237c3c

光伏程序的md5: f3524d81fdeeef962b01e1d86e6acc04

编辑: …

linux dd cat disk-image pv

49
推荐指数
3
解决办法
4万
查看次数

dd 代表什么?

我非常清楚该命令的作用,但是man dd,请info dd告诉我:“转换和复制文件”,GNU Coreutils 也是如此

谷歌说它是医学和网络聊天俚语之间一切的缩写;除了有人说这意味着“数据破坏者”,在 PC 取证中使用的东西 - 如果我的 dd 破坏了我的数据,我会感到震惊!

任何见解?:-)


更新:当然我必须检查行话文件

Unix dd(1) 设计有一个奇怪的、明显非 Unixy 关键字选项语法,让人联想到 IBM System/360 JCL(它有一个针对 I/O 设备的精心设计的 DD 'Dataset Definition' 规范)

听起来仍然很模棱两可,但它说:

尽管命令满足了需求,但界面设计显然是个恶作剧。

呵呵:-)

dd command-names

46
推荐指数
3
解决办法
2万
查看次数