从损坏的固态硬盘 (SSD) 克隆数据

从损坏的固态硬盘 (SSD) 克隆数据

SSD 进入只读模式,因此您需要将分区移动到正在运行的 SSD,但我遇到了 LVM 大小不同的事实:

#lvm pvscan

PV /dev/sdc3 VG pve lvm2 [<111.29 GiB / 13.87 GiB 可用]

PV /dev/sdb3 VG pve lvm2 [<118.74 GiB / 14.75 GiB 可用]

由于体积差异,将无法通过 DD 进行转移。

sudo dd if=/dev/sdb3 of=/dev/sdc3 status=progress

还有什么其他方法?也许有软件可以从 BIOS 下克隆分区?

UPD:两个 SSD 都通过 NVME-usb 适配器连接。我正在通过 iODD-2531 上的实时 Linux 工作。然后我通过 ssh 连接到系统。

从 128gb 驱动器复制到 120gb 驱动器。如果第一个驱动器没有写保护,我可以尝试减小分区的大小,然后使用 DD 进行复制。

更新:

我连接了一个 500GB 的驱动器进行测试,并开始使用 DD 进行复制。结果出现错误:

ubuntu@ubuntu:~$ sudo dd if=/dev/sdd of=/dev/sdc status=progress
456839680 bytes (457 MB, 436 MiB) copied, 53 s, 8.6 MB/s
459821568 bytes (460 MB, 439 MiB) copied, 57 s, 8.1 MB/s
461292032 bytes (461 MB, 440 MiB) copied, 59 s, 7.8 MB/s
569393664 bytes (569 MB, 543 MiB) copied, 72 s, 7.9 MB/s
709820928 bytes (710 MB, 677 MiB) copied, 85 s, 8.4 MB/s
dd: error reading '/dev/sdd': Input/output error
1388520+0 records in
1388520+0 records out
710922240 bytes (711 MB, 678 MiB) copied, 93.8062 s, 7.6 MB/s

在此处输入图片描述

这是复制错误。SSD patriot p300,它继续降级,坏扇区超过 50%。该主题可以关闭。驱动器坏了。谢谢。

答案1

您必须在使用之前缩小 PV dd,但 SSD 的只读状态禁止这样做。

但是,使用叠加差异图像仍然可以做到这一点。一般来说,它与我详细描述的相同在另一个答案中。这里我只描述差异。

  1. 创建与物理支持设备(旧 SSD)差异覆盖暂存映像文件,在qemu-img参数中有-b /dev/sdb3
  2. 加载nbd驱动程序并使用 将映像文件附加为 NBD 磁盘qemu-nbd。该设备将是可读写的,它最初将包含后备设备(旧 SSD)的所有内容,但更改将写入 qcow2 文件(因此旧 SSD 的只读状态不会干扰对 NBD 的写入)。
  3. 现在可以缩小 PV在 NBD 设备上。由于它不应该涉及太多数据移动,因此临时 qcow2 文件不会增长太多。减少它,使其与第二个 SSD 上的分区匹配(或略小)。您必须使用类似的方法pvresize --setphysicalvolumesize 111G /dev/nbd0(如果您按照上一步的方式连接它nbd0)。
  4. 缩小后,您可以dd从 NBD 设备中使用。最好wipefs在克隆到目标分区之前停止使用目标分区并删除其中的任何剩余标签(使用)。

可以使用设备映射器内置的覆盖功能和稀疏覆盖图像来实现相同的设置(只读备份设备和读写覆盖),而不是使用 Qemu 的图像工具和 NBD,因为RAID wiki 上有解释,但我从来没有那么做过。


编辑:既然这出现在评论中,我想我也需要在这里添加它。如果你有备用的备份空间(外部硬盘或其他东西),足够大来存储原始设备的映像,去做,进行转储。ddrescue工具对于此任务非常有用,因为它:

  • 绕过不可读的块,用零填充它们
  • 维护一个状态(“日志”)文件,其中记录哪些块已成功复制,哪些块无法读取以及哪些块尚未尝试
  • 您可以使用相同的源、目标和状态文件安全地重新启动它。还可以将不可读的块重置为未尝试状态,因此它会在运行期间重试它们。

这样就可以完全复制那些在完成一些工作后过热或离线且整体不稳定的设备。只需耐心等待,经过几次运行后,它将提取所有可能的数据进行恢复。

之后,使用此图像代替原始的坏掉的设备。您可以按照我上面解释的方式使用它,例如设置其他覆盖图像将存储差异。您可以无限次尝试,只需不更改原始图像并根据需要一次又一次地重新创建覆盖图像即可。

答案2

Clonezilla 可能对你的情况有用。你绝对可以用它来复制不匹配的分区!

https://clonezilla.org/

答案3

你必须在分区级别执行此操作吗?移动文件相反,因为您不需要费心缩小旧文件系统或类似的事情。Acp -avx可以很好地完成移动操作系统的工作,但rsync -avxHAX如果需要中断和恢复,A 可能会更好。

  1. 准备(mkfs)新的文件系统。
  2. 挂载新旧文件系统并使用以下方法复制所有内容cp -avx /old/. /new/
  3. 编辑 /mnt/etc/fstab 和其他配置文件以匹配新文件系统的 UUID。

答案4

磁盘克隆是制作分区或整个硬盘驱动器映像的过程。这对于将驱动器复制到其他计算机或用于备份和恢复目的很有用。

注意:不建议在具有不同逻辑扇区大小的驱动器之间进行磁盘克隆。移动到具有较小逻辑扇区大小的驱动器(例如从 4096 字节到 512 字节)将需要重新创建分区表,因为分区边界是在扇区号中指定的。如果文件系统的块大小小于目标驱动器的逻辑扇区大小或不能被其整除,则移动到具有较大逻辑扇区大小的驱动器(例如从 512 字节到 4096 字节)可能根本无法实现。

提示:随着时间的推移,文件系统会获得新功能,mkfs 实用程序会更改其默认值,但并非所有新功能都可以在不重新格式化的情况下启用。因此,在将数据移动到新驱动器时,请考虑创建一个新的文件系统,然后仅使用 rsync 等复制文件(及其属性、ACL、扩展属性等),而不是克隆块设备或文件系统。

查看此来源以获取有关不同工具以及适合您需求的更多详细信息:

磁盘克隆工具

1. 块级克隆

dd 命令是一个简单但功能多样且功能强大的工具。它可用于逐块地从源复制到目标,而不管其文件系统类型或操作系统如何。一种方便的方法是从实时环境(如 Live CD)中使用 dd。

救援

GNU ddrescue 是一款能够忽略读取错误的数据恢复工具。ddrescue 与 dd 没有任何关系,只是两者都可用于将数据从一个设备复制到另一个设备。关键区别在于 ddrescue 使用复杂的算法从故障驱动器复制数据,尽可能减少对驱动器造成的额外损坏。

2. 文件系统克隆

e2图像

e2image 是 e2fsprogs 中用于调试的工具。它可用于高效地复制 ext2、ext3 和 ext4 分区,只需复制已使用的块即可

3. 多功能克隆解决方案

克隆兹拉

分区和磁盘映像/克隆程序,有助于系统部署、裸机备份和恢复。

Deepin 克隆

Deepin 提供的备份和恢复工具。支持克隆、备份和恢复磁盘或分区。

档案存档器

安全灵活的文件系统备份/部署工具

蒙多救援

灾难恢复解决方案用于创建可用于重新部署受损系统的备份媒体。

部分克隆

可用于备份和恢复分区同时仅考虑使用过的块的工具。

部分图像

适用于 Linux/UNIX 环境的 ncurses 磁盘克隆实用程序。

重做备份和恢复

从可启动 Linux CD 映像运行的备份和灾难恢复应用程序。

系统修复

使用 tar 备份和恢复系统或使用 rsync 传输

另一份包含部分功能的工具列表

磁盘克隆软件通过使用软件技术将数据从源复制到目标驱动器或磁盘映像,从而实现磁盘克隆操作

磁盘克隆软件比较列表

相关内容