Modificando LVM. Renombrar un volume group
A veces necesitamos adaptar y evolucionar el gestor de volúmenes del sistema.
¿Es posible cambiar los datos del gestor de volúmenes?
¿De qué herramientas disponemos para ello?
Fedora Linux, y CentOS, y RedHat, y cualquier otro que nos interese, tienen un panel web llamado cockpit, el cual vamos a poner a prueba.
De momento, y a pesar de que viene de serie, para otras distribuciones, y resto de distribuciones compatibles, podéis echar un ojo al proyecto aquí.
¿Por qué necesito documentar esto?
Hay un par de temas de fondo que me traen frito con el rollo de los volúmenes autogenerados en las imágenes, y también es que quiero dejar esto como base para ampliar los procedimientos de sistemas de virtualización.
Hasta ahora me he encontrado muchas veces con el problema de tener que manipular discos (físicos o virtuales) con un mismo nombre para los grupos de volúmenes que el equipo que uso. Y no solo en casa, si no también en el trabajo y en el día a día.
Recuerdo que hace mucho, anaconda, el instalador de fedora, redhat y otros, realizaba un particionado específico con LVM llamando a los grupos por un genérico más el nombre asignado de máquina.
Eso tenía sentido. No se en qué momento se ha perdido esa necesidad.
Hoy queda documentado un procedimiento que llevo años ejecutando y del que empecé a quejarme cuando empecé a trabajar con las imágenes de ARM.
Nota importante. Si quieres el procedimiento completo, sigue leyendo
Por aquí el procedimiento y Por aquí el resumen
Manejar el gestor de volúmenes con cockpit
Para probar esto, me he montado una máquina virtual y he realizado la instalación de Fedora 34, de serie.
La verdad es que este procedimiento es aplicable a cualquier sistema siempre que necesitemos modificar los grupos de volúmenes que traen.
La idea de hacerlo con cockpit me ha resultado una serendipia curiosa cuando he encontrado un botón que se supone que lo hace.
Como vemos, nada mas logarnos, tenemos un resumen del sistema y datos importantes de uso y configuración, y si hay actualizaciones pendientes.
La parte que nos interesa, se denomina storage o almacenamiento.
Aquí veremos todo lo referente a discos, volúmenes, puntos de montaje, y sistemas de ficheros.
Pero la jerarquía manda así que el punto que nos interesa, devices y ahí vemos el grupo de volumen.
En este caso, el grupo se llama fedora_fedora y contiene un volumen lógico llamado root, que es el sistema completo. En este caso y para este ejemplo, no he dividido.
De hecho, es uno de los puntos que debería replantearse anaconda, el instalador, para separar al menos los volúmenes de home, y var, y quizás alguno más. Son buenas prácticas.
Tiene un botón que pone rename ¿que puede salir mal?
Pues nada, cambiamos el nombre del grupo de volúmen por el nombre fedora34
Es todo un detalle que me diga que ahora mismo los puntos de montaje no cuadran.
Si, lo se, era de esperar.
También es bastante interesante que se ofrezca a repararlo por mi.
Así que vamos a dejar que lo haga…
¿A ver que ha hecho?
Para eso, en la terminal, porque cockpit nos ofrece un terminal web muy util salvo si los atajos que usáis son los mismos o parecidos a los del navegador (C-X, C-A, C-D por ejemplo), vamos a echar un ojo al fichero fstab.
cat /etc/fstab
Bien, ha creado un punto de montaje con un UUID en lugar del dispositivo.
Me gusta.
Pero a la vez, no me gusta.
Tampoco ha modificado el cargador de arranque, grub.
Lo podemos ver en la salida de los comandos grep.
grep -rnw /boot -e fedora34
grep -rnw /boot -e fedora_fedora
Nos indica que el cargador de arranque seguirá intentando montar el sistema de ficheros del nombre antiguo, no del renombrado. Por lo que el resultado será…
Evidentemente, esto no arranca, no encuentra el volumen.
Pero si estará correctamente referenciado y creado por lo que si edito grub a mano durante el arranque (suerte que tengo una consola y no es una máquina remota o un equipo por avocent, serial, o similar)
El caso es que faltan cosas por hacer. Cockpit no termina el trabajo y para mi gusto, lo deja todo emborronado. No e justa ir limpiando lo que una herramienta debería dejar bien, como es el caso del fichero fstab que hemos visto.
Haciendo las cosas bien. Procedimiento manual completo
Como ya hemos visto, el procedimiento por interfaz gráfica es incompleto y no está maduro.
Vamos a hacer esto de forma que podamos repetirlo y sea aplicable a cualquier sistema linux.
De momento esto está probado y es compatible con cualquier Red-Hat y derivados.
Lo primero será tener una terminal.
Ya que tengo la del cockpit, la voy a seguir usando, pero podéis usar lo que más rabia os de, un cygwin, openssh, securecrt, mobaxterm, putty, o la propia VMRC o KVM que aporte el hipervisor, o la consola física de la máquina. Eso es lo de menos, siempre que os sintáis cómodos.
Lo primero es ver la estructura física y lógica del gestor de volúmenes. No es muy difícil y tiene la información necesaria.
pvs
vgs
El primero nos dirá que volúmenes físicos soportan los grupos y la estructura y versión de los mismos.
En el ejemplo veremos que /dev/sda2 es el único disco (partición) en el sistema y donde se ubica el grupo fedora_fedora.
El segundo nos dirá más de lo mismo. El único grupo de volúmenes es fedora_fedora.
vgrename -v fedora_fedora fedora34
Vgrename nos va a hacer el cambio de nombre, lo mismo que hace el botón del primer procedimiento, con un resumen de lo que va a hacer y ha hecho.
Pues ya que tenemos el nuevo nombre, tenemos que sustituir el nombre en el fstab, los puntos de montaje.
cat /etc/fstab
sed -i 's/fedora_fedora/fedora34/g' /etc/fstab
cat /etc/fstab
Con cat, y sed, podemos editar el fichero sin un editor, lo vemos, y cambiamos lo que necesitamos, en este caso fedora_fedora por fedora34, y ver que se ha hecho correctamente.
Tenemos que decirle a grub que vamos a cambiar las condiciones en las que configurará los nuevos núcleos que descarguen las actualizaciones.
Así que lo primero, la plantilla.
cat /etc/default/grub
sed -i 's/fedora_fedora/fedora34/g' /etc/default/grub
cat /etc/default/grub
Y usamos el mísmo mecanismo que antes, ver el fichero con cat y sustituir con sed.
Ahora queda retocar los kernels y actualizar sectores de arranque, y configuraciones e imágenes.
cd /boot
dracut -f
grub2-mkconfig -o /boot/grub2/grub.cfg
grep -rnw /boot -e fedora_fedora
grep -rnw /boot -e fedora34
Es importante hacer las operaciones desde el directorio /boot, por defecto, el estándar para las operaciones de este tipo, y lo primero será actualizar el cargador de arranque.
En Fedora y otros, grub2-mkconfig leerá el fichero default que hemos modificado antes y escribirá en el fichero que le pasamos como destino. En mi caso es un esquema MBR/CMS. Si fuera un esquema UEFI/SecureBoot con GPT, el comando sería grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
.
Para saber si es un esquema UEFI o BIOS, podemos revisar con ls -ld /sys/firmware/efi
lo cual nos aportará la información de EFI o con ls -lrt /etc/grub2.cfg
lo cual nos informará de uns sistema BIOS/CMS/MBR.
Con dracut -f regeneramos la imagen para el kernel actual, el que tenemos en ejecución.
Y por último, con grep nos aseguraremos de que ya no queda nada apuntando al antiguo grupo fedora_fedora y que tenemos todo en fedora34.
Ah, y un reinicio. Solo por comprobar que hemos hecho todo correctamente.
Una vez hecho esto, podemos acceder de nuevo al panel de almacenamiento y contemplar que los cambios se han realizado, esta vez si, correctamente, y de una forma más limpia y completa.
Resumiendo y simplificando
No voy a decir nada más acerca de cockpit, puesto que es lo que es y está orientado a un par de cosas concretas.
El procedimiento es simple, y casi que se podría automatizar plenamente:
vgs
pvs
vgrename -v fedora_fedora fedora34
cat /etc/fstab
sed -i 's/fedora_fedora/fedora34/g' /etc/fstab
cat /etc/fstab
cat /etc/default/grub
sed -i 's/fedora_fedora/fedora34/g' /etc/default/grub
cat /etc/default/grub
cd /boot
dracut -f
grub2-mkconfig -o /boot/grub2/grub.cfg
grep -rnw /boot -e fedora_fedora
grep -rnw /boot -e fedora34
Sin más, un saludo. Ya volveré con más temas de LVM y todo lo que rodea al trabajo con discos y volúmenes.
YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://feedpress.me/sospechososhabituales
Y sin más, os dejo los enlaces:
Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70