标签: dd

使用 DD 进行磁盘克隆

有很多关于磁盘克隆工具的问题,并且dd至少被提出过一次。我已经考虑过使用dd自己,主要是因为它易于使用,而且几乎所有可启动的 Linux 发行版都可以使用它。

dd克隆磁盘的最佳方法是什么?我在 Google 上进行了快速搜索,第一个结果是一次明显失败的尝试。使用后有什么我需要做的吗dd,即有什么不能使用的dd

dd disk-image

207
推荐指数
10
解决办法
51万
查看次数

“dd”中的“bs”选项真的能提高速度吗?

时不时地,我被告知要提高“dd”的速度,我应该仔细选择合适的“块大小”。

即使在这里,在 ServerFault 上,其他人也写道...最佳块大小取决于硬件...(iain)或“ ...完美的大小将取决于您的系统总线、硬盘驱动器控制器、特定驱动器本身,以及每个驱动程序......(克里斯 - s)

由于我的感觉有点不同(顺便说一句:我认为深度调整 bs 参数所需的时间远高于获得的增益,在节省时间方面,并且默认是合理的),今天我刚去了通过一些快速而肮脏的基准测试。

为了降低外部影响,我决定阅读:

  • 从外部 MMC 卡
  • 从内部分区

和:

  • 已卸载相关文件系统
  • 将输出发送到 /dev/null 以避免与“写入速度”相关的问题;
  • 避免 HDD 缓存的一些基本问题,至少在涉及 HDD 时。

在下表中,我报告了我的发现,读取了具有不同“bs”值的 1GB 数据(您可以在此消息的末尾找到原始数字):

在此处输入图片说明

基本上得出的结论是:

  • MMC:使用 bs=4(是的!4 字节),我达到了 12MB/s 的吞吐量。我从 bs=5 及以上得到的最大 14.2/14.3 的值并不那么遥远;

  • 硬盘:bs=10 我达到了 30 MB/s。肯定低于默认 bs=512 获得的 95.3 MB,但......也很重要。

此外,很明显,CPU 系统时间与 bs 值成反比(但这听起来很合理,因为 bs 越低,dd 生成的系统调用数量就越高)。

说了以上所有,现在的问题是:有人可以解释(内核黑客?)这种吞吐量所涉及的主要组件/系统是什么,以及是否真的值得努力指定高于默认值的 bs?


MMC 案例 - 原始数字

bs=1M

root@iMac-Chiara:/tmp# time dd if=/dev/sdc of=/dev/null bs=1M count=1000
1000+0 …
Run Code Online (Sandbox Code Playgroud)

linux kernel dd disk-image

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

dd 在整个磁盘上,但不想要空白部分

我有一个磁盘,比如 /dev/sda。

这是 fdisk -l:

 Disk /dev/sda: 64.0 GB, 64023257088 bytes
255 heads, 63 sectors/track, 7783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000e4b5

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          27      209920   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              27         525     4000768    5  Extended
Partition 2 does not end on …
Run Code Online (Sandbox Code Playgroud)

linux hard-drive dd

45
推荐指数
7
解决办法
14万
查看次数

如何使用 dd、netcat 和 ssh 隧道设置磁盘克隆?

我想dd通过 Linux 上的 ssh 加密通道使用 netcat 从主机 A 到 B批量复制内容(使用 重新映像磁盘)。

我应该在两端输入什么命令?

dd ssh-tunnel disk-image netcat

27
推荐指数
1
解决办法
3万
查看次数

用它自己安全地擦除整个 Linux 服务器

我有远程 ssh 访问权限和 root 访问权限。我没有物理访问权限。我不是在寻找涉及启动任何东西的解决方案,我想从当前运行的东西中做到这一点。

操作系统是SL6。有没有办法将所需的所有内容加载到 RAM 中,并使用 dd 或类似方法安全地擦除整个磁盘?显然,这最终会导致一个无法正常工作的盒子,这是我预期的结果。

看起来这应该是可能的。

两个更有趣的补充:

  1. 能够 ssh 进入,运行 screen,运行 dd 命令和分离。完成后一周后登录。:)

  2. 不知何故有一个进度条?

更新:我现在使用 chroot 选项。正在做:

mkdir /dev/shm/ramdisk/ && cd ramdisk && mkdir bin lib64 && cd /lib64 && cp ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libpthread.so.0 librt.so.1 libtinfo.so.5 /dev/shm/ramdisk/lib64 && cd /bin && cp bash dd /dev/shm/ramdisk/bin && cd /dev/shm/ramdisk && chroot .

哪个有效(!)但我仍然需要 /dev/zero 和 /dev/sda。有什么想法吗?

2012-07-20更新

mkdir /dev/shm/ramdisk/ && cd /dev/shm/ramdisk && mkdir bin lib64 && cd /lib64 && cp ld-linux-x86-64.so.2 …

security linux dd secure-delete

21
推荐指数
2
解决办法
7359
查看次数

擦拭非常缓慢。熵太小?

我必须交出一台笔记本电脑,包括它的硬盘。由于它没有加密,我想至少快速擦除它。我知道这在 SSD 上不是最佳选择,但我认为比简单易读更好。

现在我正在擦除实时 USB 记忆棒,而且速度非常慢。我不知道这是为什么。当然,除了擦除该设备之外,计算机上几乎没有发生任何事情,所以我想熵可能很低(entropy_avail 说它是 1220)。只是打电话是否同样好

dd if=/dev/random of=/dev/sda1 bs=1k
Run Code Online (Sandbox Code Playgroud)

四次?或者有什么方法可以调用会增加随机性的东西?还是瓶颈在某个地方完全不同?

security ssd dd secure-delete

16
推荐指数
2
解决办法
3940
查看次数

通过网络将逻辑卷直接从一台服务器移动到另一台服务器?

我有一台 KVM 主机,上面有多个 VM。每个 VM 在主机上使用一个逻辑卷。我需要将 LV 复制到另一台主机。

通常,我会使用类似的东西:

dd if=/the/logical-volume of=/some/path/machine.dd
Run Code Online (Sandbox Code Playgroud)

将 LV 转换为图像文件并使用 SCP 移动它。然后使用 DD 将文件复制回新主机上的新 LV。

这种方法的问题是您需要的磁盘空间是虚拟机在两台机器上占用的磁盘空间的两倍。IE。一个 5GB 的 LV 为 LV 使用了 5GB 的空间,而 dd 副本也为图像使用了额外的 5GB 空间。这对于小型 LV 来说很好,但是如果(就像我的情况一样)您有一个 500GB 的 LV 用于大型 VM,该怎么办?新主机具有1TB硬盘,所以它不能保持一个500GB的DD镜像文件,并有一个500GB的逻辑卷复制到有房的主机操作系统房间其他较小的客人。

我想做的是:

dd if=/dev/mygroup-mylv of=192.168.1.103/dev/newvgroup-newlv
Run Code Online (Sandbox Code Playgroud)

换句话说,通过网络将数据直接从一个逻辑卷复制到另一个逻辑卷,并跳过中间映像文件。

这可能吗?

files lvm dd

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

将分区合并为一个磁盘映像

我有 3 张图片。每个映像都是通过克隆(通过 dd)一个分区(这些分区使用 ext3 文件系统格式化)来完成的。一个分区可通过 GRUB1 (CentOS) 启动

如何将它们组合成一个磁盘映像?

(我可以使用 dd 命令复制分区映像,但我不知道如何创建分区表并使引导正常工作)。

linux partition dd boot

13
推荐指数
1
解决办法
1万
查看次数

创建没有未分配分区的 USB 驱动器的映像

我的系统上连接了 8GB USB 驱动器,如下所示:

[root@host]# fdisk -l /dev/sdb

Disk /dev/sdb: 8462 MB, 8462008320 bytes
255 heads, 63 sectors/track, 1028 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5c0894d9

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1           9       72261    e  W95 FAT16 (LBA)
/dev/sdb2              10         103      755055   83  Linux
[root@host]# 
Run Code Online (Sandbox Code Playgroud)

所以基本上我的 FAT 分区大约是 70 MB,ext2 分区大约是 740MB,其余的空间(~ 7 …

dd clone

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

是否可以将磁盘映像还原到不同大小的硬盘

最近我使用 dd 备份了 120 GB 磁盘映像:

dd if=/dev/sda of=backup.img
Run Code Online (Sandbox Code Playgroud)

现在我有一个新的 320 GB 硬盘,想将该备份映像还原到该新磁盘。会跑

dd if=backup.img of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)

做我想做的事?我可以使用剩余的 200 GB 新磁盘吗?

(/dev/sda - 旧的 120 GB 磁盘,/dev/sdb - 新的 320 GB 磁盘,backup.img - 120 GB 磁盘的映像文件)

dd disk-image

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

标签 统计

dd ×10

disk-image ×4

linux ×4

secure-delete ×2

security ×2

boot ×1

clone ×1

files ×1

hard-drive ×1

kernel ×1

lvm ×1

netcat ×1

partition ×1

ssd ×1

ssh-tunnel ×1