Algunos personas, usuarias de sistemas operativos, ya sea por rapidez o practicidad, prefieren actualizar desde la consola. Otras descubren que la consola es rápida y práctica para muchísimas otras cosas como, por ejemplo, para formatear un disco.

En cualquier sistema operativo de escritorio, cuando conectamos un disco externo o unidad flash, el sistema nos alerta de que el dispositivo se ha conectado. Posteriormente, y si este se encuentra correctamente particionado y formateado, el sistema suele notificarnos que estas particiones y sus archivos están listos para ser utilizados.

Esto suele ocurrir en el 99% de las ocasiones…

¿Pero qué pasa cuando hay algún problema de formato en la unidad, o no está preparado de la manera adecuada? ¿Y si el disco funciona, pero lo que quiero es tirar, regalar o vender mi PC y lo mejor sería eliminar mis datos personales?

Fotografía dividida en dos. En un lado, vemos una pulsera médica en la muñeca de alguien. En la imagen del otro lado nos muestran la parte inferior de la pulsera médica y leemos, en inglés, el mensaje que define estas dos fotografías.
En caso de emergencia: Formatee mis discos rígidos.

En los casos donde sospecho un problema de formato o particiones, lo que suelo hacer es lo siguiente:

En primer lugar, identifico qué dispositivos se encuentran conectados y chequeo si se produjo algún error al conectar la unidad en cuestión. Y luego, de existir algún problema en las particiones, procedo a realizar el formateado.

En la primera parte les mostraré como hacerlo fácilmente desde la terminal.

Utilizaré las aplicaciones lsblk, GNU Parted y mkfs.

Pero, para los que prefieran el ratón, también podrán ver cómo se puede realizar todo esto desde el entorno gráfico. Y para otro articulo quedará la manera de chequear la integridad de la unidad e intentar recuperar datos.

Dispositivos de bloque o “Block Devices”

A los discos se los conoce habitualmente como “dispositivo de bloque“, debido a que leen y escriben datos en bloques de tamaño fijo. Esta característica los hace diferentes a cualquier otro periférico, como pueden ser impresoras, micrófonos, cámaras, etc.

Particiones

Una partición en un disco es una especie de límite en el dispositivo, que le indica a cada sistema de archivos qué espacio puede ocupar.

Por ejemplo, si tiene una unidad flash de 4GB, puede dividirla con:

– Una partición en ese dispositivo que ocupe la unidad completa (4GB),
– Dos particiones que ocupen 2GB (o 1 y 3, si lo prefieren),
– Tres particiones con algunas variaciones de tamaños…

y así sucesivamente. Las combinaciones son muchísimas.

lsblk

Para listar los dispositivos de bloque conectados en el sistema se suele utilizar lsblk.

Con esto ya sabremos donde está la unidad que conectamos.

En la imagen podrán ver los llamados “identificadores de dispositivos“, que comienzan con las letras sd o hd. Seguidamente encontramos una letra (sda, sdb, sdc, etc) que identifica al dispositivo (disco). Y seguidamente un número que identifica la partición (sda1, sda2, sdb1, sdc1).

El comando lsblk también nos proporciona otra información importante, como el tamaño y tipo del dispositivo o el lugar donde se encuentra montado.

Captura del comando lsblk en una terminal y la salida del mismo.

Haciendo algunas pruebas con dmesg

dmesg (diagnostic message o mensajes de diagnóstico) es un comando que lista el buffer de mensajes del núcleo. Este buffer contiene una gran variedad de mensajes importantes generados durante el arranque del sistema.

Cuando no sepamos bien qué problema hay con el dispositivo se puede intentar verificar las “asignaciones de etiquetas” utilizando el comando dmesg. Como dije antes, este comando muestra las entradas recientes del registro del sistema, incluidos los eventos del kernel, como la conexión y desconexión de una unidad.

Por ejemplo, para asegurarnos de que una unidad de disco USB sea realmente /dev/sdb, conecte la unidad a su computadora y ejecute el comando dmesg así:

sudo dmesg | tail
Imagen de la salida del comando dmesg en una terminal.
Si conectamos una unidad USB, dmesg no dará información si algo no anduvo bien.

La unidad más reciente, es decir, la última en aparecer en la lista, es la que acaba de enchufar. Si extraemos la unidad y ejecutamos ese comando nuevamente, veremos la línea que nos avisa de que el dispositivo ha sido eliminado.

Si lo volvemos a enchufar y ejecutamos el comando dmesg, el dispositivo estará allí.

** Advertencia: Posible pérdida de datos **

Imagen del actor Ben Affleck mirando hacia abajo, bloqueado, mientras vemos el mensaje sobreimpresionado.
Cuando intentas formatear una unidad flash y, accidentalmente, borras toda la partición.

Si vas a probar comandos que manipulen particiones y sistemas de archivos, no olvides que las cosas, mayormente por error humano, “pueden fallar”, así que:
– Realiza una copia de seguridad ( ejemplos: 1 2 3 ) de tus datos, y no solo los datos en la unidad con la que estés experimentando. Solo se necesita una pequeña distracción para destruir una partición importante.
Verifica y vuelve a verificar que la unidad a trabajar es la unidad correcta. Una cosa que puede pasar es que, al quitar dos unidades de dos puertos USB separados y luego volver a conectarlas en un orden diferente, obtengan nuevas etiquetas de unidad y esto puede llevar a borrar una partición no deseada.

Para verificar y estar seguro de lo que haces puedes utilizar el comando que comentamos más arriba, lsblk.

lsblk
Imagen de la salida de este comando en una terminal.
La opción -f nos permite obtener otra información, como los sistemas de archivos o los UUID.

Si, a pesar de todo, se ha borrado algo importante, bueno, es posible que no sea tan grave. Es posible recrear una tabla de particiones o intentar recuperar datos después de que se haya eliminado un sistema de archivos. Eso sí, puede resultar un poco estresante y para nada divertido.

GNU Parted

Para manipular particiones rápidamente y de forma segura utilizaremos la aplicación GNU Parted.

Cualquiera que haya escrito por primera vez el comando parted en la terminal se habrá sentido un poco perdido y con temor de poder “romper” fácilmente algo importante. Bueno, utilizarlo para estos menesteres es más sencillo de lo que uno piensa.

Solo daré algunos tips para solucionar problemas de particiones rápidamente, tan rápido que no necesitarán abrir más esas aplicaciones gráficas  que suelen utilizar.

GNU Parted tiene dos modos, el modo “línea de comando” y el “interactivo.

En el primero escribimos una línea con los comandos y opciones que queramos y, en el modo Interactivo, la aplicación nos va solicitando opciones para ir realizando el formato de una manera “guiada”.

En el modo interactivo podemos teclear la palabra ‘help‘ o el signo ‘?‘ y obtener ayuda de los comandos que necesitemos.

Suponiendo que la unidad es de 1 GB podemos crear rápidamente una partición desde una terminal con el comando parted. La línea sería así:

parted /dev/sdx --align opt mklabel gpt 0 1G

Este comando especifica primero la ruta del dispositivo en cuestión (el que obtuvimos mediante lsblk).

La opción –align opt permite a Parted encontrar el punto óptimo de inicio y parada de la partición.

El comando mklabel crea una tabla de partición (también llamada etiqueta de disco) en el dispositivo. Este ejemplo utiliza la etiqueta gpt, aunque también puede utilizarse msdos.

Los puntos de inicio y fin deseados de la partición se definen en último lugar. Dado que se utiliza el indicador de opción align, Parted ajustará el tamaño según sea necesario para optimizar el rendimiento de la unidad. Es decir, estos números sirven solo como valores aproximados. En este ejemplo inicia en el sector 0 y finaliza en 1 gigabyte.

A continuación, crea la partición real. Si las opciones de inicio y finalización no son óptimas, Parted nos informa y pregunta si deseamos hacer ajustes.

mkfs

Cuando lleguemos a este punto tendremos una partición, pero sin ningún sistema de archivos. Aquí es donde llega el turno de mkfs. Este es un comando que se utiliza para formatear un dispositivo de almacenamiento con un sistema de archivos específico. Hace poco publicamos en Colaboratorio un breve artículo sobre algunos de los sistemas de archivos actuales.

Es decir, aunque tengamos la partición realizada, un dispositivo de almacenamiento debe formatearse con un sistema de archivos antes de poder ser montado y acceder a él.

Suena complicado, pero es el paso más sencillo. Lo único a tener en cuenta es saber en qué sistemas utilizaremos la unidad.

Tu pendrive compatible para todos los sistemas operativos

Hay muchos sistemas de archivos disponibles. Algunos son software libre y otros no. Algunas empresas se niegan a soportar sistemas de archivos libres, por lo que sus usuarios no pueden leer estos sistemas de archivos.

A pesar de esta “incompatibilidad” hay muchas opciones a tener en cuenta y la elección dependerá del propósito de la unidad.

Si queremos que una unidad sea compatible con varios sistemas operativos, la única opción es el sistema de archivos exFAT.

¿Formatear exFat? si claro, pero primero a instalar exfat-utils.

Microsoft no envía el código de exFAT a ningún kernel de código abierto, así que tendremos que instalar soporte para él. Eso si, el soporte para este sistema de archivos se incluye tanto en Windows como en MacOS.

En resumen, en una distribución derivada de Debian:

sudo apt install exfat-utils

Una vez que tenga instalado el soporte para exFAT puede crear un sistema de archivos así en su unidad, en la partición que creó, con la siguiente línea:

sudo mkfs.exfat -n MiUnidadExFat /dev/sdbX

Ahora la unidad se puede leer y escribir en sistemas cerrados y en sistemas de código abierto que utilizan módulos de kernel adicionales.

Tu pendrive compatible con sistemas libres

Ext4 es un sistema de archivos nativo de GNU/Linux. Hay quienes podrían decir que es un sistema de archivos problemático para las unidades USB. Esto es porque retiene los permisos de los usuarios, que son, a menudo, diferentes de una computadora a otra. Pero es un sistema de archivos confiable y flexible. Más allá de este detalle, ext4 es un excelente sistema de archivos para unidades USB.

sudo mkfs.ext4 -L MiUnidadExt4 /dev/sdx1

Desenchufa la unidad y vuelve a enchufarla.

Zerofill con DD

Es común pensar que, con un formato del disco o, incluso eliminando la tabla de particiones, los datos se eliminarán y nunca podrán ser recuperados.

De hecho, algunos procedimiento para restaurar datos luego de estos formateos son bastante sencillos de llevar a cabo y, en general, tienen muy buenos resultados.

Recuperar datos de discos borrados o formateados no es algo imposible.

Así que ya saben, si van a vender, regalar o tirar una PC, el formateo no es suficiente.

Una manera más segura consiste en llenar el disco de 0. Si, llenar de caracteres ASCII 0x000 cada sector del disco.

Para esto simplemente utilizamos el siguiente comando:

sudo dd if=/dev/zero of=/dev/sdx

(Recuerda que, en la x tienes que indicar el número de la partición a borrar).

También es cierto que, aunque difícil, es posible determinar en ciertos casos las escrituras más recientes de un disco. Al saber que un cero fue escrito en determinado lugar recientemente, sabremos que antes había un 1 en esa posición del disco, y así podríamos recuperar datos eliminados.

Por lo tanto, si quieren activar el “modo Paranoia” en vez de ceros, pueden llenar el disco con datos aleatorios:

sudo dd if=/dev/urandom of=/dev/sdx

En este caso no soy nada optimista en cuanto a la recuperación de algún dato del disco.

Pero de todas maneras también hay gente que utiliza el “modo FULL-Paranoia“, donde escribimos 7 veces el disco con datos aleatorios. Este es el procedimiento que utiliza el gobierno de los Estados Unidos para eliminar los datos de sus discos.

Ni en sueños vas a recuperar un dato luego de esto. Pero si quieres implementarlo, aquí tienes un script para facilitar el proceso.

Aplicaciones de escritorio

Aplicaciones para formatear y particionar discos hay muchas. Las más conocidas son Gparted o Partition Manager.

Son muy sencillas y suelen ser aplicaciones que utilizan Parted o software similar como “back-ends“, por lo que el “motor” es el mismo, solo que con entorno gráfico.

Partition manager
Partition manager
Partition manager

Conclusiones

El formateo de las unidades de almacenamiento puede ser necesario de vez en cuando. Puede hacerse desde el escritorio con una aplicación como GParted o, de manera más “tradicional”, desde la Terminal.

Para esto tenemos a Gnu Parted, una aplicación que puede dar un poco de temor al primer contacto pero es una aplicación increíblemente útil y fácil de usar.

Y tu, ¿necesitas formatear frecuentemente tus discos? ¿Qué aplicación utilizas?


Bibliografía

gnu.org – parted manual
opensource.com – partition format on linux
computernewage.com – formatear disco duro en linux
tusequipos.com – cómo hacer un pendrive compatible windows mac linux
rainbow.chard.org – how to align partitions for best performance using parted
marksanborn.net – how to wiping a hard drive with dd

avatar
2 Comment threads
2 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
JavierinsituEnrique BravoAldo Belus Recent comment authors

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  Subscribe  
más nuevo más antiguo más votado
Notificarme de
Aldo Belus
Administrador

Me gustan estos artículos. Bueno, también me gustan los que son sobre asuntos más complejos, pero me encanta que haya textos como este, que ayudan a hacer cosas sencillas, para principiantes.

Y tampoco tanto. Porque a mi ha habido cosas en esta entrada que me van a ayudar ¡y ya paso de principiante! Gracias por hallar tiempo para tus seguidores y los de Colaboratorio, @javierinsitu. ¡Es un placer leerte!

Enrique Bravo
Administrador

Gran artículo, Javier. Me ha encantado el modo “full-paranoia”. Ni que el gobierno de los EEUU tuviera algo que esconder… XD