Questions tagged «dd»

dd是用于二进制数据副本的传统实用程序


5
拍摄当前工作驱动器的驱动器映像是否安全?
我必须备份硬盘。我想使用dd并将图像放在外部硬盘上。 我可以使用dd硬盘本身上的操作系统来执行此操作吗?还是必须从其他设备(例如LiveCD)启动? 通常,如果已安装设备并正在工作,则拍摄设备的图像是否安全? 如果已安装设备,但我确定运行时没有其他I / O操作dd怎么办? 我确信这rsync是用于备份的最佳工具,尤其是增量备份。 但是我对此很感兴趣dd,因为我还想备份其他存储设备,并且它还复制存储在未分区空间上的数据。例如,我的电子书阅读器使用未分区的空间来存储uboot,内核和其他数据。
12 backup  dd  disk-image 

3
从发生故障的驱动器中保存数据
外部3½英寸HDD似乎有发生故障的危险- 空闲时会发出滴答声。 我已经购买了一块替换驱动器,并且想知道最好的策略来从可疑驱动器中获取数据,并尽可能多地节省数据。 有些目录比其他目录更重要。但是,我猜测选择目录会减少我保存整个内容的机会。我还必须安装它,转储文件列表,然后再卸载它,以便能够有效地对目录进行优先级排序。再加上这样做很耗时,我倾向于这种方法。 我刚刚考虑过使用dd,但是我不确定它如何处理读取错误或其他问题,这些错误或问题可能仅阻止数据的某些部分被抢救,或者可以通过重试来克服,但没有那么多尝试危及驱动器其他部分的保存。我想理想情况下,它将执行一次传递以获取尽可能多的内容,然后返回以重试由于错误而丢失的所有内容。 是否可以更慢地进行复制(例如,每x MB / GB暂停)比完全运行操作(例如,避免出现任何过热问题)更好? 对于“您的备份在哪里”的人群:这实际上是我的备份驱动器,但是它也包含一些非关键性和笨重的内容,例如音乐,它们不是备份,即不备份。 除了发出不祥的声音外,驱动器没有任何明显的故障迹象。最近,我确实要纠正一些错误-孤立的inode,不正确的可用块/节点数,inode位图差异,删除的inode的dtime为零;总共约有20个错误。 分区的文件系统是ext3。

1
命令pkill -USR1 -n -x dd到底是什么意思?
我dd用来将磁盘映像网络传输到BeagleBone上的sd卡上。 pkill -USR1 -n -x dd在此BeagleBone的ssh连接中使用时,会为我提供传输过程的状态更新,这很棒。我很好奇它实际上是如何工作的,所以我将来可以有效地使用它。 阅读后,man pkill它仍然没有完全解释如何pkill -USR1 -n -x dd为我提供这一非常有用的状态更新。
12 kill  dd  signals 

6
原始块设备的比较
有没有可以让我比较两个块设备的实用程序(或某种外壳魔术)? 详细信息:我有一个大型(0.5 TB)RAID设备,已使用dd备份到稍大的SATA设备。该设备上有几个分区,但是我从“父”设备复制而不是从分区的设备节点复制(例如,我复制/ dev / hda而不是/ dev / hda1)。 我想验证备份是否正确/正确。 我曾考虑过在每个设备上运行md5sum,但是由于第二个设备略大于第一个设备,因此这不会给我准确的结果,因此多余的字节会更改哈希值。

6
为什么我不能用dd复制DVD?
我尝试了dd,dd_rescue和ddrescue,都失败了。我认为这些工具会绕过文件系统并进行按位复制。 dd被骗了,它完成了,但是只生成一个小文件并声明它已完成。 dd_rescuse和ddrescue抱怨读取错误,并且运行缓慢。这些工具在10分钟内只能复制几MB。 为什么会这样,这些工具为什么会失败? AnyDVD使光盘可在一秒钟之内在Win7主机上复制。它说UDF文件系统已打补丁,奇怪的是,它还说没有坏扇区。整个光盘可以在10分钟内复制。 更新:至于解决方案,请参阅我对superuser的类似问题。

4
为什么使用dd写入随机数据会导致磁盘分区?
在运行dd命令之前,该命令lsblk返回以下输出: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk 该命令dd if=/dev/urandom of=/dev/sda conv=fsync status=progress已运行。但是,设备断电并关闭。恢复电源后,该命令lsblk将返回以下输出: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk sda2 8:2 0 487.5G 0 disk
11 partition  dd  lsblk 

2
bash不能在变量中存储hexvalue 0x00
我正在尝试用dd做一些技巧。我认为可以在名为“ header”的变量中存储一些十六进制值,以将其通过管道传递给dd。 我没有变量的第一步是: $ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex $ hd hex 00000000 36 c9 da 00 b4 |6....| 00000005 之后,我尝试了这个: $ header=$(echo -ne "\x36\xc9\xda\x00\xb4") $ echo -n $header | hd 00000000 36 c9 da b4 |6...| 00000004 如您所见,我\x00在$header变量中失去了价值。有人对此行为有解释吗?这真让我抓狂。
11 linux  bash  shell-script  dd 

4
将/ boot和MBR移至新驱动器
我有一个带有两个硬盘的CentOS 6服务器。我的旧3TB驱动器给我带来了一些问题,因此我将事情转移到了新驱动器上。由于my /和/homepartition由LVM管理,因此很容易将它们迁移到新驱动器。现在,我要移至/boot分区和MBR上,以使其全部启动。 我装入了一张实时CD,并rsynced在/boot分区上将其加载到新驱动器上的相同大小的分区上。我还尝试使用以下命令复制MBR: dd if=/dev/sda of=mbrbackup bs=512 count=1 dd if=mbrbackup of=/dev/sdb bs=446 count=1 完成此操作后,我重新启动,告诉我的BIOS在引导周期中不要查看旧的硬盘驱动器,而仅查看新的驱动器,但是最后我只剩下闪烁的光标。 我在这里错过了一步吗?还是我需要做些其他事情来使事情启动,以便完全删除旧驱动器? 编辑:我开始认为rsync不是将/ boot分区从一个驱动器复制到另一个驱动器的方法。根据本指南,我尝试使用dump命令。在此命令中,我将旧的未挂载的引导分区复制到了新的空挂载的引导分区。 dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 我在启动时遇到grub错误15,这比闪烁的光标要好,但我不知道这是否更接近解决方案。
11 boot  dd  mbr  dump 

3
如何检查dd备份的完整性?
我只是通过以下方式备份了整个硬盘(50GB)ssh: dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img" 现在检查文件完整性的最佳方法是什么image.img,即如何验证所有内容是否正确复制?
11 backup  dd  integrity 

2
将dd skip | seek偏移量传递为十六进制
# dd if=2013-Aug-uptime.csv bs=1 count=1 skip=3 2> /dev/null d # dd if=2013-Aug-uptime.csv bs=1 count=1 skip=0x3 2> /dev/null f 为什么第二个命令输出不同的值? 可以将skip | seek偏移量传递dd为十六进制值吗?
11 dd 

2
磁盘末尾的dd命令bs选项
如果我要使用以下dd命令: dd if=/dev/zero of=/dev/sdX bs=16M 如果它不是16M的整数倍,那么在磁盘末尾会发生什么?这是否意味着磁盘的最后剩余部分未归零? 我在https://www.marksanborn.net/howto/wiping-a-hard-drive-with-dd/中注意到,他写道,美国政府使用 dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc 该conv=notrunc选项是否可以确保擦除每个最后一个字节?
10 dd 

4
恢复整个磁盘的DD
我正在使用旧版本的随机数据覆盖硬盘驱动器dd: dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512 这是一个2TB的阵列,我的MacBook(运行Linux,好吗?)只能以3.7MB / s的速度写入数据,这非常可悲,因为我已经看到我家里的台式机以20MB / s的速度运行。今晚回家时,我想在dd这里停止跑步,带回家,看看一台功能更强大的机器可以在一夜之间取得什么样的进步。 我一直在使用一个简单的循环监视进度: while true; do kill -USR1 $PID ; sleep 10 ; done 输出看起来像这样: 464938971+7 records in 464938971+7 records out 238048755782 bytes (238 GB) copied, 64559.6 s, 3.7 MB/s 如果要dd在家中恢复通行证,我将如何重新启动通行证?我知道该seek参数,但是我要指向的是记录号还是字节数?
10 dd 

3
dd如何用于右移数据块?
考虑一个100MB的原始块设备作为简单示例。即204800个块,每个块512个字节,总计102760448个字节。 面临的挑战是转移前98MB(200704块),使其前面有2MB(4096个块)的间隙。要就地执行此操作,需要将任何内容都写入未读取的扇区。实现此目的的一种方法是引入缓冲区: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 期望mbuffer在将任何内容传递给写入器之前将存储4096个块,从而确保未写入任何内容到尚未读取的区域,并且写入器落后于读取器缓冲区大小。缓冲区应允许读取器和写入器在这些内存中尽可能快地操作。 但是,它似乎无法可靠地工作。我曾尝试使用真实的设备,但是它永远无法在它们上运行,而使用文件进行的实验只能在我的64位设备上运行,而不能在我的32位设备上运行。 首先,做一些准备: $ dd if=/dev/sdj2 count=200704 | md5sum 0f0727f6644dac7a6ec60ea98ffc6da9 $ dd if=/dev/sdj2 count=200704 of=testfile 这不起作用: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 -H | dd of=/dev/sdj2 …
10 dd  block-device 

3
gzip-重定向还是管道?
我将使用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 谢谢。
10 linux  gzip  pipe  dd 

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.