Cómo mover el directorio de inicio a una nueva partición o disco en Linux


En cualquier sistema Linux, uno de los directorios que seguramente aumentará de tamaño tiene que ser el directorio /home . Esto se debe a que los directorios de cuentas del sistema (usuarios) residirán en/home excepto en la cuenta raíz; aquí los usuarios almacenarán continuamente documentos y otros archivos.

Otro directorio importante con el mismo comportamiento es /var , contiene archivos de registro cuyo tamaño aumentará gradualmente a medida que el sistema continúe ejecutándose, como archivos de registro, archivos web, archivos de cola de impresión, etc.

Cuando estos directorios se llenan, esto puede causar problemas críticos en el sistema de archivos raíz que resultan en fallas en el arranque del sistema u otros problemas relacionados. Sin embargo, a veces solo puede notar esto después de instalar su sistema y configurar todos los directorios en el sistema de archivos raíz/partición.

En esta guía, mostraremos cómo mover el directorio de inicio a una partición dedicada posiblemente en un nuevo disco de almacenamiento en Linux.

Instalación y creación de particiones en un nuevo disco duro en Linux

Antes de continuar, explicaremos brevemente cómo agregar un nuevo disco duro a un servidor Linux existente.

Nota: Si ya tiene una partición lista para la operación, vaya a la sección que explica los pasos para mover el directorio /home en una partición propia a continuación.

Asumiremos que ha adjuntado el nuevo disco al sistema. En un disco duro, el número de particiones que se crearán, así como la tabla de particiones, normalmente se determina por el tipo de etiqueta del disco y los primeros bytes de espacio definirán el MBR (Master Boot Record) que almacena la tabla de particiones, así como el cargador de arranque (para discos de arranque).

Aunque hay muchos tipos de etiquetas, Linux solo acepta dos: MSDOS MBR (516 bytes de tamaño) o GPT (tabla de particiones GUID) MBR.

Supongamos también que el nuevo disco duro nuevo (/ dev/sdb de tamaño 270 GB utilizado para el propósito de esta guía, probablemente necesite una mayor capacidad en un servidor para una gran base de usuarios.

Primero necesitas separarte; hemos utilizado el nombre de la etiqueta GPT en este ejemplo.

# parted /dev/sdb mklabel gpt

Nota: parted admite ambas etiquetas.

Ahora cree la primera partición (/ dev/sdb1) con un tamaño de 106 GB. Hemos reservado 1024 MB de espacio para el MBR.

# parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

Explicando el comando anterior:

  • una - opción para especificar la alineación de la partición.
  • mkpart - subcomando para crear la partición.
  • principal: establece el tipo de partición como principal en el disco duro (otros valores son lógicos o extendidos).
  • 1074 MB: comienzo de la partición.
  • 107GB - fin de la partición.

Ahora verifique el espacio libre en el disco de la siguiente manera.

# parted /dev/sdb print free

Crearemos otra partición (/ dev/sdb2) con un tamaño de 154GB.

# parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

A continuación, configuremos el tipo de sistema de archivos en cada partición.

# mkfs.ext4 /dev/sdb1
# mkfs.xfs /dev/sdb2

Para ver todos los dispositivos de almacenamiento conectados al sistema, escriba.

# parted -l

Ahora hemos agregado el nuevo disco y creado la partición necesaria; ahora es el momento de mover la carpeta de inicio a una de las particiones. Para utilizar un sistema de archivos, debe montarse en el sistema de archivos raíz en un punto de montaje: el directorio de destino, como/home.

Primero enumere el uso del sistema de archivos usando el comando df en el sistema.

# df -l

Comenzaremos creando un nuevo directorio/srv/home donde podemos montar/dev/sdb1 por el momento.

# mkdir -p /srv/home
# mount /dev/sdb1 /srv/home 

Luego, mueva el contenido de/home a/srv/home (para que se almacenen prácticamente en/dev/sdb1) usando el comando cp.

# rsync -av /home/* /srv/home/
OR
# cp -aR /home/* /srv/home/

Después de eso, encontraremos la herramienta de diferencias, si todo está bien, continúe con el siguiente paso.

# diff -r /home /srv/home

Luego, elimine todo el contenido antiguo en/home de la siguiente manera.

# rm -rf /home/*

A continuación, desmonte/srv/home.

# umount /srv/home

Finalmente, tenemos que montar el sistema de archivos/dev/sdb1 en/home mientras tanto.

# mount /dev/sdb1 /home
# ls -l /home

Los cambios anteriores durarán solo para el inicio actual, agregue la línea a continuación en/etc/fstab para que los cambios sean permanentes.

Utilice el siguiente comando para obtener el UUID de la partición.

# blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Una vez que conozca el UUID de la partición, abra el archivo/etc/fstab y agregue la siguiente línea.

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

Explicando el campo en la línea de arriba:

  • UUID: especifica el dispositivo de bloqueo; alternativamente, puede utilizar el archivo de dispositivo/dev/sdb1.
  • /home: este es el punto de montaje.
  • etx4: describe el tipo de sistema de archivos en el dispositivo/partición.
  • valores predeterminados: opciones de montaje (aquí este valor significa rw, suid, dev, exec, auto, nouser y async).
  • 0: utilizado por la herramienta de volcado, 0 significa no volcar si el sistema de archivos no está presente.
  • 2: utilizado por la herramienta fsck para descubrir el orden de verificación del sistema de archivos, este valor significa verificar este dispositivo después del sistema de archivos raíz.

Guarde el archivo y reinicie el sistema.

Puede ejecutar el siguiente comando para ver que el directorio/home se ha movido con éxito a una partición dedicada.

# df -hl

¡Eso es todo por ahora! Para comprender más sobre el sistema de archivos de Linux, lea estas guías relacionadas con la administración del sistema de archivos en Linux.

  1. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux
  2. ¿Qué es Ext2, Ext3 y Ext4 y cómo crear y convertir sistemas de archivos Linux?
  3. 7 formas de determinar el tipo de sistema de archivos en Linux (Ext2, Ext3 o Ext4)
  4. Cómo montar un sistema de archivos o directorio remoto de Linux usando SSHFS sobre SSH

En esta guía, le explicamos cómo mover el directorio/home a una partición dedicada en Linux. Puede compartir sus pensamientos sobre este artículo a través del formulario de comentarios a continuación.