![如何通过 SSH 将 HDD 添加至网络共享并进入 NAS 的特定端口并共享?](https://linux22.com/image/1571630/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20SSH%20%E5%B0%86%20HDD%20%E6%B7%BB%E5%8A%A0%E8%87%B3%E7%BD%91%E7%BB%9C%E5%85%B1%E4%BA%AB%E5%B9%B6%E8%BF%9B%E5%85%A5%20NAS%20%E7%9A%84%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E5%B9%B6%E5%85%B1%E4%BA%AB%EF%BC%9F.png)
下面是伪代码,但该怎么做呢?我没有空间在本地保存 dd 图像……
$ sudo dd if=/dev/sda of=/scp -P 12344 [email protected]:/volume2/share02/01.dd
我不知道如何执行它或者在本地包装它以解决我尝试 dd 图像的系统上的存储空间不足的问题。
答案1
如果你scp
可以大概可以追cat
你ssh
。
sudo dd if=/dev/sda bs=4M | ssh -p 12344 [email protected] 'cat > /volume2/share02/01.dd'
sudo
如果和都要求输入密码,这可能会很麻烦ssh
。在这种情况下,让此sudo
调用无需密码即可运行(sudo true
之前可能就足够了);或者sudo su -
提前运行,这样您就是 root 用户,不需要sudo
之前dd
;或者让此调用ssh
不需要密码(使用基于密钥的身份验证)。
dd
写入其标准输出,ssh
获取它并传递到远程cat
,其输出被重定向到/volume2/share02/01.dd
。
笔记:
/dev/sda
在读取时dd
,最好使用bs=
比默认值更大的值,例如bs=4M
。- 我会使用
dd status=progress …
或pv
代替dd
(或者至少在dd
和ssh
:之间dd … | pv | ssh …
)来查看进度。 - 请记住,在工作
sda
时不得写入。例如,挂载(除非是只读)可能会使图像不一致。dd
sda1
您可以缩小图像尺寸。阅读我的这个答案。对于你的情况,在你准备好整个之后
sda
,命令可能是pv /dev/sda | gzip -c -9 | ssh -p 12344 [email protected] 'cat > /volume2/share02/01.dd.gz'