Búsqueda de sitios web

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 las cuentas del sistema (usuarios) residirán en /home, excepto 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, lo que resulta en una falla en el arranque del sistema u otros problemas relacionados. Sin embargo, a veces sólo puede notar esto después de instalar su sistema y configurar todos los directorios en el sistema de archivos/partición raíz.

Lectura sugerida: Explicación de la estructura de directorios de Linux y las rutas de archivos importantes

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 partición de 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 un partición propia a continuación.

Asumiremos que ha conectado 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 está determinado por el tipo de etiqueta del disco y los primeros bytes de espacio definirán el MBR (Registro de arranque maestro ) que almacena la tabla de particiones así como el cargador de arranque (para discos de arranque).

Aunque existen muchos tipos de etiquetas, Linux sólo acepta dos: MSDOS MBR (516 bytes de tamaño) o GPT (Tabla de particiones GUID) MBR.

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

Primero debe configurar el tipo de etiqueta del disco usando fdisk o parted; Hemos utilizado el nombre de etiqueta GPT en este ejemplo.

parted /dev/sdb mklabel gpt

Nota: fdisk solo admite MBR de MSDOS por ahora y parted admite ambas etiquetas.

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

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

Explicando el comando anterior:

  • a: opción para especificar la alineación de la partición.
  • mkpart: subcomando para crear la partición.
  • primaria: establece el tipo de partición como primaria en el disco duro (otros valores son lógicos o extendidos).
  • 1074MB – inicio 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 tamaño 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

Mover el directorio de inicio a una partición dedicada

Ahora hemos agregado el nuevo disco y creado la partición necesaria; Ahora es el momento de mover la carpeta 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 prácticamente se almacenen en /dev/sdb1) usando el comando rsync o comando cp.

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

Después de eso, encontraremos la diferencia entre los dos directorios usando la herramienta de diferencias, si todo está bien, continúa con el siguiente paso.

diff -r /home /srv/home

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

rm -rf /home/*

Luego desmonte /srv/home.

umount /srv/home

Finalmente, tenemos que montar el sistema de archivos /dev/sdb1 en /home por el momento.

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

Los cambios anteriores durarán solo durante el inicio actual; agregue la línea siguiente en /etc/fstab para que los cambios sean permanentes.

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

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 la partición UUID, 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.
  • defaults: 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 correctamente 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 directorio personal 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 cualquier idea sobre este artículo a través del formulario de comentarios a continuación.