在 :
sudo dd if=/dev/sda bs=64k | pv --size 1.5t | dd of=/dev/sdb
dd 的块大小是位于输入后的左侧(如图所示)还是位于输出后的右侧?
使用管道查看器大小选项时,值前面没有等号是否正确?可以使用如上所示的十进制值吗?
答案1
许多问题可能会从审查中受益。
sudo dd if=/dev/sda bs=64k | pv --size 1.5t | dd of=/dev/sdb
首先,您可以(极大地)增加块大小并相应地增加吞吐量。我经常使用bs=32M
.参数的顺序并不dd
重要,因此:
sudo dd if=/dev/sda bs=1M
--size
接下来,指定带或不带等号并不重要。长参数(以双破折号开头的参数)通常并不挑剔。然而,快速尝试表明pv
参数必须是整数。所以:
pv --size 1500g
最后,值得为 指定一个大的(输出)缓冲区dd
,并且您可能需要以 root 权限运行它。因为我们使用了一个大的缓冲区,所以在尝试将其写出之前,有必要确保我们已将其完全填满。所以你最终会得到这样的结果:
sudo dd of=/dev/sdb bs=1M iflag=fullblock
综合起来,
sudo dd if=/dev/sda bs=1M | pv --size 1500g | sudo dd of=/dev/sdb bs=1M iflag=fullblock
不过,我确实应该指出,在基于 Linux 的系统上,不需要用于dd
从磁盘驱动器复制或向磁盘驱动器复制。在此基础上,整个命令链可以简化为:
sudo sh -c 'pv --skip-errors --size 1500g </dev/sda >/dev/sdb'