Eu descobri uma maneira de recuperar o ataque. Sistemas modernos de LVM fazem backups da configuração de VG com bastante frequência. Você pode ver uma lista de seus backups e os comandos que os acionaram usando vgcfgrestore --list
. Eu escolhi o de antes quando eu fiz o vgreduce --removemissing
e encontrei esses bits relevantes dentro dele:
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
}
e
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
]
}
}
Então, criei uma cópia desse arquivo e removi "MISSING"
do flags =
. Eu também defino o device = "/dev/md2"
, embora isso provavelmente não fosse necessário. Eu executei um vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
e agora meu mg20 / homes18 está de volta e passa um fsck.
Para ser honesto, não estou muito satisfeito com isso como resposta. É um pouco exagerado restaurar a configuração INTEIRA.
Acho que uma resposta real pode envolver lvcreate -Z n
, mas tenho preguiça de realizar os experimentos necessários para verificar isso.