OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Gestión de LVM por consola en Mandriva
Hola.
Estaba de vacaciones en mi cueva, cuando me dió el penterre y decidí terminar de solucionar algunos flecos que tenía pendientes en la instalación del sistema en la Bestiaparda, ya que en febrero hubo un desastre en forma de muerte de disco duro (el de los backups, tócate las gónadas) que tiró todo el sistema. El resumen rápido es que al petar el disco habían un par de particiones críticas montadas y se fué todo al garete. Murphy, ese cabrón...
Como no tengo mucho tiempo libre, pues fui levantando servicios y máquinas virtuales a salto de mata, particionando aquí y allá y aquello acabó con un galimatías de particiones, discos duros virtuales de VirtualBox, espacio sin particionar, esporas, moho y hongos.
Bueno, la cosa es que metí un LVM y me lié a reparticionar / redimensionar / crear / mover / borrar particiones, y noté que nuestro querido diskdrake tiene un soporte para LVM entre pésimo y lamentable. Muchas de las grandes ventajas que tiene LVM, como adiciones de particiones en caliente, cambios de tamaño sin mirar y a lo bestia y cosas así, no funcionan. Supongo que porque interpreta las particiones incluídas como particiones clásicas.
Como soy un BOFH malvado y cruel, empecé a empaparme sobre administración y manejo de LVM's para tirar de consola y hacerle guarreridas españolas al susodicho. He aquí un pequeño apunte sobre cómo manejar este interesante sistema de organización de particiones.
Si os entra la vena aventurera y decidís poner en práctica algunos de los arcanos conjuros que aquí menciono, os recomiendo ENCARECIDAMENTE que hagais backup completo y total de vuestro sistema, o la liaréis parda. MUY parda. Si os baila el dedo y se pierde vuestra colección de tías de la edad media en bolas, reclamaciones al maestro armero.
Lo haremos por partes. Primero, algo de teoría. Luego usaremos un caso real (el mío) para ver cómo, dónde, por qué y por cuánto sale la mayoría de comandos principales de gestión de LVM.
Teoría. Leer antes de jugársela.
LVM es, a grandes rasgos, un gran contenedor. Tú defines un LVM, dándole un nombre (pongamos por caso Mandriva1) y en él puedes ir añadiendo soportes de almacenamiento. Pensad que el LVM es un ente abstracto. No hay un LVM "físico". Tú pillas un disco, lo formateas total o parcialmente como volumen físico LVM y lo añades al grupo de volúmenes. Tal cual. Luego, ése volumen físico añadido al grupo se convierte en espacio libre dentro del LVM, y que podemos usar para definir volúmenes lógicos (particiones).
Por tanto, el esquema (de arriba a abajo) es:
1. Un grupo de volúmenes que engloba a:
2. Todos los discos y particiones que han sido formateados como volumen físico y añadidos al grupo.
3. Todos los volúmenes lógicos que se han definido para usarlos como sistemas de ficheros.
Práctica. Pasando de particiones tradicionales a LVM
Bueno, partimos de un disco duro de 360GB en el que se hizo un particionamiento rápido, duro y feo tal que así:
- Partición boot de 175 mb
- Partición raíz de 6Gb: El sistema
- Partición home de 15Gb: Aquí las cuatro tontunadas que he ido acumulando desde febrero
- Partición torrents de 30Gb: Aquí tenemos los torrents mandriveros que voy sembrando.
- Partición virtual de 20Gb: Aquí están las máquinas virtuales de mi servidor de correo y el servidor web del blog y el cliente irc.
- Partición swap de 4Gb
- Espacio libre total +/- 285Gb: Aquí no hay nada.
Todos los sistemas de archivos son ext4.
El objetivo será el siguiente:
- Partición boot de 175 mb
- LVM con el resto del espacio libre, menos 4Gb, dividido en:
- Partición raíz de 10 Gb
- Partición home de 50 Gb
- Partición amule de 30 Gb
- Partición home/descargas de 20Gb
- Partición repos de 50Gb inicialmente, luego la reduciremos
- Partición torrents de 20Gb
- Partición var de 2 Gb
- Partición virtual de 20 Gb inicialmente, luego la aumentaremos
- El resto del espacio asignado al LVM (unos 150Gb), quedará marcado como espacio libre sin particionar
- Partición swap de 4Gb
De nuevo, todos los sistemas de ficheros serán ext4.
LVM no se acaba de llevar bien con grub. Así que dejaremos a /boot fuera del tinglado.
Necesitaremos un live-CD (o incluso un dual-arch y usar la consola de recuperación) para poder acceder a la partición raíz desmontada. Por lo demás, podremos usar el sistema base instalado, aunque en algunos momentos haya que hacerlo en modo monousuario (cuando tengamos que tocar /home y /var, por ejemplo).
También necesitaremos que el kernel usado soporte a LVM (lo habitual en distros actuales) y tener instaladas las herramientas de administración. Esto no lo tengo tan claro, pero por si acaso:
[root@bestiaparda~]# urpmi lvm2
En su caso, urpmi arrastrará las dependencias necesarias.
Si no os quereis complicar la vida, y a pesar de las notas que voy dejando de si ésto se puede hacer sin live-cd, esto otro en monousuario y blablabla, lo mejor es que desde éste punto, arranqueis un live-CD y no os compliqueis la vida.
Bueno, una vez tenemos todo en marcha, lo primero que tenemos que hacer es usar diskdrake, fdisk o lo que nos parezca, para crear una partición que ocupe el espacio libre de nuestro disco duro y darle formato LVM.
Cuando tengamos nuestra partición lista (en mi caso habrá quedado como /dev/sda4) la inicializaremos para usarla como volumen físico de nuestro LVM:
[root@localhost ~]# pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created
Posteriormente, creamos nuestro grupo de volumen y añadiremos a él nuestra partición:
[root@localhost ~]# vgcreate MANDRIVA1 /dev/sda4 Volume group "MANDRIVA1" successfully created
Ya podemos empezar a crear volúmenes lógicos para ir añadiendo datos. Por ejemplo, para crear un volumen lógico que hospede a nuestro nuevo /torrents:
[root@localhost /]# lvcreate -L30G -n torrents MANDRIVA1 Logical volume "torrents" created
Fijaos que le he puesto el mismo nombre del directorio. Estamos dándole un nombre al volumen lógico, no al punto de montaje.
...Y así para todos los volúmenes lógicos que vayamos necesitando. Nos centraremos en éste para el resto de operaciones básicas.
Una vez tenemos el volumen lógico creado, lo convertimos a ext4 y creamos el sistema de ficheros:
[root@localhost /]# mkfs.ext4 /dev/MANDRIVA1/torrents mke2fs 1.41.4 (27-Jan-2009) Etiqueta del sistema de ficheros= Tipo de SO: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) 65536 nodos-i, 262144 bloques 13107 bloques (5.00%) reservados para el superusuario Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=268435456 8 bloque de grupos 32768 bloques por grupo, 32768 fragmentos por grupo 8192 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 32768, 98304, 163840, 229376 Escribiendo las tablas de nodos-i: hecho Creating journal (8192 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: hecho Este sistema de ficheros se revisará automáticamente cada 29 montajes o 180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
Ya sé que el tamaño de los bloques, nodos y blablaba no coinciden, esto es un copypaste de una partición de pruebas mucho más pequeña.
Luego creamos un directorio temporal donde montar el volumen lógico y lo montamos:
[root@bestiaparda /]# mkdir temporal [root@bestiaparda /]# mount /dev/MANDRIVA1/torrents /temporal
Y podremos copiar el contenido de la partición original como creamos conveniente. Para éste tipo de cosas, uso rsync, que es una chulada que nos permite conservar los atributos y permisos de los archivos:
[root@bestiaparda /]# rsync -av /torrents/ /temporal/ ...
Supongamos que una vez volcados los datos, vemos que la partición tiene mucho espacio libre. Pues vamos a reducirla para ajustarla:
[root@bestiaparda /]# umount /temporal [root@bestiaparda /]# e2fsck -f /dev/MANDRIVA1/torrents e2fsck 1.41.4 (27-Jan-2009) Paso 1: Verificando nodos-i, bloques y tamaños Paso 2: Verificando la estructura de directorios Paso 3: Revisando la conectividad de directorios Paso 4: Revisando las cuentas de referencia Paso 5: Revisando el resumen de información de grupos /dev/MANDRIVA1/torrents: 137/65536 ficheros (0.0% no contiguos), 13709/262144 bloques [root@bestiaparda /]# resize2fs /dev/MANDRIVA1/torrents 20G resize2fs 1.41.4 (27-Jan-2009) Resizing the filesystem on /dev/MANDRIVA1/torrents to 25600 (4k) blocks. El sistema de ficheros en /dev/MANDRIVA1/torrents tiene ahora 25600 bloques. [root@bestiaparda /]# lvreduce -L -10G /dev/MANDRIVA1/torrents WARNING: Reducing active logical volume to 20,00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce move? [y/n]: y Reducing logical volume torrents to 20 GB Logical volume move successfully resized [root@bestiaparda /]#
En cristiano:
- Desmontamos el volumen lógico de su punto de montaje temporal con umount
- Pasamos un e2fsck al volumen lógico, forzando con -f
- Cambiamos el tamaño del sistema de archivos del volumen lógico con resize2fs, indicándole el nuevo tamaño (20G)
- Cambiamos el tamaño del volumen lógico con lvreduce. El parámetro -L -10G indica en cuánto lo vamos a reducir, no el tamaño que tendrá
- Cuando nos avisa de que se pueden perder datos, le damos a "y" y cruzamos los dedos
- yastá
Un pequeño addendum. Hemos visto el método para reducir un volumen lógico con un sistema de ficheros creado. En el caso de que queramos expandirlo, el método varía. Supongamos que nos equivocamos y ahora queremos aumentar el volumen Lógico torrents en 10Gb (y ya lo tenemos desmontado del sistema de archivos):
[root@bestiaparda /]# lvextend -L+10G /dev/MANDRIVA1/torrents Extending logical volume torrents to 30,00 GB Logical volume torrents successfully resized [root@bestiaparda /]# e2fsck -f /dev/MANDRIVA1/torrents e2fsck 1.41.4 (27-Jan-2009) Paso 1: Verificando nodos-i, bloques y tamaños Paso 2: Verificando la estructura de directorios Paso 3: Revisando la conectividad de directorios Paso 4: Revisando las cuentas de referencia Paso 5: Revisando el resumen de información de grupos /dev/MANDRIVA1/torrents: 14/837184 ficheros (0.0% no contiguos), 90319/3358720 bloques [root@bestiaparda /]# resize2fs /dev/MANDRIVA1/torrents resize2fs 1.41.4 (27-Jan-2009) Resizing the filesystem on /dev/MANDRIVA1/torrents to 4669440 (4k) blocks. El sistema de ficheros en /dev/MANDRIVA1/torrents tiene ahora 4669440 bloques. [root@bestiaparda /]#
En este caso:
- Extendemos el volumen lógico, usando el parámetro -L-10G. Donde 10G es la cantidad de gigas en que va a aumentar
- Pasamos el e2fsck, forzando la comprobación con -f
- Expandimos el sistema de ficheros con resize2fs
Bueno, ahora toca modificar /etc/fstab para que reconozca la nueva partición. Tened en cuenta que si estais en un live-CD, el fstab debe ser el que esté en el disco duro que estamos modificando. Si picamos un "vi /etc/fstab" por las buenas, estaremos modificando el del live. Ya sé que parece una tontunada la mar de obvia, peeero es que ya nos vamos conociendo todos.
Entrada original de la partición /torrents:
# Entry for /dev/sda8 : UUID=e53b4b2b-1f75-46b6-bd75-be25c02107d2 /torrents ext4 relatime 1 2
Entrada modificada:
/dev/MANDRIVA1/torrents /torrents ext4 relatime 1 2
Y así con todas.
Y ahora viene lo bueno. Vamos a eliminar la partición original /torrents (sda8), y añadiremos el espacio liberado al LVM para seguir echando unas risas.
Una vez más, para eliminar la partición que ya hemos volcado al LVM podemos usar el método que creamos conveniente: diskdrake, fdisk... lo que sea. Pero hay que contar que no pueden ser particiones en uso (si estamos manipulando /home o /var o /usr si están por separado, por ejemplo) y mucho menos la partición raíz. Para particiones que estén siendo usadas por el sistema, el camino pasa por usar un Live-CD.
Una vez liberado el espacio de la partición, procedemos a añadir dicho espacio al LVM. Aquí asumimos que la partición liberada es sda8:
[root@bestiaparda ~]# pvcreate /dev/sda8 Physical volume "/dev/sda8" successfully created [root@bestiaparda ~]# vgextend MANDRIVA1 /dev/sda8 Volume group "MANDRIVA1" successfully extended
Chulo, eh? Pues hala, a ir volcando particiones de datos.
Hete aquí la gran dificultad. Lo único que me costó un poco fueron los malabarismos con las particiones que tenía que ir moviendo / eliminando para tener espacio suficiente en el volcado. Pero por lo demás, los comandos son los que son, y se aplican como se han mostrado.
- Blog de vfmmeo
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 89720 initrd
Hay un pequeño gran problema que me he encontrado tratando de hacer este tipo de cosas con Mandriva 2009.1:
Resulta que ahora la partición raíz se monta usando el UUID, lo cual es muy útil ya que nos permite independizarnos del nombre del dispositivo (/dev/sdxxx) el cual puede variar si se agregan o quitan dispositivos.
Pero ocurre que ahora Mandriva al crear la initread, mete en el script el montaje del disco raíz utilizando el UUID, asi que el raíz no se puede cambiar de disco sin regenerar la initread.
No es que sea gravísimo el problema pero dificulta lo que antes era una tarea casi trivial, como por ejemplo copiar el sistema completo de un disco a otro cuando hay algún problema de hardware o se cambia el disco por uno más grande.
Usuario
# 98258 Hola a todos: ANV: No es tan
Hola a todos:
ANV:
No es tan complicado el cambio de disco.
edita edita el /etc/fstab y reemplaza ell uuid por /dev/sda1 o por el que indique tu instalacion de root.
Luego puedes generar el uuid y ponerlo otra vez. Asi mantienes las bondades del uuid.
-
Saludos
-----------------------------------
¿ Es el hombre una creacion de Dios, o es Dios una creacion del hombre ?
-
Saludos
-----------------------------------
¿ Es el hombre una creacion de Dios, o es Dios una creacion del hombre ?
Usuario
# 110650 En particiones cifradas
Faltaría lanzar éste comando antes de hacer el resize2fs para que funcione:
Visto aquí:
https://help.ubuntu.com/community/ResizeEncryptedPartitions
Por cierto, con Mandriva 2010.2 funciona todo ok por el diskdrake salvo ésto del cifrado, imagino que se habrá avanzado desde que se escribió esta entrada. De todos modos, está de lujo saberlo para hacerlo por línea de comandos cuando las cosas se tuercen, muchas gracias!