在我的 Proxmox 6.4 主机上,我有一个 250GB 大的 LVM 精简池。我在上面创建了一个 Ubuntu VM(它也使用 LVM 作为根分区),但不小心超额订阅了它,因此 VM 内的 PV 设置为 500GB。
一切都运行了一段时间,直到我超过了隐藏的 250GB 限制,VM 因 I/O 错误而崩溃并拒绝启动。所以现在我正在尝试恢复磁盘。磁盘的分区表似乎完好无损:
$ fdisk -l /dev/vm-disks/vm-101-disk-0
Disk /dev/vm-disks/vm-101-disk-0: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 30874BBC-0B29-4083-B5BF-E973C665D87F
Device Start End Sectors Size Type
/dev/vm-disks/vm-101-disk-0p1 2048 4095 2048 1M BIOS boot
/dev/vm-disks/vm-101-disk-0p2 4096 2101247 2097152 1G Linux filesystem
/dev/vm-disks/vm-101-disk-0p3 2101248 1048573951 1046472704 499G Linux filesystem
我跑了
$ kpartx -a /dev/vm-disks/vm-101-disk-0
/dev/mapper
为里面的 3 个分区创建条目vm-101-disk-0
,这很有效。如果我运行:
$ file -sL /dev/mapper/vm--disks-vm--101--disk--0p3
/dev/mapper/vm--disks-vm--101--disk--0p3: LVM2 PV (Linux Logical Volume Manager), UUID: fdOzWR-sPcy-hyYo-Lj2H-YEnZ-wK3c-J6biES, size: 535794024448
然后我可以在磁盘的第三个分区内看到那个 PV。但是我怎样才能将它安装在主机的某个地方以开始恢复数据呢?显然pvscan
从主机系统看不到它,因为它在另一个 LV 内。我在这里是否有任何恢复选项,或者虚拟机认为它有 500GB 的事实实际上并不意味着我已经将其损坏到无法修复?