我最近遺失了一個 RAID,它是我的 Linux LVM 磁碟區組之一的實體磁碟區。我最終做了一個vgreduce --removemissing
並繼續恢復資料的業務。
好吧,今天我發現了 RAID(它被隱藏了,不要問)。
# pvdisplay -m /dev/md2
WARNING: Volume group mg20 is not consistent
"/dev/md2" is a new physical volume of "499.87 GiB"
--- NEW Physical volume ---
PV Name /dev/md2
VG Name
PV Size 499.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz
mg20
不一致,因為 Lost&Found PV/dev/md2
可能包含舊邏輯磁碟區目錄的副本,其中提到了位於 上的檔案系統/dev/md2
。
如何重新整合/dev/md2
並mg20
保留其上的檔案系統? (並且省去了恢復其內容的麻煩)一個簡化因素是/dev/md2
僅包含一個 LV 並且該 LV 完全包含在/dev/md2
.
答案1
我想通了A恢復襲擊的方法。現代 LVM 系統經常備份 VG 配置。您可以使用 來查看備份清單以及觸發備份的命令vgcfgrestore --list
。我在執行此操作時選擇了之前的一個vgreduce --removemissing
,並在其中找到了這些相關的位元:
pv8 {
id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
device = "unknown device" # Hint only
status = ["ALLOCATABLE"]
flags = ["MISSING"]
dev_size = 1048312832 # 499.875 Gigabytes
pe_start = 2048
pe_count = 127967 # 499.871 Gigabytes
}
和
homes18 {
id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 89600 # 350 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv8", 0
]
}
}
所以我創建了該文件的副本並"MISSING"
從flags =
.我還設置了device = "/dev/md2"
,儘管這可能沒有必要。我執行了 a vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
,現在我的 mg20/homes18 回來了並通過了 fsck。
說實話,我對這個答案並不太滿意。恢復整個配置有點過分了。
我認為真正的答案可能涉及lvcreate -Z n
,但我懶得進行必要的實驗來驗證這一點。