Formatear discos y crear particiones en servidores Linux

Si tienes tanto un servidor dedicado como un VPS con Linux instalado, puedes acceder como root por SSH para realizar tareas o ejecutar comandos. En esta entrada vamos a ver cómo formatear un disco duro y crear particiones utilizando comandos de terminal.

Lo primero que tenemos que tener claro es qué disco es el que queremos formatear, ya que hacerlo sobre el disco incorrecto puede hacer que pierdas todos los datos.

Normalmente los discos son nombrados de la forma "/dev/sdx" donde "x" es una letra del abecedario, empezando desde el principio. Es decir, /dev/sda, /dev/sdb, ..., /dev/sdx. Si creamos más de una partición en el disco, se mostrarán con números. Es decir, el disco principal debería ser "/dev/sda" y dentro de ella, si hay 2 particiones, serán "/dev/sda1" y "/dev/sda2".

Sabiendo esto, si ejecutamos el comando "fdisk -l" en nuestro servidor de ejemplo, podemos ver que tenemos 2 discos duros:

Listado de discos duros

En el ejemplo anterior, subrayado en amarillo vemos los discos duros que existen en el servidor. Por un lado tenemos "sda" con un tamaño de 40GiB y por otro lado "sdb" con un tamaño de 932GiB. Además, en el recuadro rojo vemos como para el disco sda hay una partición de 40GB. La partición es sda1. En el disco sdb no aparece ninguna partición, por lo que entendemos que ese disco duro no tiene particiones.

Si el disco nunca ha sido utilizado, es posible que no tenga un identificador, por lo que otra forma de detectar el disco a formatear sería con el siguiente comando:

for disk in `lsblk -nd -I 8 -o name,label`; do blkid "/dev/"$disk > /dev/null; if [ $? -gt 0 ]; then echo $disk; fi;  done

Con este script os deberían salir los discos que no se están utilizando.

Ahora vamos a comenzar a crear particiones y formatear el disco disco.

Atención, antes de ejecutar cualquier comando hay que asegurarse de lo que se está haciendo, o tener backup de los datos. Los comandos se van a ejecutar sobre discos, por lo que un error en el disco o en los comandos puede hacer que pierdas los datos de tu servidor

Una vez sabemos el disco que queremos formatear, vamos a proceder a crear una partición. En este ejemplo vamos a crearla utilizando todo el espacio disponible del disco. En nuestro ejemplo utilizaremos el disco "/dev/sdb".

Lo primero es ejecutar la utilidad "fdisk" con el disco seleccionado. Al entrar en ella podemos teclear la letra "m" para ver todas las opciones que tenemos disponibles.

fdisk /dev/sdb
Fdisk

Una vez dentro de "fdisk", vamos a proceder a crear la nueva partición. Para ello teclearemos la letra "n". Te pedirá que elijas qué tipo de partición, nosotros tecleamos "p" que es la opción por defecto.

Tipo de partición

El resto de opciones que nos va a pedir "fdisk" vamos a dejarlas por defecto, con los datos que nos indica el propio programa. Así crearemos una partición que use todo el disco.

Nos pedirá que le indiquemos el número de partición. Como no tenemos ninguna tecleamos "1" o lo dejamos por defecto. Lo siguiente que nos pedirá será que indiquemos el primer y el último sector. Si lo dejamos por defecto nos cogerá el primer y último sector disponible para utilizar el 100% del disco. Si no quisieramos utilizar todo el disco en una única partición, podríamos definir el tamaño de la partición como aparece en la siguiente imagen.

Definir tamaño de partición

Como vemos se ha creado la partición 1 con todo el tamaño del disco.

Una vez creada la partición, estaremos de nuevo en el menú principal de "fdisk". Si vemos que los ajustes que hemos hecho son correctos, solo nos queda confirmar los cambios. Para ello tecleamos "w" y se realizarán los cambios en el disco.

Confirmar cambios

Por último tendremos que darle formato a la partición creada para poder trabajar con ella. Esto es muy sencillo, y lo más normal es que le demos el formato "ext4" que es el más usado. Para ello ejecutamos lo siguiente:

 mkfs.ext4 /dev/sdb1
Formatear partición

Vemos como ha formateado el disco para poder ser utilizado.

Una vez hecho esto, si volvemos a ejecutar "fdisk -l" para listar los discos y particiones, nos saldrá que nuestro disco ya tiene una partición creada.

Partición creada

Para poder utilizar la partición tendremos que montarla en nuestro sistema. Primero te explicaremos la opción de montaje manual. Esta opción monta la partición temporalmente y si reinicias el servidor la partición no se montará durante el inicio. Para ello utilizaremos el comando "mount".

Podemos montar el disco en el directorio que queramos, pero recuerda que el directorio debe de estar vacio, ya que cuando lo montes no podrás ver el contenido existente que hubiera en ese directorio.

Por ejemplo, nosotros creamos un directorio dentro de "/mnt" llamado "disco_montado".

mkdir /mnt/disco_montado

Una vez creado el directorio como hemos comentado, lo montaremos con el comando "mount" de la siguiente forma:

mount /dev/sdb1 /mnt/disco_montado

En este comando, el primer parámetro que le pasamos es la partición creada que queremos montar, y el segundo es el directorio donde queremos montarla.

Una vez hecho esto podemos comprobar que lo hemos montado correctamente ejecutando el comando "df" o listando las particiones montadas con "mount". A continuación puedes ver el resultado de la ejecución de ambas formas:

df -H
Listado de particiones

Otra opción sería de la siguiente forma:

mount | grep "disco_montado"
Listado de particiones

Si queremos dejar montada la partición de forma permanente, para que siempre se monte al arranque del servidor, tenemos que modificar el archivo del sistema "/etc/fstab", que es el que se encarga de eso. Al final del archivo añadiríamos una nueva línea:

/dev/sdb1       /mnt/disco_montado      ext4    defaults 0 0

Quedaría así:

Partición montada de forma permanente

Es importante verificar que el fichero fstab no tiene problemas, ya que si encuentra alguno el sistema no arrancará hasta que se solucione. Podemos ejecutar la siguiente línea para comprobar que todo está correcto:

findmnt --verify
Verificación de fstab

Esta línea es correcta, pero lo ideal sería que utilizaramos el UUID en vez del nombre /dev/sdb1, para no tener problemas en caso de que el disco se cambie de ubicación. Para ello vamos a averiguar el UUID del disco de la siguiente forma:

ls -lh /dev/disk/by-uuid/

En nuestro ejemplo marcamos nuestro UUID:

Averiguar UUID

Una vez sabemos el UUID, iremos otra vez al archivo "/etc/fstab" y modificamos la línea que hemos introducido anteriormente. Quedaría así:

UUID=55795005-2580-4c68-8783-9bf71838939d       /mnt/disco_montado      ext4    defaults 0 0

El fichero quedaría así:

Fichero fstab

Si queréis se puede verificar de nuevo el fstab con el comando que hemos usado anteriormente:

findmnt --verify

Si no hay ningún error, podríamos reiniciar el servidor y la partición se montaría correctamente. En ese caso ya podríamos utilizar el disco sin problemas.

Esperamos que esta guía os sea de utilidad.

No hay comentarios

Agregar comentario