Home Linux Linux, mover /home a un nuevo disco duro

Linux, mover /home a un nuevo disco duro

by José Luis Sánchez Borque

Es habitual ver instalaciones con un único disco duro. Instalaciones donde no se tiene en cuenta la mejora de rendimiento al separar la información adecuadamente.

En nuestro caso la idea es montar /home en un nuevo disco duro, mejorando el tiempo de acceso del sistema y usuarios al estar la información separada en dos discos duros. Lo mismo serviría para una BBDD de un SQL, etc.

Nuestro escenario está virtualizado. Veamos la instalación inicial.

¿Cuánto espacio tenemos libre?

root@ubun:~# df –h

Filesystem Size Used Avail Use% Mounted on

udev 477M 0 477M 0% /dev

tmpfs 100M 3,2M 97M 4% /run

/dev/sda1 98G 1,8G 91G 2% /

tmpfs 497M 0 497M 0% /dev/shm

tmpfs 5,0M 0 5,0M 0% /run/lock

tmpfs 497M 0 497M 0% /sys/fs/cgroup

tmpfs 100M 0 100M 0% /run/user/1000

Toda la estructura de linux cuelga de /

Pasemos a ver la estructura de las particiones.

root@ubun:~# fdisk –l

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x05221831

Device Boot Start End Sectors Size Id Type

/dev/sda1 * 2048 207620095 207618048 99G 83 Linux

/dev/sda2 207622142 209713151 2091010 1021M 5 Extended

/dev/sda5 207622144 209713151 2091008 1021M 82 Linux swap

Calculemos un poco, que hay que entender las cosas…

100 GiB = 100 * 1024 *1024 * 1024 = 107374182400 bytes

Si cada Sector ocupa 512 bytes, el disco duro tiene un total de:

Total Sectors = 107374182400 / 512 = 209715200 sectors

El disco tiene tres particiones. La principal de 99 G, tipo 83 linux, donde se guarda toda la información. Raíz: /

/dev/sda1 * 2048 207620095 207618048 99G 83 Linux

Una de intercambio, tipo 82 Linux Swap, que actúa como memoria para liberar espacio de la RAM cuando se han de ejecutar nuevas aplicaciones. Se puede profundizar más en el siguiente enlace:

/dev/sda5 207622144 209713151 2091008 1021M 82 Linux swap

En nuestro caso la partición de Swap tiene el mismo tamaño que la memoria RAM. Que normalmente es lo aconsejable.

Apagamos la máquina para añadir un Segundo disco duro:

root@ubun:/# init 0

Añadimos un segundo disco duro de 200 GB. Posteriormente lo utilizaremos para montar /home allí.

  • Pasos para poder utilizar un disco en Linux:
  1. Crear una partición fdisk
  2. Crear el sistema de archivos mkfs
  3. Montarlo en una carpeta vacía dentro de la estructura / mount
  4. Si queremos que al arrancar esté disponible de forma automáica editar archivo /etc/fstab

Veamos el nuevo disco con fdisk:

root@ubun:~# fdisk -l

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x05221831

Device Boot Start End Sectors Size Id Type

/dev/sda1 * 2048 207620095 207618048 99G 83 Linux

/dev/sda2 207622142 209713151 2091010 1021M 5 Extended

/dev/sda5 207622144 209713151 2091008 1021M 82 Linux swap / Solaris

Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Importante… cada disco duro se gestiona dentro de /dev/sdX, donde X corresponde con el número de disco. Eso lo hace Linux de forma automática

  • Primer disco duro /dev/sda
  • Segundo disco duro /dev/sdb

Cómo vemos no aparece particionado…. Tenemos que gestionar las particiones mediante el comando fdisk. Podemos encontrar el procedimiento detallado en el siguiente enlace:

En nuestro caso crearemos una única partición que ocupe todo el disco /dev/sdb. Veamos el resultado final

root@ubun:~# fdisk /dev/sdb –l

Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x809fef8c

Device Boot Start End Sectors Size Id Type

/dev/sdb1 2048 419430399 419428352 200G 83 Linux

Creamos el sistema de archivos ( equivalente al format de Windows ):

root@ubun:~# mkfs -t ext4 /dev/sdb1

mke2fs 1.42.13 (17-May-2015)

Se está creando un sistema de ficheros con 52428544 bloques de 4k y 13107200 nodos-i

UUID del sistema de ficheros: b5bd8878-6b7d-4006-b03f-7b60c91c0a40

Respaldo del superbloque guardado en los bloques:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000, 7962624, 11239424, 20480000, 23887872

Reservando las tablas de grupo: hecho

Escribiendo las tablas de nodos-i: hecho

Creando el fichero de transacciones (32768 bloques): hecho

Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Vamos a montarlo en la estructura de / para poder utilizarlo…. Crearemos una carpeta en /mnt ( suele ser un clásico.. aunque se puede crear donde uno quiera )

root@ubun:~# mkdir /mnt/disco-home

Veamos la carpeta creada con ls

root@ubun:~# ls -l /mnt

total 4

drwxr-xr-x 2 root root 4096 sep 29 17:22 disco-home

Y ahora lo montamos para poder utilizarlo:

root@ubun:~# mount /dev/sdb1 /mnt/disco-home/

root@ubun:~# df –h

Filesystem Size Used Avail Use% Mounted on

udev 477M 0 477M 0% /dev

tmpfs 100M 3,2M 97M 4% /run

/dev/sda1 98G 1,8G 91G 2% /

tmpfs 497M 0 497M 0% /dev/shm

tmpfs 5,0M 0 5,0M 0% /run/lock

tmpfs 497M 0 497M 0% /sys/fs/cgroup

tmpfs 100M 0 100M 0% /run/user/1000

/dev/sdb1 197G 60M 187G 1% /mnt/disco-home

Ya lo tenemos disponible para guardar cosas….

root@ubun:~# cd /mnt/disco-home/

root@ubun:/mnt/disco-home# mkdir carpeta1

root@ubun:/mnt/disco-home# mkdir carpeta2

root@ubun:/mnt/disco-home# mkdir carpeta3

root@ubun:/mnt/disco-home# ls

carpeta1 carpeta2 carpeta3 lost+found

root@ubuntu:~# fdisk /dev/sdb1 –l

Disk /dev/sdb1: 200 GiB, 214747316224 bytes, 419428352 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Veamos realmente que está montado con df:

root@ubuntu:~# df –h

df: /mnt/hgfs: Protocol error

Filesystem Size Used Avail Use% Mounted on

udev 972M 0 972M 0% /dev

tmpfs 199M 6,0M 193M 3% /run

/dev/sda1 77G 1,9G 71G 3% /

tmpfs 992M 0 992M 0% /dev/shm

tmpfs 5,0M 0 5,0M 0% /run/lock

tmpfs 992M 0 992M 0% /sys/fs/cgroup

tmpfs 199M 0 199M 0% /run/user/1000

/dev/sdb1 197G 60M 187G 1% /mnt/disco-home

Y ahora a mover la carpeta /home, justificando el motivo… El equivalente en Windows sería mover la carpeta de “Usuarios” (o “Documents and Settings”)

Primero copiamos TODA la información de la carpeta /home original, ya que pueda estar llena de información.

root@ubuntu:~# cp -dpR /home/* /mnt/disco-home/

cp copiar
d Sin diferencias (copia carbon) presevar enlazes simbolicos o fijos
p preservar dueño, permisos, numero de inodo, marca de tiempo
R recursivo: copiar directorios y subdirectorios

Verificamos que la información y permisos son los mismos en una y otra carpeta:

root@ubuntu:~# ls -la /mnt/disco-home/

total 28

drwxr-xr-x 4 root root 4096 oct 1 19:51 .

drwxr-xr-x 5 root root 4096 oct 1 19:47 ..

drwxr-xr-x 5 administrador administrador 4096 jul 9 13:34 administrador

drwx------ 2 root root 16384 oct 1 19:44 lost+found

root@ubuntu:~# ls -la /home

total 12

drwxr-xr-x 3 root root 4096 jul 1 15:17 .

drwxr-xr-x 23 root root 4096 jul 2 10:46 ..

drwxr-xr-x 5 administrador administrador 4096 jul 9 13:34 administrador

root@ubuntu:~# umount /mnt/disco-home

root@ubuntu:~# df -h

df: /mnt/hgfs: Protocol error

Filesystem Size Used Avail Use% Mounted on

udev 972M 0 972M 0% /dev

tmpfs 199M 6,0M 193M 3% /run

/dev/sda1 77G 1,9G 71G 3% /

tmpfs 992M 0 992M 0% /dev/shm

tmpfs 5,0M 0 5,0M 0% /run/lock

tmpfs 992M 0 992M 0% /sys/fs/cgroup

tmpfs 199M 0 199M 0% /run/user/1000

Ahora si queremos que al arrancar se monte de forma automática la carpeta /home en la partición /dev/sdb1 debermos añadir una línea al final del archivo fstab con la información adecuada.

root@ubuntu:~# cat /etc/fstab

# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

# <file system> <mount point> <type> <options> <dump> <pass>

# / was on /dev/sda1 during installation

UUID=46546d8a-6f9f-469b-a515-1728a388999c / ext4 errors=remount-ro 0 1

# swap was on /dev/sda5 during installation

UUID=6811009b-72c6-4091-af7d-318902b10564 none swap sw 0 0

Para aprender más….. Que es el UUID… Es el identificador único de un disco. ¿Cómo lo podemos saber?

root@ubuntu:~# sudo file -Ls /dev/sda1

/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=46546d8a-6f9f-469b-a515-1728a388999c (needs journal recovery) (extents) (large files) (huge files)
root@ubuntu:~# sudo file -Ls /dev/sda5

/dev/sda5: Linux/i386 swap file (new style), version 1 (4K pages), size 523519 pages, no label, UUID=6811009b-72c6-4091-af7d-318902b10564

https://www.cambiatealinux.com/como-obtener-el-uuid-de-un-disco-en-linux

Vemos en Amarillo la línea que permite montar de forma automática la carpeta /home

root@ubuntu:~# cat /etc/fstab

# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

# <file system> <mount point> <type> <options> <dump> <pass>

# / was on /dev/sda1 during installation

UUID=46546d8a-6f9f-469b-a515-1728a388999c / ext4 errors=remount-ro 0 1

# swap was on /dev/sda5 during installation

UUID=6811009b-72c6-4091-af7d-318902b10564 none swap sw 0 0

# Montamos /home sea la partición /dev/sdb1

/dev/sdb1 /home ext4 defaults,errors=remount-ro 0 1

Y vemos con df –h que realmente es así:

root@ubuntu:~# df -h

df: /mnt/hgfs: Protocol error

Filesystem Size Used Avail Use% Mounted on

udev 972M 0 972M 0% /dev

tmpfs 199M 6,0M 193M 3% /run

/dev/sda1 77G 1,9G 71G 3% /

tmpfs 992M 0 992M 0% /dev/shm

tmpfs 5,0M 0 5,0M 0% /run/lock

tmpfs 992M 0 992M 0% /sys/fs/cgroup

/dev/sdb1 197G 60M 187G 1% /home

tmpfs 199M 0 199M 0% /run/user/1000
root@ubuntu:~# ls -la /home

total 28

drwxr-xr-x 4 root root 4096 oct 1 19:51 .

drwxr-xr-x 23 root root 4096 jul 2 10:46 ..

drwxr-xr-x 5 administrador administrador 4096 jul 9 13:34 administrador

drwx------ 2 root root 16384 oct 1 19:44 lost+found

Además, y como ejemplo vemos que al añadir al sistema un Nuevo usuario, la carpeta para dicho usuario se crea de forma automática y en el sitio correcto.

root@ubuntu:~# useradd -m userdemo

root@ubuntu:~# ls /home/

administrador lost+found userdemo

You may also like

Leave a Comment