Formatear unidades de disco en Linux de forma rápida

Ya he hablado anteriormente sobre los pasos a realizar para borrar una partición en Linux o el disco al completo, algo que nos vale para unidades extraíbles o internas. También, he hablado acerca de como realizar el borrado seguro de unidades o archivos.
Hoy hablaré de diversas formas para formatear unidades de disco en sistemas Linux, algo que en esencia suena parecido pero no tiene mucho que ver. Normalmente, se asocia formatear con borrar o dejar un disco vacío, pero conviene aclarar esto antes de seguir.
Borrar una unidad de disco implica la necesidad de formatear este de nuevo para poder utilizarlo. Formatear un disco es aplicar un formato al mismo.
Formatear es un término que la gente usa alegremente para referirse a muchas cosas, normalmente entre el mortal común esto equivale a «voy a volver a instalar el sistema operativo». Veamos.
¿Qué es formatear un disco?
En esencia, aplicar formato o formatear un disco, comprende 3 niveles.
- Preparar el medio en sí mismo: esto es, escribir los marcadores o delimitadores de sector en el disco. Esto es lo que se conoce como formateo a bajo nivel. Ahora normalmente viene hecho de fábrica, pero antes era necesario hacerlo (hace muchos años).
- Escribir una tabla de particiones (ya sea en blanco o con alguna partición) en los primeros sectores del disco. Por ejemplo, para esto se emplea fdisk. Hay gente que también llama a esto formateo a bajo nivel.
- Escribir un sistema de archivos en blanco en cada partición. Aplicar un sitema de archivos se considera formateo de alto nivel y tenemos herramientas como format <unidad> en Windows o mkfs en Linux.
Es decir, si borramos un disco o partición no estamos aplicando ningún formato ni sistema de archivos, así que es incorrecto.
Aplicar formato a un disco en Linux
Ahora vamos a ver cómo podemos formatear nuestro disco interno o extraíble de varias formas, atendiendo al resultado final que deseamos obtener.
Antes de empezar, necesitaremos reconocer las unidades de disco que han sido conectadas al sistema, para lo cual podemos valernos de lo siguiente..
lsblk
Nos muestra los dispositivos de bloques (discos, SD, pendrives, etc) conenctados en cualquier interfaz del equipo, tanto interna como externa. Para obtener datos detallados escribiremos:
lsblk -lf
También podemos utilizar este otro.
dmesg | grep attached
Tomaremos nota del identificador de unidad (p.e. /dev/sdX o hdX, etc) con el que trabajar. Esto es muy importante para no eliminar una partición o disco incorrecto.
Obtener un disco totalmente vacío
Formateo de SSD, tarjeta SD o pendrive
Usaremos por ejemplo la utilidad blkdiscard, si queremos que el disco quede como vino de fábrica y no se pueda encontrar nada con una aplicación de recuperación. Esto puede sernos útil si queremos realizar un borrado seguro de la unidad.
La característica discard equivale a realizar un TRIM del disco si este es SSD o NAND-flash. Este método es muy rápido.
En tarjetas SD o medios extraíbles compatibles, podemos utilizarlo como sigue:
blkdiscard /ruta/unidad
En discos mecánicos o aquellos USB cuya interfaz no soporte este estándar, usaremos lo descrito en el punto «aplicar formato a un disco en linux». O bien, utilizaremos la utilidad DD.
La sintaxis básica para esto sería algo como (una de las dos):
dd if=/dev/zero of=/dev/<unidad> dd if=/dev/random of=/dev/<unidad>
El resultado de esta operación es el borrado absoluto del disco, pero consume bastante tiempo y está limitado por la velocidad de escritura de nuestra unidad.

Esto es así, porque se sobreescriben absolutamente todos los sectores de disco. Si puedes, evítalo en discos magnéticos.
Para verificar si se ha eliminado, podemos hacer lo siguiente:
sudo dd if=/dev/<unidad> count=10

En la imagen se puede ver la diferencia entre el primer caso (un disco sin borrar, que muestra información escrita) y uno recién borrado.
Eliminar el sistema de archivos
Si no te importa que permanezcan datos residuales dentro del disco o partición (esto es, datos que irán desapareciendo a medida que haya ciclos de escritura sobre esos sectores) puedes utilizar un método muy rápido y válido de forma universal.
Esto equivale a hacer el clásico «format c:» de Windows. Lo que buscamos es que el sistema reconozca el disco como vacío, no que sea así realmente.
Para ello, borraremos únicamente la tabla de particiones con la utilidad wipefs.
wipefs -a /dev/<unidad>
Te aconsejo que antes de utilizar el siguiente comando, lo utilices sin la -a o –all para que te informe de los cambios a realizar.
Aplicar formato a un disco en Linux
Mkfs
Si has seguido el artículo hasta ahora, tienes un disco «limpio». En el supuesto caso de que necesitemos aplicar un formato al disco en cuestión, podemos utilizar la utiliad mkfs (make filesystem). Veamos un ejemplo.
mkfs.ext4 /dev/<unidad>
Este método implica que los bloques del disco se descartan, así que podríamos utilizarlo en lugar del segundo método e incluso del primero, si no queremos formateo a bajo nivel.

Podemos incluso usar directamente un comando mkfs con el tipo específico, por ejemplo mkfs.ext4 o mkfs.vfat.
Fdisk
Listaremos las unidades con:
fdisk -l

Una vez reconocido nuestro disco o partición, lo seleccionaremos con fdisk.
sudo fdisk /dev/sdb
Al pulsar intro, veremos que al pulsar «m» obtenemos una ayuda contextual.

Usaremos d para eliminar, p para listar la tabla de particiones, n para crear una partición y l para informar de los tipos de partición reconocidos.
En mi caso, creo una nueva tabla de particiones tipo DOS usando «o». Después presiono «w» para escribir los cambios.
Seguidamente, voy a crear una nueva partición seleccionando primero el disco, para luego escoger la opción «n».
Ahora se inicia un asistente que nos obliga a satisfacer valores como a) tipo de partición (primaria o extendida), b) número de partición (el máximo soportado es 4 si son primarias), c) el primer sector de la misma (dejar por defecto si se sabe) d) el tipo de partición, que por defecto será Linux – tipo 83.

El comando lo finalizamos con «w» para aplicar los cambios y, de vuelta a la lista de unidades (fdisk -l) ya vemos nuestra nueva partición.

Parted
Tenemos otra opción que es Parted, aunque mucha gente la conoce por su interfaz gráfica como GParted o Gnome Parted. Una utilidad recomendable que por lo menos conozcas como alternativa.
La sintaxis para listar y seleccionar unidades es, respectivamente:
sudo parted print all sudo parted /dev/<unidad>

Podemos escribir «help» para obtener ayuda.
Ahora, para crear una partición, escribiremos:
mkpart
Seguiremos el asistente, que es bastante parecido al encontrado en fdisk.
Palabras finales
Cuando hayamos eliminado o creado nuevas particiones deberemos informar al sistema de los cambios. Esto lo conseguimos con:
sudo partprobe
Aunque puede darse el caso de que nos encontremos con que el kernel no puede deshacerse del valor anterior, requiriendo un reinicio:
Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Otras utilidades que podríamos utilizar son sfdisk o sgdisk, aunque no siempre están disponibles en algunas distribuciones.
Finalmente, si lo que quieres ahora es crear una fichero de paginación o archivo de intercambio (swap) utiliza la herramienta mkswap.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.