我以最简单的形式使用 dd 来克隆硬盘:
dd if=INPUT of=OUTPUT
Run Code Online (Sandbox Code Playgroud)
但是,我在联机帮助页中读到 dd 知道一个 blocksize 参数。是否有可以加快克隆过程的 blocksize 参数的最佳值?
将conv=sync,noerror整个硬盘备份到映像文件时添加有什么影响?
是conv=sync,noerror做司法鉴定的东西时,一个要求吗?如果是这样,为什么参考 Linux Fedora 会出现这种情况?
编辑:
好的,如果我dd没有这样做conv=sync,noerror并且dd在读取块时遇到读取错误(假设是 100M),是否dd只是跳过 100M 块并读取下一个块而不写入任何内容(dd conv=sync,noerror将零写入 100M 的输出 - 这种情况怎么样?)?
如果没有,原始硬盘和输出文件的哈希值是否不同conv=sync,noerror?还是只有在发生读取错误时才会这样?
我想生成一个 1 GB 的随机文件,所以我使用了以下命令。
dd if=/dev/urandom of=output bs=1G count=1
Run Code Online (Sandbox Code Playgroud)
但是每次我启动这个命令时,我都会得到一个 32 MB 的文件:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
Run Code Online (Sandbox Code Playgroud)
怎么了?
编辑:
感谢本主题中的出色答案,我提供了读取 32 个 32 MB 大块的解决方案,这使得 1GB:
dd if=/dev/urandom of=output bs=32M count=32
Run Code Online (Sandbox Code Playgroud)
给出了其他解决方案,将 1 GB 直接读取到内存,然后写入磁盘。此解决方案需要大量内存,因此不推荐使用:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
Run Code Online (Sandbox Code Playgroud) 我有一台运行 Windows 7 的家用机器,我想知道它是否可以执行这样的命令:
dd if=/dev/${oldSataSpinningDisk} of=/dev/${newSSD}
Run Code Online (Sandbox Code Playgroud)
要将在 SATA HDD 上运行的当前系统的内容克隆到新的 SSD?主要是,Windows 7 会启动并实际工作吗?
我打算为我的旧 USB 驱动器制作一个图像。我有充分的理由期望设备上有一些填充零的块,因此为了节省一些空间,我使用了以下conv=sparse选项:
dd if=/dev/sdb of=myusb.img conv=sparse bs=32M
Run Code Online (Sandbox Code Playgroud)
然而,它什么也没救我:
$ ls -hls myusb.img
250M -rw-r--r-- 1 root root 250M Oct 18 21:31 myusb.img
Run Code Online (Sandbox Code Playgroud)
我确定设备上有零填充块。为什么不dd conv=sparse节省空间?
注意我已经知道答案(我认为)。我把它贴在下面。问题供以后参考。
可以ddrescue通过该选项将驱动器从较大的磁盘克隆到较小的磁盘吗--sparse?
本讨论概述了用于克隆驱动器的步骤ddrescue以及使用相同大小的重要性,但我很好奇是否有一种方法可以以ddrescue某种方式诱导此功能,而不是必须依赖更强大的工具,例如True Image.