我有点搞砸了,我正在努力寻找最好的恢复方法。
几天前,我的 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>?