Recuperar un RHEL 8.6 roto tras ejecutar lvreduce sin ajustar el filesystem

 Los accidentes son útiles si se aprende de ellos y se los documenta. 


Ayer rompí mi redhat, o mejor dicho, lo rompió edenor. Estaba en pleno proceso de achicar la partición rhel-root vía LVM cuando se me cortó la luz. 





Naturalmente al no haber llegado a achicar el filesystem (no use la flag -r) el sistema quería levantar algo que no coincidía en tamaño y no se podía leer el superblock.

Busqué en todo internet y no encontré nada que pudiera ayudarme a solucionar el problema, hasta que se me ocurrió: ¿Y si reacomodo las particiones a mano tal como estaban antes?

al no tener la partición root UP, el archive en /etc/lvm no tenía más data que la de ayer cuando surgió el problema, pero por suerte al hacer un lvscan, podía ver que el tamaño continuaba indicandome que algo no estaba bien por que figuraba un < al lado del tamaño, entonces dije, bueno, sacrifico el swap. Iba a traer problemas pero el sistema iba a iniciar. 

Le hice un lvreduce -L -5G a /dev/mapper/rhel-swap y se lo agregué a root. Luego al hacer un lvscan el < había desaparecido. 

Reinicié y el sistema aun no funcionaba correctamente, pero al menos podía entrar como root, ahora el problema lo tenía la partición /home y swap. 

Asimismo, al poder entrar como root y contar con su partición, pude recuperar los datos dentro de /etc/lvm/archive y por suerte allí estaban todos los backups que realiza el logical volume manager cada vez que se realiza algún cambio.

[root@linux archive]# ls

rhel_00001-1192466789.vg  rhel_00006-667253015.vg  rhel_00011-945501059.vg

rhel_00002-143884632.vg   rhel_00007-192694550.vg  rhel_00012-32913567.vg

rhel_00003-1266644536.vg  rhel_00008-910753718.vg  rhel_00013-540280539.vg

rhel_00004-291648681.vg   rhel_00009-955571515.vg  rhel_00014-423592848.vg

rhel_00005-344697073.vg   rhel_00010-736800624.vg

me concentré en rhel_00001-*

logical_volumes {

root {
id = "lLegdo-lSN3-vY1O-a4dJ-vPXz-a6oj-tlUKao"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_time = 1641687758 # 2022-01-08 21:22:38 -0300
creation_host = "linux.redhatenterprise"
segment_count = 1

segment1 {
start_extent = 0
extent_count = 32168 # 125.656 Gigabytes

type = "striped"
stripe_count = 1 # linear

stripes = [
"pv0", 0
]
}
}

swap {
id = "PY46ZV-EReB-b2ME-lKDV-Zytd-wiNt-esoZiT"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_time = 1641687759 # 2022-01-08 21:22:39 -0300
creation_host = "linux.redhatenterprise"
segment_count = 1

segment1 {
start_extent = 0
extent_count = 2560 # 10 Gigabytes

type = "striped"
stripe_count = 1 # linear

stripes = [
"pv0", 32168
]
}
}

home {
id = "ozoJKX-Q02X-svyx-7x3i-9Hxq-EG9C-cQwwbi"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_time = 1641687759 # 2022-01-08 21:22:39 -0300
creation_host = "linux.redhatenterprise"
segment_count = 1

segment1 {
start_extent = 0
extent_count = 79104 # 309 Gigabytes

type = "striped"
stripe_count = 1 # linear

stripes = [
"pv0", 34728
]
}
}
}

}

La fecha me servía por que recordaba que no había hecho cambios en las particiones desde aquel entonces. 

Así que mirando la documentación de LVM vi que podría cargar el archive directamente:


lvm> vgsfgrestore /etc/lvm/archive/rhel_00001-1192466789.vg rhel

Y luego reinicié. 



Un pequeño susto y muchas cosas nuevas aprendidas en el día de hoy.

0 comentarios:

Copyright (C) 2019 - Chica de Sistemas. Con la tecnología de Blogger.

Páginas