从 LVM 组中删除磁盘后文件系统损坏

从 LVM 组中删除磁盘后文件系统损坏

我有点搞砸了,我正在努力寻找最好的恢复方法。

几天前,我的 lvm 设置的一个物理磁盘开始出现故障迹象(I/O 错误),因此我决定使用 pvmove 将其移动到另一个磁盘。那没有成功。 5 天后,pvmove 只完成了 0.1%,所以我停止了它。

重新启动后,死亡的磁盘根本不会出现,它已经完全死亡,所以我决定用以下方法删除它:

vgreduce --removemissing --force VolGroup00

问题是它拒绝这样做,因为 pvmove 说 LV 被锁定。我试过:

pvmove --abort

但它拒绝这样做,因为丢失的磁盘已经死亡。

所以我被困住了,然后做了:

vgcfgbackup VolGroup00

然后我编辑了该文件,删除了有关 pvmove 的条目,尝试:

vgcfgbackup VolGroup00

由于丢失的磁盘,它拒绝恢复,因此我再次编辑该文件,从那里删除丢失的磁盘并成功完成vgcfgrestore

现在的问题是我无法安装我的卷,因为它说:

wrong fs type, bad option, bad superblock

这是有道理的,因为分区的大小应该是 2.4Tb,但现在只有 2.2Tb。现在的问题是我该如何解决这个问题?我应该使用像 testdisk 这样的工具,还是应该能够以某种方式创建一个新的物理卷/卷组,在其中添加由 2 个物理磁盘组成的逻辑卷,并以某种方式获得正确的文件系统(文件系统是 ext4)?

pvdisplay输出:

--- Physical volume ---
PV Name               /dev/sda4
VG Name               VolGroup00
PV Size               417.15 GiB / not usable 4.49 MiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              106789
Free PE               0
Allocated PE          106789
PV UUID               dRhDoK-p2Dl-ryCc-VLhC-RbUM-TDUG-2AXeWQ

--- Physical volume ---
PV Name               /dev/sdb1
VG Name               VolGroup00
PV Size               1.82 TiB / not usable 4.97 MiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              476923
Free PE               0
Allocated PE          476923
PV UUID               MF46QJ-YNnm-yKVr-pa3W-WIk0-seSr-fofRav 

我还保留着它死前的配置。下面是它的情况。死亡的磁盘(我删除的)是 pv1 ( /dev/sdc1),但它不想恢复此配置,因为它说磁盘丢失。

VolGroup00 {
    id = "a0p2ke-sYDF-Sptd-CM2A-fsRQ-jxPI-6sMc9Y"
    seqno = 4
    format = "lvm2"                 # informational
    status = ["RESIZEABLE", "READ", "WRITE"]
    flags = []
    extent_size = 8192              # 4 Megabytes
    max_lv = 0
    max_pv = 0
    metadata_copies = 0

    physical_volumes {

            pv0 {
                    id = "dRhDoK-p2Dl-ryCc-VLhC-RbUM-TDUG-2AXeWQ"
                    device = "/dev/sda4"    # Hint only

                    status = ["ALLOCATABLE"]
                    flags = []
                    dev_size = 874824678    # 417.149 Gigabytes
                    pe_start = 2048
                    pe_count = 106789       # 417.145 Gigabytes
            }

            pv1 {
                    id = "NOskcl-8nOA-PpZg-DCtW-KQgG-doKw-n3J9xd"
                    device = "/dev/sdc1"    # Hint only

                    status = ["ALLOCATABLE"]
                    flags = []
                    dev_size = 625142385    # 298.091 Gigabytes
                    pe_start = 2048
                    pe_count = 76311        # 298.09 Gigabytes
            }

            pv2 {
                    id = "MF46QJ-YNnm-yKVr-pa3W-WIk0-seSr-fofRav"
                    device = "/dev/sdb1"    # Hint only

                    status = ["ALLOCATABLE"]
                    flags = []
                    dev_size = 3906963393   # 1.81932 Terabytes
                    pe_start = 2048
                    pe_count = 476923       # 1.81932 Terabytes
            }
    }

    logical_volumes {

            lvolmedia {
                    id = "aidfLk-hjlx-Znrp-I0Pb-JtfS-9Fcy-OqQ3EW"
                    status = ["READ", "WRITE", "VISIBLE"]
                    flags = []
                    creation_host = "archiso"
                    creation_time = 1402302740      # 2014-06-09 10:32:20 +0200
                    segment_count = 3

                    segment1 {
                            start_extent = 0
                            extent_count = 476923   # 1.81932 Terabytes

                            type = "striped"
                            stripe_count = 1        # linear

                            stripes = [
                                    "pv2", 0
                            ]
                    }
                    segment2 {
                            start_extent = 476923
                            extent_count = 106789   # 417.145 Gigabytes

                            type = "striped"
                            stripe_count = 1        # linear

                            stripes = [
                                    "pv0", 0
                            ]
                    }
                    segment3 {
                            start_extent = 583712
                            extent_count = 76311    # 298.09 Gigabytes

                            type = "striped"
                            stripe_count = 1        # linear

                            stripes = [
                                    "pv1", 0
                            ]
                    }
            }
    }

感谢您的帮助。

答案1

我在解决问题方面取得了进一步的进展。

我遇到过这个:https://www.novell.com/coolsolutions/appnote/19386.html#DiskPermanentlyRemoved

所以我插入了一个新磁盘,做了:

pvcreate --uuid NOskcl-8nOA-PpZg-DCtW-KQgG-doKw-n3J9xd --restorefile VolGroup00_00001-16738001.vg /dev/sdc1

VolGroup00_00001-16738001.vg 是磁盘损坏之前的 lvm 配置,我将其删除。

然后我做了:

vgcfgrestore VolGroup00
vgscan
vgchange -ay VolGroup00

vgcfgrestore 的 VolGroup00 是之前的 VolGroup00_00001-16738001.vg。所有这一切都很成功,就像上面的小说链接一样。

我现在可以挂载该卷并获取我的数据,但我遇到了 fsck 问题:

The filesystem size (according to the  superblock) is 675863552 blocks
The physical size of the device is  597721088 blocks
Either the superblock or the partition table is likely  to be corrupt!
Abort<y>?

相关内容