Gestión de las particiones de disco

Rafa Morales 12 Septiembre 2013
8min
0
Linux

UUID

El UUID (Universally Unique IDentifier) es un identificador estándar usado para diferenciar los dispositivos de almacenamiento en Linux.

El UUID es un número de 16 bytes (128 bits). Consiste de 32 dígitos hexadecimales, mostrados en cinco grupos separados por guiones, de la forma 8-4-4-4-12 para un total de 36 caracteres (32 dígitos y 4 guiones). Por ejemplo:

550e8400-e29b-41d4-a716-446655440000

 

blkid

Nos permite mostrar la lista de UUIDs asociados a los dispositivos de almacenamiento del sistema.

blkid
/dev/sda1: UUID=”550e8400-e29b-41d4-a716-446655440000” TYPE=”ext3”

 

/dev/disk/by-uuid/

Otra forma de conocer los UUIDs es listar en modo de detalles este directorio.

ls –l /dev/disk/by-uuid/

 

Particiones y montaje

Con los siguientes comandos seremos capaces de conocer las particiones de nuestro sistema, crear y eliminar particiones, formatearlas y montarlas para poder hacer uso de ellas. Todo esto como tendremos que realizarlo como root.

 

fdisk

Para listar las particiones que se encuentran actualmente en nuestros discos utilizaremos el parámetro –l:

fdisk –l

La salida de este comando es la que se muestra a continuación. En este ejemplo tenemos dos discos duros conectados. En el primero, sda, tenemos tres particiones creadas, mientras que en el segundo, sdb, no tenemos aún ninguna partición.

Disco /dev/sda: 8589 MB, 8589934592 bytes
255 cabezas, 63 sectores/pista, 1044 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador de disco: 0x000b7e58

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 980 7863296 83 Linux
La partición 1 no termina en un límite de cilindro.
/dev/sda2 980 1045 522241 5 Extendida
/dev/sda5 980 1045 522240 82 Linux swap / Solaris

Disco /dev/sdb: 1073 MB, 1073741824 bytes
255 cabezas, 63 sectores/pista, 130 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador de disco: 0x00000000
El disco /dev/sdb no contiene una tabla de particiones válida

 

Para comenzar a crear particiones sobre el segundo disco utilizaremos el siguiente comando:

fdisk /dev/sdb

Se nos preguntará qué orden queremos ejecutar. Cada orden se le indica con una letra. Utilizaremos “m” para recordar cada una de ellas. Seguiremos los siguientes pasos:

  • Pulsar “n” para añadir una nueva partición.

  • Pulsar “p” para que sea una partición primaria (elegir siempre “primaria”).

  • Pulsar “1” para elegir qué número de partición será (en caso de no ser la primera elegir la que corresponda).

  • Elegir el valor del cilindro donde comenzará la partición. Lo normal es elegir el predeterminado.

  • Elegir el tamaño mediante cilindros o bytes. Si solamente queremos una partición elegiremos el valor del último cilindro, si deseamos crear más particiones elegiremos el tamaño deseado de la partición, por ejemplo “+30G” (no olvidar el signo +).

  • A continuación pulsaremos “p” para visualizar la nueva tabla de particiones. Realizaremos los mismos pasos anteriores para crear una nueva partición en el espacio libre.

  • Pulsamos “w” para guardar los datos.

  • Podemos pulsar “q” para salir sin guardar.

  • Leeremos el mensaje final por si nos pide reiniciar el sistema.

 

mkfs

Para formatear la partición utilizamos el siguiente comando, ahora utilizando el número de partición dentro del disco “sdb1”. Si no se le indica ningún parámetro adicional, creará los inodos y lo formateará con el sistema de archivos ext2. Utilizamos el parámetro -t para indicar otro sistema de archivos.

mkfs -t ext4 /dev/sdb1

Existe un comando diferente para alguno de los sistemas de arhivos más utilizados, por ejemplo:

mkfs.ext4 /dev/sdb1
mkfs.ntfs /dev/sdb1

 

mkswap

Si la partición que vamos a formatear se va a utilizar como área de intercambio SWAP usaremos este comando para formatearla.

mkswap /dev/sdb1

 

mount / umount

Una vez la partición creada y formateada debemos de montarla para poder comenzar a hacer uso de ella, sería como activarla para que el sistema la reconozca. Con el comando mount podemos montar la partición de manera manual. Como sabemos, Linux trata todos los dispositivos como archivos o directorios, y que todos deben de colgar del directorio root. Por tanto, debemos crear un directorio en el sistema de archivos y montar la partición en ese directorio para poder acceder a su contenido, aunque debemos recordar que al reiniciar el sistema el montaje desaparecerá.

Creamos el directorio:

mkdir /mnt/unidad_datos

Y a continuación montamos la partición, nuestro directorio de trabajo no puede ser el directorio donde vamos a montar la unidad porque si no nos daría un mensaje de error diciendo que está en uso:

mount /dev/sdb1 /mnt/unidad_datos

Podemos comprobar el correcto montaje con:

mount

Si queremos darle a la salida aspecto de tabla, podemos utilizar el siguiente filtro:

mount | column -t

 

Se puede desmontar la partición con el comando:

umount /dev/sdb1

Si la partición está activa (mensaje: umount: /media/disco: device is busy), nos será imposible desmontarla. Primero buscamos los procesos que están haciendo uso de la partición:

# fuser -m /dev/sdb1
/dev/sdb1: 928

Posteriormente buscamos el proceso con el PID indicado y lo cerramos o matamos:

# ps auxw | grep 928
carazo 928 0.4 2.7 219212 56792 ? SLl Apr11 11:25 nautilus
# kill -9 928

 

/etc/fstab

Si queremos montar unidades de manera automática cuando se inicie nuestro sistema podemos utilizar el fichero /etc/fstab, escribiendo en él la siguiente línea:

/dev/sdb1 /mnt/unidad_datos auto defaults 0 0
/dev/sdb1 /mnt/unidad_datos ext4 user,noauto,usrquota 0 0
UUID=550e8400-e29b-41d4-a716-446655440000 /mnt/datos auto defaults 0 0

En el caso de indicar el UUID, conseguimos que se monte independientemente de la ruta en que sitúe al dispositivo, /dev/sda...

  • El primer campo es el dispositivo de almacenamiento a montar. Se puede utilizar la ruta absoluta al fichero del dispositivo o el UUID del dispositivo.
  • El segundo campo es el directorio del sistema donde se va a montar.
  • El tercer campo es el sistema de archivos que posee. Con la palabra auto el sistema se encarga de adivinarlo.
  • El cuarto campo son las opciones de montaje. defaults indica que use las opciones por defecto del sistema, user para que cualquier usuario puedo montarlo, owner que sólo puede montarlo el propietario del dispositivo, noauto para que no se monte automáticamente, ro sólo lectura, rw lectura y escritura, noexec impide la ejecución de archivos. No dejar espacios en blanco entre las diferentes opciones.
  • El quinto campo indica si el sistema debe realizar copias de seguridad de algún archivo del dispositivo, por defecto es 0.
  • El sexto campo indica si el sistema de archivos será comprobado cada cierto tiempo de forma automática, un 0 haría que el no se comprobara.

El usuario root deberá de crear directorios con los permisos adecuados si necesita que los usuarios normales puedan escribir en esta nueva partición.

Para aplicar los cambios en dicho fichero debemos reiniciar el sistema o volver a montar la partición, si está en uso podemos usar el siguiente comando.

mount –o remount /dev/sdb1

 

/etc/mtab

Es un fichero estático que nos muestra qué particiones se encuentran actualmente montadas en el sistema con la misma sintaxis del fichero /etc/fstab.

tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 
proc /proc proc rw,noexec,nosuid,nodev 0 0 
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 
udev /dev tmpfs rw,mode=0755 0 0 
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0

 

Monitorización

df

Muestra un resumen sobre el espacio disponible que queda en las diferentes particiones del sistema. Con el parámetro –h se muestra en Mb o Gb.

df
df -h

S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/sda1 7739864 3377596 3969104 46% /
none 247372 628 246744 1% /dev
none 254000 252 253748 1% /dev/shm
none 254000 96 253904 1% /var/run
none 254000 0 254000 0% /var/lock
/dev/sdb1 505604 2319 477181 1%

 

du

Muestra la cantidad de espacio que están utilizando los directorios o archivos especificados.

du /home/usuario

Con el parámetro –s se muestra un resumen del total de los directorios.

du -s /home/usuario

Con el parámetro –h se muestra en Mb o Gb.

du -h /home/usuario

Con el parámetro --max-depth=1 lista el tamaño de cada uno de los directorios en el directorio actual sin mostrar los subdirectorios.

du -h --max-depth=1 /home/usuario
 

fsck

Permite comprobar el estado y reparar un sistema de archivos.

fsck /dev/sdb1