如何在本地机器上使用SSH添加远程磁盘并保存到本地磁盘

如何在本地机器上使用SSH添加远程磁盘并保存到本地磁盘

如何在本地计算机上使用 SSH 创建远程磁盘的备份并将其保存到本地磁盘?


我尝试过以下方法:

ssh [email protected] "sudo dd if=/dev/sdX " | \
  dd of=/home/username/Documents/filename.image`

但是,我收到以下错误:

不存在 tty 且未指定 Askpass 程序

答案1

如果您的目的是备份远程计算机的硬盘驱动器通过 SSH 连接到本地计算机 HDD 上的单个文件,您可以执行以下操作之一。

例子

从远程计算机运行

$ dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz

从本地计算机运行

$ ssh user@remote "dd if=/dev/sda | gzip -1 -" | dd of=image.gz

实例

$ ssh skinner "dd if=/dev/sda5 | gzip -1 -" | dd of=image.gz
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 22.7608 seconds, 4.7 MB/s
116749+1 records in
116749+1 records out
59775805 bytes (60 MB) copied, 23.9154 s, 2.5 MB/s

$ ll | grep image.gz
-rw-rw-r--.   1 saml saml  59775805 May 31 01:03 image.gz

监测方法?

  1. ssh通过另一个终端登录并ls -l查看文件的大小。

  2. 您可以用来pv监视大型 dd 操作的进度,例如,对于上面的远程示例,您可以执行以下操作:

     $ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
    
  3. 发送“SIGUSR1”信号dd,它将打印统计数据。就像是:

     $ pkill -USR1 dd
    
  4. 使用 的dd进度开关,status=progress

参考

上面提到的监控方法最初是通过评论留下的@瑞安&@布拉特和我自己。我已将它们移至答案中以使它们更加明显。

答案2

您收到的错误是由于远程使用 sudo (系统会要求您输入密码,但您没有 tty 来输入密码)。另一方面,作为普通用户,您通常不能dd按照其他答案中的建议简单地使用(您没有设备所需的权限)。您可以通过授予自己dd在没有密码的情况下以 sudo 身份执行的权限来解决该问题。您可以通过编辑 sudoers 文件(在远程!)来做到这一点:

sudo visudo

添加以下行:

userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX

现在您可以发出:

ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd

它应该有效。您可以在 sudoers 中创建一个更通用的条目,允许您使用任何参数运行dd,但更明智的做法是将此免费权限保持在您需要的最低限度。

答案3

我刚刚在虚拟 Linux Mint 盒子上使用了修改后的版本来克隆老化 RedHat 服务器上的物理硬盘驱动器。

我在虚拟机上以 root 身份运行了以下命令:

ssh [email protected] "dd if=/dev/cciss/c0d0" | dd of=/dev/sdb
  • 192.168.1.5 是物理 Red Hat Enterprise Linux 2.1 机器。
  • /dev/sdb 是一个新的虚拟磁盘,克隆完成后,它将成为旧的即将消亡的物理盒的虚拟版本的基础。

答案4

我最近也遇到了类似的情况。对我来说不同的是

  • 由于安全措施,root ssh访问被禁用
  • sudo未安装(故意)

所以我所做的是:

  1. 检查设备文件权限(grep 查找适当的块设备命名方案(、、hd等))sdnvme
user@machine:~$ ls -la /dev/ |grep sd
brw-rw----  1 root disk      8,   0 Nov 22 13:36 sda
brw-rw----  1 root disk      8,   1 Nov 22 13:36 sda1
brw-rw----  1 root disk      8,   2 Nov 22 13:36 sda2
brw-rw----  1 root disk      8,   5 Nov 22 13:36 sda5
  1. 将用户添加到disk组中
root@machine:~$ usermod -aG user disk
  1. 然后以您已经尝试过的相同方式运行dd(但没有sudo
ssh [email protected] "dd if=/dev/sdX " |  dd of=/home/username/Documents/filename.image

(或者也像其他人建议的那样链接gzip

相关内容