好吧,我很愚蠢,犯了一个严重错误。在运行 Ubuntu 10.10 的 Linux 机器上,我有一个 1.5TB 的 RAID 阵列,我最初使用此处的说明进行设置:http://www.gagme.com/greg/linux/raid-lvm.phpRAID 阵列是一个 4 x 500GB RAID 5 阵列,具有 ext3 格式的文件系统,不是我的启动设备。RAID 阵列仅用于存储。LVM 设置是一个物理卷(RAID 设备)和一个组成整个物理卷的逻辑卷。
因此,根据文件内容,这里是我最终执行的步骤列表/etc/lvm/archive
(每个步骤之前创建一个文件,并且该文件列出了命令):
lvremove /dev/raid_vg/lv0
lvcreate -l 357702 raid_vg -n lv0
lvremove raid_vg
lvcreate -l 357702 raid_vg -n lv0
lvremove raid_vg
vgexport raid_vg
vgimport raid_vg
vgscan
lvremove raid_vg
vgcreate raid_vg /dev/md1
因此,我无意中调用了lvremove
而不是 然后lvchange -a n
我意识到我的错误并尝试恢复逻辑卷。但这使得磁盘看起来是空的。
现在,我不确定,但我认为数据没有被删除(至少没有全部被删除)。我已经克隆了设备,这样ddrescue
我就不会丢失任何东西并且可以对映像进行实验。
现在,我的问题是,是否可以将 LVM 信息恢复到磁盘并恢复我的文件系统?我已获得配置文件,其中/etc/lvm/archive
提供了起始范围、大小和范围计数。
任何人提供的任何帮助都将不胜感激。我是个白痴,把自己搞砸了。我只希望这只是暂时的,我可以恢复我的数据。
答案1
有一篇有用的帖子Linux问题rayfordj 建议,即使在执行了 lvremove && vgremove && pvremove 序列之后,仍有可能恢复 vg/lv。
帖子上的顺序是:
- pvcreate --restorefile /etc/lvm/archive/ --uuid dev/sdX
- vgcfgrestore -f /etc/lvm/archive/ --verbose thisVG
- vgdisplay -v /dev/thisVG && vgchange -ay /dev/thisVG
- 挂载/ dev / thisVG / missingLV / mnt
(使用前请仔细检查这些步骤是否适合您的情况,或者使用原始帖子中的文字,效果更清晰!)。
步骤 4 可能会失败并需要文件系统检查。
根据您对问题的描述,您可能可以跳至步骤 2。
LinuxJournal 上还有一篇关于从故障 RAID 阵列和 LVM vg 中恢复数据的文章这里。
考虑到这两个来源,我认为您应该能够比较当前 lvm 配置文件和存档文件,并尝试使用旧文件而不是新文件。如果幸运的话,重新启动 lvm 将神奇地允许您使用 来查看 lv lvdisplay
,然后挂载它。