如何通过网络将磁盘驱动器复制到另一台计算机(创建和使用此类磁盘映像)?

如何通过网络将磁盘驱动器复制到另一台计算机(创建和使用此类磁盘映像)?

我最初以为,我只是将scp笔记本电脑磁盘驱动器复制到服务器阵列上以进行备份。


事实证明,这可能是不可能的(not a regular file),或者我可能错过了一些解决方法,无论如何,这个问题相当广泛,所以为了尽可能缩小范围,让我重新表述一下:


如何将笔记本电脑上的整个 NVMe 驱动器从实时 Linux Mint 19 USB 记忆棒复制到运行 RAID-1 阵列的服务器上并将其保存到文件中?


本地来源:

/dev/nvme0n1

远程目的地192.168.0.1xx,端口59xxx

/mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img

答案1

请随意添加您的答案,如果更好,我会接受它,以便未来的读者标记出最好的答案。


首先,我将笔记本电脑连接到与服务器相同的路由器,形成 1Gbit 全双工网络。我暂时启用了对服务器的 SSH 密码访问。


其次,我用 Linux Mint 19.2 Cinnamon 创建了一个 USB 记忆棒,启动它,卸载了自动安装的 NVMe 磁盘分区 - 不知道是我点击了它,还是系统本身做了 - 拥有 32GB 内存,我决定更新所有软件包并安装,pv以便查看复制过程的进度条和预计到达时间。


作为问题最终解决方案的命令是:

pv /dev/nvme0n1 | ssh [email protected] -p 59xxx "dd bs=100M of=/mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img"

结果输出(没有密码提示):

476GiB 1:21:23 [ 100MiB/s] [=============================>] 100%
0+15643397 records in
0+15643397 records out
512110190592 bytes (512 GB, 477 GiB) copied, 4885.02 s, 105 MB/s

任务完成。


灵感来自阿彻马尔的评论:

您是否尝试过挂载远程映像?想象一下您只需要从特定目录恢复一些文件。

事实上,对于新用户来说这可能会带来问题,因此为了让这个答案 100% 完整,我最好将其包括在内。

所以。我们如何挂载整个磁盘映像的主分区?

好吧,首先您要总体列出其分区:

fdisk -l /mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img

它会输出类似这样的内容:

Disk /mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 989573D5-37E7-437A-B680-xxxxxxxxxxxx

Device                                                             Start        End    Sectors   Size Type
/mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img1   2048     194559     192512    94M EFI System
/mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img2 194560 1000214527 1000019968 476,9G Linux filesystem

然后,您将其安装为循环设备(现在它是隐式的,但为了让您了解它,我明确添加了该loop选项),同时使用偏移选项(注意:AFAIK,只能root使用选项)计算为(逻辑)扇区大小乘以通过您要安装的分区的起始扇区)。像这样:

mount -o loop,offset=$(( 512 * 194560 )) /mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img /mnt/someMountPoint

相关内容