![在 LVM 物理上恢复格式化的分区表](https://linux22.com/image/52062/%E5%9C%A8%20LVM%20%E7%89%A9%E7%90%86%E4%B8%8A%E6%81%A2%E5%A4%8D%E6%A0%BC%E5%BC%8F%E5%8C%96%E7%9A%84%E5%88%86%E5%8C%BA%E8%A1%A8.png)
我有一台带有 2 个磁盘的机器(运行 CentOS 6.5 的来宾虚拟机)。主操作系统在主操作系统上sda
,然后在第二个操作系统上有 2TB LVM sdc
。
我在机器上添加了另外 2 个 2TB 磁盘,并正在执行格式化过程,然后使用fdisk
它添加到 LVM,但我 fdisk 了错误的磁盘sdc
。两个新磁盘出现为sdb
和sdd
。像个白痴一样,我fdisk -l
在继续之前没有正确检查。
我在1上创建了一个新的主分区,然后再次将系统id覆盖为8e(LVM)。
现在sdc
有了一个新的 UUID 和一个新的分区表。
有人知道如何使用 vgcfgrestore util 恢复它吗?我可以将新的 UUID 覆盖 vg1(卷组备份文件)中的旧 UUID 并运行还原吗?
答案1
那天晚上我在调试 gparted 时也做了同样的事情。我曾经dd if=/dev/zero count=1 of=/dev/sdc
擦除dos分区表,然后pvcreate --uuid xxxx --norestorefile
重新初始化lvm标头,最后vcfgrestore
从/etc/lvm/backup中的备份恢复,您也可以查看该驱动器的uuid之前给出的内容到 pvcreate。
答案2
谢谢普苏西
这比我最终所做的要容易得多。我使用 testdisk 进行了深入分析,重新发现了底层分区。这花了几个小时,因为 2TB 驱动器已满 89%。
一旦我找到了驱动器及其尺寸(由 testdisk 自动),我就编写了更改。
但需要注意的是选择 intel 作为分区类型。如果您选择“无”,则它无法写入您找到的结果。
感谢你的回答!