使用 dd 仅部分恢复磁盘映像是否安全?

使用 dd 仅部分恢复磁盘映像是否安全?

我已将整个硬盘保存dd到图像文件中。硬盘包含一些格式化为 ntfs、swap 和 ext4 的主分区。我是这样做的:

dd if=/dev/sda | ssh user@fastmachine "cat - > diskimage.img"

然后我用新系统覆盖了硬盘的前 5 到 6 GB 以进行测试:

  1. 我创建了一个 1.5 GB 的交换主分区。
  2. 我创建了一个 4 GB 的 ext4 主分区。

在测试了测试系统之后,我现在想要恢复我的旧系统。但我的本地硬盘是写的时候很慢。为了节省时间和精力,我只想从图像中恢复大约 6 GB。这足够并且安全吗?会起作用吗?我会这样做:

ssh user@fastmachine "dd if=diskimage.img bs=1M count=6000" | dd of=/dev/sda

更新——部分恢复测试

它只能部分恢复硬盘。

更新—1.8寸pata硬盘速度测试

我只是测试写入速度

dd if=/dev/zero of=blub count=1000 bs=1M

ssh user@fastmachine "dd if=/dev/zero count=1000 bs=1M" | dd of=blub
  • 首先为我的 1.8 英寸硬盘提供了 14.5 MByte/s 的写入速度 — 没有我想象的那么糟糕
  • 第二个给了我 11.4 MByte/s = 91.2 Mbit/s ≈ 100 Mbit/s = 我的以太网连接速度

但:通过 WLAN 的 ssh(无线)只有 1.3 MByte/s!这就是问题所在。

通过以太网复制时,ssh 占用 68% 的 CPU 负载,而通过 WLAN(无线)复制时,仅占用 20%。

结论:如果我有更快的网络和硬盘/闪存驱动器,我会使用 netcat (nc) 来复制数据。

答案1

从理论上讲,这是可行的,但有一个警告:您不得更改要重建的区域之外的磁盘布局。重要的是磁盘上使用的分区方案。为了膜生物反应器这很容易,因为数据包含在第一个扇区中(以及逻辑分区的标头中)。为了GPT它稍微复杂一些 - 有两个分区数据副本,它们应该匹配。一般来说,如果你的分区软件支持的话(例如gdisk),使用它将方案数据保存到文件中,并将其与数据一起恢复。

或者,如果可以选择,请考虑将两个驱动器放入同一台计算机,因为除非您有相当不寻常的设置*),否则这ssh将成为数据传输的瓶颈。

*) 最新的处理器,连接到速度极慢的硬盘驱动器,例如非常旧的或配置错误的 ATA HDD、低端闪存设备(存储卡或闪存盘)或通过 USB 连接的任何设备,仅运行 v1.1 或专门修补的版本OpenSSH 的。

答案2

如果被覆盖/更改的分区完全位于磁盘的第一部分,并且如果剩余磁盘没有任何变化,这将是安全的。无论如何都是有风险的。为什么不让恢复运行过夜呢?

相关内容