Redimensionar particiones Home y Root en CentOS

Si realizamos una instalación estándar de CentOS seguramente habremos observado que por defecto se crea una partición root muy pequeña (de 50 GB) y el resto del tamaño del disco se asigna a la partición home. Esto puede ser un problema si deseamos tener más espacio en la partición root por lo que en esta entrada voy a enseñaros como podéis disminuir el tamaño de la partición home para asignárselo a la partición root.

En primer lugar necesitamos conocer la información de la partición por lo que utilizaremos el siguiente comando.

df -hT

Nos aparecerá una pantalla con mucha información aunque lo que realmente nos interesa son los volúmenes de root y home y el tipo.

En este ejemplo vemos que el volumen root se llama /dev/mapper/cl-root y el de home /dev/mapper/cl-home y ambos son del tipo xfs.

S.ficheros          Tipo     Tamaño Usados  Disp Uso% Montado en
devtmpfs            devtmpfs   3,9G      0  3,9G   0% /dev
tmpfs               tmpfs      3,9G      0  3,9G   0% /dev/shm
tmpfs               tmpfs      3,9G   8,9M  3,9G   1% /run
tmpfs               tmpfs      3,9G      0  3,9G   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs         50G    41G  9,5G  82% /
/dev/sda1           xfs       1014M   310M  705M  31% /boot
/dev/mapper/cl-home xfs        192G   3,4G  188G   2% /home
tmpfs               tmpfs      783M      0  783M   0% /run/user/0
tmpfs               tmpfs      783M      0  783M   0% /run/user/1001

A continuación vamos a respaldar la información de la partición /home

Nos posicionamos en la raíz.

[root@server1 ~]# cd /

Creamos la carpeta home2.

[root@server1 /]# mkdir /home2

Copiamos todo el contenido de home a home2 respetando los permisos de los ficheros y carpetas que contenga.

[root@server1 /]# cp -r -p /home/* /home2

Desmontamos la partición /home

[root@server1 /]# umount /home

Eliminamos el LVM de home.

[root@server1 /]# lvremove /dev/mapper/cl-home
Do you really want to remove active logical volume cl/home? [y/n]: y
  Logical volume "home" successfully removed

Ahora ya tendremos espacio suficiente para extender la partición /root, en mi caso la extenderemos en 140 GB.

[root@server1 /]# lvextend -L 140G /dev/mapper/cl-root
  Size of logical volume cl/root changed from 50,00 GiB (12800 extents) to 140,00 GiB (35840 extents).
  Logical volume cl/root successfully resized.

Extendemos el sistema de archivos xfs.

[root@server1 /]# xfs_growfs /dev/mapper/cl-root
meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 36700160

Creamos la partición home con un tamaño de 50 GB.

[root@server1 /]# lvcreate -L 50g -n home cl
  Logical volume "home" created.

Una vez tenemos la partición le daremos el formato xfs al sistema de ficheros.

[root@server1 /]# mkfs.xfs /dev/mapper/cl-home
meta-data=/dev/mapper/cl-home    isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Montamos la partición /home.

[root@server1 /]# mount /dev/mapper/cl-home /home

Verificamos que los cambios de tamaño de las particiones se han realizado correctamente.

Podemos observar que la partición root ha pasado de 50 GB a 140 GB y que la partición /home ha pasado de 192 GB a 50 GB.

[root@server1 /]# df -hT
S.ficheros          Tipo     Tamaño Usados  Disp Uso% Montado en
devtmpfs            devtmpfs   3,9G      0  3,9G   0% /dev
tmpfs               tmpfs      3,9G      0  3,9G   0% /dev/shm
tmpfs               tmpfs      3,9G   8,9M  3,9G   1% /run
tmpfs               tmpfs      3,9G      0  3,9G   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        140G    44G   97G  32% /
/dev/sda1           xfs       1014M   310M  705M  31% /boot
tmpfs               tmpfs      783M      0  783M   0% /run/user/0
tmpfs               tmpfs      783M      0  783M   0% /run/user/1001
/dev/mapper/cl-home xfs         50G    33M   50G   1% /home

Una vez comprobado que todo es correcto copiamos el contenido que previamente salvamos en la carpeta /home2 a la carpeta /home respetando nuevamente los permisos.

[root@server1 /]# cp -r -p /home2/* /home

Por último eliminamos la carpeta /home2.

[root@server1 /]# rm -rf /home2

Y listo con estos sencillos pasos habremos cambiado los tamaños de nuestras particiones /root y /home.

Espero os haya sido de utilidad.

Entradas relacionadas

10 comentarios en «Redimensionar particiones Home y Root en CentOS»

  1. Muchas gracias Sergio por este excelente aporte.
    Una consulta: funciona igual si /root y /home son tmpfs ?

    Saludos
    Diego

    Responder
    • Hola Diego,

      Pues no lo he probado y no sabría decirte pero te animo a que montes un laboratorio, lo pruebes y nos comentes 😉

      Saludos.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.