在外部硬盘恢复的过程中,我将整个磁盘备份到LVM LV,运行fsck和resize2fs以适应新驱动器(都是外部USB硬盘,但较新的要小几MB)。我使用 ddrescue 将数据复制到 LV 中。现在,当我使用 dd 将数据从 LV 复制到物理驱动器时,我得到了损坏的分区表。当我修复分区表(与 LV 的分区表相同)时,我从 fsck 收到错误。
我运行
dd bs=100M if=/dev/mapper/backup--vg-backup--lv of=/dev/sdh
将数据从 LV 获取到物理驱动器。
LV 和物理驱动器都使用相同的逻辑/物理扇区大小。
我的问题是如何将数据从LV(包含整个磁盘)复制回物理磁盘?
答案1
即使在发出后,它看起来也像fdisk
并使用了缓存数据。这使得 fdisk 使用错误的分区表和 fsck 错误的超级块。fsck
partprobe
我尝试过了重启计算机以及 fdisk 和 fsck 都报告了预期结果,而且物理磁盘和 LV 的结果相同。
我原以为 FS 可能会报告一些错误(除了 2MB 之外的所有 4TB 都从原始磁盘恢复到 LV),但我将分区挂载到物理驱动器上,文件看起来没问题。
答案2
在目标 HDD/SDD 上手动创建新分区表、重新创建文件系统并从 LVM 驱动器复制数据可能会更容易。
我个人就是rsync -avxHAX (source) (target)
这么用的。