pv是上面运行的程序dd。我正在将旧硬盘克隆到新 SSD。这是 500GB 的数据。我尝试运行以下命令复制sda到sdb:
ubuntu@ubuntu:/$ sudo pv < /dev/sda > /dev/sdb
bash: /dev/sda: Permission denied
Run Code Online (Sandbox Code Playgroud)
使用dd命令没有产生这个错误。
我正在从 DVD 运行系统 Ubuntu。sda是通过 SATA 连接的主要笔记本电脑硬盘sdb驱动器,是使用 USB-SATA 转换器通过 USB 连接的 SSD 驱动器。
上面的重定向是在分叉和执行 sudo 之前由您的 shell 设置的。您可能需要类似以下内容:
sudo bash -c 'pv </dev/sda >/dev/sdb`
Run Code Online (Sandbox Code Playgroud)
这将导致 bash 由 sudo 运行。Bash 会将-carg 的参数作为该 shell 中的命令执行,而不是以交互方式运行。
该dd命令有效,因为大概您没有使用重定向。
此外,pv不会在dd. 该pv命令做了很多事情,包括显示其输出到 stdout 的进度或限制其输出的速率。