# Usando el LVM

# Usando el LVM (Logical Volume Manager)

## Qué es el LVM?
En los tutoriales de esta página, y específicamente cuando instalamos Linux (Ubuntu), recomendamos instalarlo con el `lvm` ya instalado y funcionando (lo cual es lo que Ubuntu ofrece desde el vamos). Si lo hiciste de esta forma, quizás te encuentres con algo interesante: Sin importar el espacio con el que tu disco cuente, sólo vas a tener 100 GB disponibles si revisas el espacio libre:

[![df_lvm_default.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-4-42-06-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-4-42-06-p-m.png)

Esto ocurre porque Ubuntu instaló el LVM, que es un gestor de "discos virtuales", e instaló el sistema operativo en un *logical volume* (dicho disco virtual, llamado un volumen lógico) con 100 GBs. En este disco vamos a instalar todos nuestros contenedores (programas) y demás, pero si nos manejamos de esta forma, podemos *designar cuánto espacio vamos a querer dedicarle a la data de nuestros otros servicios*, guardando la música de nuestro Spotify o las pelis y series de nuestro Netflix en otros *logical volumes* con espacio delimitado, por ejemplo 200 GBs para música y 500 para películas, etc.

El LVM nos permite incorporar varias unidades físicas (como podrían ser el disco rígido de la computadora y un disco rígido externo) en una sóla unidad lógica (llamada *volume group*), sin tener que preocuparnos nosotrxs por qué va a parar adónde en esos discos.
Si querés más info sobre cómo funciona esto, la página de [red hat](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/overview-of-logical-volume-management_configuring-and-managing-logical-volumes) tiene una buena descripción.

## Usando el lvm
En principio, la instalación de linux ya va a tener el lvm instalado y configurado, con sus unidades fundamentales ya definidas: Un *volume group* (vg), que va a agrupar los volúmenes que creemos, y un *logical volume* (lv) dentro de ese vg, normalmente de 100 GBs. Por lo tanto, nos vamos a enfocar en tres procesos básicos:
- Crear un lv
- Modificar el tamaño de un lv
- Eliminar un lv

### Crear un Logical Volume

Lo primero que tenemos que hacer para esto es averiguar cuánto espacio sin asignar tenemos en nuestro vg, ya que este es el que vamos a tener disponible para asignar a nuestro lv. Para esto, vamos a escribir:

`sudo vgdisplay`

[![lvdisplay_espacio_libre.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-4-53-52-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-4-53-52-p-m.png)

Podemos ver, por ejemplo, que tenemos alrededor de 196 GBs libres, sin utilizar. Armemos un lv con 150 GBs llamado "navidrome". Para hacer esto, vamos a utilizar el comando `lvcreate`, que se escribe de la siguiente forma:

lvcreate -L \<tamaño> -n \<nombre> \<vg del que obtenemos el espacio>

<p class="callout danger">Como en todo lo que es linux, es importante prestar atención a <b>las mayúsculas y minúsculas</b> en lo que escribimos. La opción "-L" es con L mayúscula, mientras que la opción "-n" es con n minúscula.</p>

El nombre el vg lo podemos ver en lo que nos devolvió el `vgdisplay` más arriba: es "ubuntu-vg". Así que, con esto en mente, el comando que tendríamos que escribir es:

`sudo lvcreate -L 150G -n navidrome-lv ubuntu-vg`

[![Captura de pantalla 2026-01-21 a la(s) 5.10.03 p. m..png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-5-10-03-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-5-10-03-p-m.png)

Ya creado, podemos verlo usando el comando `sudo lvs`:

[![sudo_lvs.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-5-11-13-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-5-11-13-p-m.png)

Sin embargo, todavía no lo podemos usar; tenemos que formatearlo con un sistema de archivos y tenemos que montarlo en algún directorio. Para esto, necesitamos ver dónde está ubicado el disco; en Linux, [todo es un archivo](https://ihaveapc.com/2025/09/understanding-linuxs-everything-is-a-file-concept/). Esto significa que la mayoría de las cosas (dispositivos como el teclado, discos rígidos, los logic volumes, o los mismos programas que corremos) figuran en el navegador como archivos (o, más bien, abstracciones de lo que representan a archivos). Para ubicar nuestro nuevo lv, vamos a buscar en el *mapper*, que son como "accesos directos" a los discos:

`ls /dev/mapper`

Esto nos va a mostrar los dispositivos de almacenamiento que tenemos disponibles en el server:

[![ls_mapper.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-04-03-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-04-03-p-m.png)

En este caso, podemos ver que tenemos esas dos opciones:
- ubuntu--vg-navidrome--lv
- ubuntu--vg-ubuntu--lv

Nos interesa formatear el lv de navidrome, así que vamos a utilizar su dirección: `/dev/mapper/ubuntu--vg-navidrome--lv`

El comando que vamos a utilizar es mkfs, específicamente vamos a usar su variante que formatea el archivo a ext4; `mkfs.ext4`:

`sudo mkfs.ext4 /dev/mapper/ubuntu--vg-navidrome--lv`

[![mkfs_ext4.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-08-26-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-08-26-p-m.png)

Una vez formateado el volumen, estamos listos para montarlo (sería asignarle un lugar en la jerarquía de directorios en donde estén las cosas que contiene; en Windows este proceso se hace automáticamente y figura como `D:\\`o `C:\\`, etc.), para esto,  primero vamos a crear el directorio al que lo vamos a montar:

`sudo mkdir /mnt/musica`

Luego, vamos a usar el comando `mount`:

`sudo mount /dev/mapper/ubuntu--vg-navidrome--lv /mnt/musica`

Y listo! Ya tenemos nuestro volumen montado y listo para usar. Podemos corroborarlo usando el comando `lsblk`:

[![lsblk_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-20-38-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-20-38-p-m.png)

Además de esto, podemos ver que figura entre los discos montados cuando usamos el comando para ver el espacio libre `df` (usamos el "flag" -h para ver el espacio que tienen disponible en unidades "de humanos", MBs y GBs):

[![df_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-24-30-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-24-30-p-m.png)

(Es el último elemento de la lista; a la izquierda vemos el dispositivo, el lv, y a la derecha vemos dónde está montado)

Nos queda únicamente un último paso: Encargarnos de que se monte automáticamente cada vez que encendemos la compu. Para esto, vamos a usar un archivo llamado `fstab`, que está ubicado en `/etc/fstab`. Vamos a necesitar obtener el UUID del volumen a montar, y para esto vamos a usar el comando `lsblk -f`  (la opción -f es importante acá):

[![lsblk_f_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-57-33-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-57-33-p-m.png)

Podemos ver la UUID abajo (si la pantalla es grande, al lado) del volúmen que queremos agregar.

Ahora que tenemos el UUID, lo sumamos al fstab; vamos a tener que abrir el archivo `/etc/fstab` con un editor de texto (como `nano`), e instertar la siguiente línea:

`UUID=<el UUID del disco> <punto de montado> <formato de sistema de archivos> defaults 0 2`

Nótese que el defaults 0 2 va a ser siempre igual; lo que cambia es lo de la izquierda.
Para el ejemplo con el que venimos trabajando, sería:

`UUID=55c52d68-4199-41ae-99c1-d00102b3ecf1 /mnt/musica ext4 defaults 0 2`

Con el comando `sudo nano /etc/fstab` se nos abre el editor:

[![fstab_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-8-02-38-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-8-02-38-p-m.png)

Como siempre, guardamos (en nano) con `Ctrl+o` y  salimos con `Ctrl+x`.

Una vez hechos los cambios, probamos si nuestro fstab funciona con el comando `sudo mount -a`, que monta todos los volúmenes que figuran en el fstab:

[![chequeo_fstab_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-8-07-06-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-8-07-06-p-m.png)

Como suele pasar en Linux, la ausencia de mensaje se lee como ausencia de error: Todo funcionó bien.

Y ahora sí! Ya tenemos nuestro nuevo volúmen montado y listo para ser utilizado de forma permanente :)

### Modificar el espacio de un Logical Volume

Modificar el espacio del que dispone el volumen es simple; utilizamos el comando `lvextend` para ampliar el espacio, y `lvreduce` para achivarlo.

<p class="callout warning">Cuando reducimos el espacio de un volumen, hay que tener mucho cuidado; si lo reducimos a un tamaño menor al de los datos que tiene almacenados, es muy probable que perdamos esa información de forma irreversible.</p>

#### Reducir el espacio de un lv

Para reducir el espacio, como mencionamos más arriba, vamos a usar el comando `lvreduce`. La sintaxis es muy similar a la de `lvcreate` que vimos más arriba:

`sudo lvreduce --resizefs -L <nuevo tamaño> <volumen a reducir>`

En -L, podemos poner un tamaño absoluto, como puede ser 100G para 100 Gbs, o podemos poner un tamaño relativo, como -20G para restarle 20 Gbs al total del volúmen:

[![lvreduce_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-32-39-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-32-39-p-m.png)

Podemos ver cómo se redujo el tamaño del volúmen de 150 Gb a 130 Gb.

Como podemos ver, para hacer esta operación el programa nos pide desmontar el volúmen. Esto significa que si queremos montarlo de nuevo, vamos a tener que volver a correr el comando `mount` como vimos más arriba (en la sección de crear un lv).

#### Expandir el espacio de un lv

Para expandir el espacio, el proceso va a ser similar al que vimos en cómo reducir el espacio; vamos a usar el comando `lvextend`:

`sudo lvextend --resizefs -L <nuevo tamaño> <volumen a expandir>`

Como antes, la opción --resizefs se encarga de que además de cambiar le tamaño del volúmen cambie el tamaño de su sistema de archivos, y la opción -L tamaños absolutos como 50G o relativos como +20G:

[![lvextend_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-37-56-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-37-56-p-m.png)

### Eliminar un Logical Volume

En algunos casos, también, podríamos llegar a querer eliminar un lv. El proceso para hacerlo es simple, pero siempre hay que tener mucho cuidado, ya que **podemos perder permanentemente la data almacenada en ese volúmen**.

La única consideración es que, antes de eliminarlo, debemos desmontarlo con el comando `umount` (sí, no *unmount*, **umount**)

`sudo umount /mnt/musica`
(nótese que usamos el lugar donde está montado, no la "dirección del volúmen")

[![umount_musica.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-42-53-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-42-53-p-m.png)

Hecho esto, vamos a usar el comando `lvremove` para eliminar el volúmen:

[![lvremove_navidrome.png](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/scaled-1680-/captura-de-pantalla-2026-01-21-a-las-7-43-50-p-m.png)](https://wiki.cuquiweb.xyz/uploads/images/gallery/2026-01/captura-de-pantalla-2026-01-21-a-las-7-43-50-p-m.png)

Y listo, el volúmen ya no existe más.

Como tuvimos que agregarlo al fstab cuando lo creamos, ahora deberíamos eliminarlo de la lista modificando nuevamente el archivo `/etc/fstab`, eliminando la línea que lo monta al encender la computadora. (Revisá la sección de cómo crear un Logical Volume para ver más info al respecto)