我陷入了困境。我需要从之前创建的备份映像中提取数据。我以为我对 LVM 的了解足以应付……至少到目前为止。
看来我的错误在于我备份了 LVM 快照卷,而不是整个卷组或磁盘分区。我读过的大多数文章都暗示您备份了整个磁盘。
这是我的 LVM 布局:
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part
├─lvm1-root 254:2 0 8.1G 0 lvm /
└─lvm1-swap 254:3 0 956M 0 lvm [SWAP]
这是我的备份命令:
lvcreate -L800M -s -n rootsnapshot /dev/lvm1/root
dd if=/dev/lvm1/rootsnapshot conv=sync,noerror bs=128K status=progress of=/path/to/snapshot.dd
我已将 DD 文件作为 /dev/loop0 安装到另一台机器上。
以下是我得到的结果:
# fdisk -l
Disk /dev/loop0: 8.1 GiB, 8657043456 bytes, 16908288 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
# lvmdiskscan
/dev/loop0 [ 8.06 GiB]
/dev/sda1 [ <7.00 GiB]
/dev/sda5 [ 1022.00 MiB]
0 disks
3 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
# vgscan -v
Reading all physical volumes. This may take a while...
No volume groups found.
知道如何安装此快照以从中检索数据吗?
答案1
明白了。非常简单。
首先,我的问题是我最新的 DD 备份文件完全充满了 0x00 字节......
一旦我获得包含真实数据的旧备份,事情就变得非常顺利了。
losetup /dev/loop0 /path/to/snapshot.dd
mount -f ext4 /dev/loop0 /mnt/tmp
完美运行!