Cómo aumentar el tamaño de una partición de Linux ya existente LVM. Incrementaremos el tamaño de la partición del sistema sin usar herramientas de terceros, directamente desde el propio Linux. Usaremos Linux CentOS 7, aunque el proceso es muy similar para otras distribuciones con Red Hat, Fedora, Ubuntu, Mint, Debian, etc.
- Aumentar el tamaño del disco duro virtual desde el entorno de virtualización.
- Extender el tamaño aumentado del disco a la partición LVM del sistema de Linux.
Aumentar el tamaño del disco duro virtual desde el entorno de virtualización
En primer lugar necesitaremos aumentar el tamaño del disco duro de la máquina virtual. Esto lo haremos desde el sistema de virtualización que estemos usando. Por ejemplo, desde VMware, procederemos como indicamos en estos artículos:
Extender el tamaño aumentado del disco a la partición LVM del sistema de Linux
En primer lugar mostraremos las unidades disponibles en el equipo y su espacio. Podremos hacer esto, accediendo a la en la máquina Linux y en el shell ejecutaremos el comando:
1 |
df -h |
En nuestro caso ampliaremos la unidad raíz / que actualmente tiene 13GB y hemos aumentado en el disco duro de la máquina virtual VMware a 300GB. Como se puede observar, de momento, ese aumento de espacio no se ve reflejado, hay que hacer unas operaciones, que ahora mostramos, para extenderlo.
Listaremos los discos/particiones disponibles en el sistema tras la ampliación del tamaño del disco duro desde VMware. Para ello ejecutaremos el siguiente comando:
1 |
fdisk -l |
Nos mostrará algo así:
Vemos que aparece el disco /dev/sda con el tamaño aumentado a 300GB. Pero este tamaño aumentado aún no ha sido extendido en el volumen LVM correspondiente, por ello aún no está disponible. Lo importante de los resultados de este dato es el identificativo del disco a extender, en nuestro caso el /dev/sda.
Tras obtener el identificativo del disco, accederemos a su edición con el comando:
1 |
fdisk /dev/sda |
Dentro de la edición de fdisk, realizaremos lo siguiente:
- Pulsaremos «p» para mostrar las particiones actuales.
- Pulsaremos «n» para crear una nueva partición.
- Introduciremos «p» para que sea partición primaria.
- Introduciremos «3» para establecer el número de partición que le corresponde.
- Pulsaremos INTRO dos veces, una para establecer el primer sector por defecto y la otra para establecer el último sector por defecto.
- Por último, pulsaremos «w» para guardar los cambios.
Puede que nos muestre este aviso:
WARNING: Re-reading the partition table failed with error 16: Dispositivo o recurso ocupado.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Se están sincronizando los discos.
Ejecutamos el siguiente comando para releer las particiones:
1 |
partprobe |
y volvemos a hacer un:
1 |
fdisk -l |
Comprobando que aparece la nueva partición:
Por seguridad y al tratarse de la unidad del sistema, reiniciaremos el equipo:
1 |
shutdown -r now |
El siguiente paso será convertir la partición creada /dev/sda3 a volumen físico. Para ello ejecutaremos el comando:
1 |
pvcreate /dev/sda3 |
Si todo es correcto nos devolverá:
Physical volume «/dev/sda3» successfully created.
Ahora vamos a extender el volumen físico nuevo creado a un grupo de volumen existente. Antes de hacerlo, consultaremos los grupos de volúmenes que tenemos en el sistema para anotar el nombre del grupo que queramos extender. Para ello ejecutaremos el siguiente comando:
1 |
vgdisplay |
En nuestro caso el grupo de volumen a extender tiene el nombre «centos».
Procederemos a extender el volumen físico creado /dev/sda3 al grupo de volumen «centos»:
1 |
vgextend centos /dev/sda3 |
Volume group «centos» successfully extended
Para comprobar que el grupo de volumen «centos» dispone ahora del nuevo espaco de volumen físico «/dev/sda3» podremos ejecutar el siguiente comando:
1 |
vgdisplay centos | grep "Free" |
que nos mostrará algo así como:
Free PE / Size 72930 / 284,88 GiB
Ahora extenderemos el volumen lógico, pero antes conviene saber los volúmenes lógicos de nuestro sistema y su nombre, para elegir el volumen lógico al que asignaremos el espacio. Para listar los volúmenes lógicos ejecutaremos el comando:
1 |
lvdisplay |
En nuestro sistema Linux dispondemos de dos volúmenes lógicos, uno para swap y el otro, el que nos interesa, para el sistema operativo. Anotaremos su nombre, en nuestro caso «root».
Ahora que conocemos el nombre del grupo de volumen («centos») y del volumen lógico a extender («root»), ejecutamos el siguiente comando para extender el volumen lógico 284,88GB:
1 |
lvextend -l +284,88G /dev/centos/root |
Si queremos que la extensión se haga sobre el tamaño libre total podremos usar el comando:
1 |
lvextend -l +100%FREE /dev/centos/root |
En nuestrocaso, introduciremos el tamaño a ampliar 284,88G, que se pudo consultar anteriormente con el resultado del comando vgdisplay centos | grep «Free». Y extenderemos el volumen lógico «root» del grupo de volumen «centos».
Si todo es correcto nos devolverá:
Rounding size to boundary between physical extents: 284,88 GiB.
Size of logical volume centos/root changed from 12,60 GiB (3226 extents) to 297,48 GiB (76156 extents).
Logical volume centos/root successfully resized.
Por último, expandiremos el sistema de archivos del volumen lógico, para ello ejecutaremos el siguiente comando:
1 |
xfs_growfs /dev/centos/root |
El comando anterior variará en función del sistema de ficheros. Si es ext3 podremos usar el comando ext2online, si no es Red Hat podremos usar el comando resize2fs.
En nuestro caso, para un equipo Linux CentOS 7 y partición XFS hemos usado satisfactoriamente el comando xfs_growfs:
Ahora ya dispondremos del espacio total en la unidad. Podremos comprobarlo ejecutando:
1 |
df -h |