Opciones Avanzadas para Formatear un Disco Duro o Partición en Linux

Si eres usuario de alguna distribución GNU/Linux como Ubuntu o Debian, seguramente te habrás dado cuenta de que particionar y formatear tu disco duro es sumamente sencillo mediante herramientas como GParted o GNOME Disks.

Aun así, en ambos casos se trata de un formateo rápido. Si, por ejemplo, quieres optar por hacer un formateo lento, en GNU/Linux tienes herramientas para hacerlo, pero debes recurrir a la terminal. En esta guía te presentare varios comandos útiles en caso que busques opciones de formateo más avanzadas, como el denominado Zero-Filling.

Anuncios

Tabla de contenidos:

  1. Primeros pasos
  2. Mkfs
  3. Mke2fs
  4. Zero Filling con DD
  5. Apuntes finales

Primeros Pasos

Antes de entrar en materia, como las opciones que te explicaré en el siguiente post todas funcionan a través de la línea de comandos, es fundamental que conozcas bien el identificador y la ruta de todos los volúmenes que tengas montados en tu sistema.

Además de esto, la mayoría de comandos que mostraré probablemente requerirán ser ejecutados con permisos de superusuario, ya sea utilizando «sudo» delante de la sentencia, o haciendo un salto a root con un «su».

Dicho todo esto, para empezar a identificar la ruta de todos los volúmenes montados en tu sistema te puede venir genial hacer uso de fdisk, una utilidad que funciona por consola y que suele venir pre-instalada en gran parte de las distribuciones GNU/Linux que he probado. Con el siguiente comando, te listara todas las tablas de particiones detectadas en tu sistema.

sudo fdisk -l

Esto te permitirá conocer la ruta de todos los volúmenes montados actualmente, ya sean de particiones de nuestro disco duro principal, de otro disco duro interno que puedas tener en nuestro equipo, o de discos externos que tengamos conectados.

Generalmente, y suponiendo que el disco sea SATA, el volumen que identifica la unidad principal se denomina «sda«, mientras que todas las particiones que contiene las verás nombradas como «sda1«, «sda2«, «sda3» y así sucesivamente.

Por otra parte, los volúmenes correspondientes a otras unidades, normalmente reciben la nomenclatura «sdb» o «sdc«. Así pues, si tenemos una unidad externa conectada por USB, probablemente se denominará «sdb«, mientras que las distintas particiones que puedan haber dentro llevarán la denominación «sdb1«, «sdb2«, etc.

Si ejecutas el comando y hechas un vistazo a su output, rápidamente identificarás cada uno de los volúmenes y sus rutas.

Una vez hecho esto, deberás desmontar el volumen que vayas a formatear. Esto lo puedes hacer con el siguiente comando. En mi caso he puesto el volumen «sdb» en la ruta, pero en tu caso debes sustituirlo por el volumen que toque.

sudo umount /dev/sdb

Si vas a formatear un volumen externo, puedes hacerlo desde el propio sistema y conectando el disco, pero en caso que que quieras formatear la partición o el disco duro principal de tu PC, entonces deberás hacerlo ejecutando una distribución GNU/Linux cualquiera en modo live (ya sea con un Live CD, o desde una memoria USB arrancable que permita ejecutar un entorno en modo live)

Dicho esto, te comento a continuación algunas de las opciones de formateo que tienes, no sin antes recordarte que es imprescindible hacer un backup de toda la información que necesitas respaldar.

MKFS

Anuncios

La primera herramienta que te quiero presentar es mkfs. Con ella podrás aplicar una gran variedad de formatos, especificando no solo el sistema de archivos, algo que puedes hacer con cualquiera de las herramientas gráficas que vienen en cualquier distro, como GParted o Disks, sino el hecho de que sea un formateo rápido o lento, o incluso el tamaño de bloque a considerar.

Su sintaxis suele ser muy simple, siguiendo generalmente el esquema mkfs.nombre-sistema-archivos ruta, pero puedes aplicar múltiples parámetros entre medias. Te presento algunos de los ejemplos que creo que te pueden ser más útiles.

En el primer caso tienes como hacer un formateo de una unidad sdb, aplicando el sistema de archivos ext4. Si no indicamos ningún parámetro, por defecto hace un formateo lento, aplicando el tamaño de bloque más adecuado.

sudo mkfs.ext4 /dev/sdb

Si lo que quieres es hacer un formateo rápido, debes añadir el parámetro «-Q» de quick, antes de especificar la ruta. Esto es igual a lo que podrías hacer con cualquier herramienta gráfica como GParted o Disks.

sudo mkfs.ext4 -Q /dev/sdb

Puedes utilizar otros sistemas de archivos, como por ejemplo XFS. En este caso, el comando que debes utilizar es el mismo, solamente que cambiando el nombre del sistema de archivos.

sudo mkfs.xfs /dev/sdb

En el caso de que quieras dar un formato NTFS al volumen, algo mucho más común en una unidad externa, de cara a mantener la compatibilidad con Windows, la sentencia varía un poco:

sudo mkntfs /dev/sdb

Si quisieras hacer un formateo rápido, tan solo debes añadir el parámetro «-Q» antes de la ruta, exactamente igual que en el caso anterior. Obviamente hay muchas más opciones, pero la lógica se va repitiendo siempre. Puedes consultarlas todas accediendo a la pagina de menú, tecleando man mkfs desde la misma consola.

MKE2FS

Esta es una herramienta muy similar a la anterior, pero en este caso es específica para crear sistemas de archivos ext4, ext3 o ext2.

Como tal, permite múltiples opciones a la hora de crear un sistema de archivos en un volumen, incluyendo opciones de formateo rápido o lento, especificando incluso el tamaño de bloque.

La sentencia es muy similar que en el caso de mkfs, pero en este caso debes añadir el parámetro «-l» para indicar el sistema de archivos. Como ejemplo, para hacer un formateo a ext4, el comando a utilizar sería este:

sudo mke2fs -l ext4 /dev/sdb

Si ademas especificar un cierto tamaño de bloque, puedes utilizar igualmente el parámetro «-b». Las opciones aceptadas por mke2fs, según su propia página de manual, son 1024, 2048 y 4096.

sudo mke2fs -b 4096 -l ext4 /dev/sdb

También puedes optar por hacer un análisis encaminado a detectar sectores defectuosos en el dispositivo, previo a la creación del sistema de archivos. Para ello tan solo debes indicar el parámetro «-c» antes de la ruta.

sudo mke2fs -c -l -b ext4 /dev/sdb

Y como he dicho antes, estos son solo un par de ejemplos que te pueden ser útiles de cara a las opciones de formateo, pero mke2fs permite mucho, mucho más que esto. Puedes hacerte una ligera idea de toda la potencia que ofrece, accediendo a su página de manual desde la propia consola, tecleando man mke2fs.

Hacer un Zero Fill con DD

Y, para no dejarlo aquí, te introduzco otra opción que tienes denominada Zero Fill. En este post no me quiero extender en profundizar sobre esta técnica, pero muchos lo consideran como una variante moderna del clásico formato de bajo nivel.

Básicamente consiste en rellenar con ceros todos los sectores de tu disco duro, a la vez que se marcan y se aíslan los sectores dañados que se detecten, en caso de que los haya. Con esto conseguirás dejar el volumen completamente vacío (sea un disco entero o una sola partición).

La sintaxis general de la herramienta DD es relativamente simple. Consta de la primera parte, «dd», la segunda parte, que es fija, y la tercera parte, en la que indicamos la ruta del volumen sobre el que quieres aplicar la técnica.

dd if=/dev/zero of=[ruta-volumen]

La ruta del volumen puedes conocerla, como has visto al principio, con el comando fdisk -l. Si se trata de un disco duro interno en tu equipo, lo más probable es que sea /dev/sda. En este caso, si quieres aplicar la técnica en toda la unidad, el comando quedaría de la siguiente forma:

dd if=/dev/zero of=/dev/sda

Otra posibilidad sería hacer este mismo proceso, pero para una unidad externa, como puede ser un disco duro externo conectado por USB. En este caso, al tratarse de una unidad externa, no necesitamos ejecutar ningún Live CD, sino que puedes llevar a cabo el proceso desde nuestro sistema principal, previamente a haber desmontado la unidad que quieres formatear.

dd if=/dev/zero of=/dev/sdb

Como comenté al principio, al ser una técnica que va bloque a bloque, el proceso suele tomar bastante tiempo. Sin embargo, esto puedes optimizarlo especificando tu mismo el tamaño de bloque que quieres que se considere. Si quieres hacer que DD considere un tamaño de bloque de 4096 bits (uno de los más típicos), deberás modificar la sentencia de la siguiente manera.

dd if=/dev/zero of=/dev/sdb bs=4096

Algunos tamaños de bloque típicos que se suelen utilizar son el de 1024 (el más lento), el de 2048 o el de 4096.

Antes de acabar, quiero recordarte que, al finalizar el proceso de Zero Filling, el disco duro o el volumen afectado quedará completamente vacío, por lo que será necesario darle de nuevo un formato una vez quieras volver a utilizarlo.

Si lo quieres utilizar para reinstalar un sistema operativo, el propio instalador ya se encargará de definir las particiones y el formato adecuado. En caso de que quieras utilizarlo como almacén, entonces deberás darle previamente el formato que necesites (NTFS para ser usado con Windows o maximizar la compatibilidad con él o ext4 en el caso de usarse solamente con GNU/Linux). Si dudas con esto, en este post tienes mucha más información.

Apuntes Finales

Y llegamos al final del post. Te he explicado las tres herramientas que conozco para optar por diferentes tipos de formateo, incluyendo la técnica del Zero Filling, pero es muy posible que existan más.

En cualquier caso, si solo conocías las posibilidades que ofrecen las herramientas gráficas como GParted (está ultima, una de las más conocidas para crear particiones en Linux) con esto habrás visto que tienes muchas más opciones a mano. Si tienes cualquier duda o sugerencia, te leo en los comentarios.

Un saludo!

10 comentarios en “Opciones Avanzadas para Formatear un Disco Duro o Partición en Linux

  1. Genial post.!! Me salvo la viejita Travelmate. Gracias mil!!

    Me gusta

  2. Muchas gracias hombre, me fue de gran ayuda la información, Saludos.

    Me gusta

  3. sudo mke2fs -l ext4 /dev/sdb, no es correcto en sintaxis, la opcion l, segun man mke2fs es:

    -l filename
    Read the bad blocks list from filename. Note that the block numbers in the bad block list must be generated using the
    same block size as used by mke2fs. As a result, the -c option to mke2fs is a much simpler and less error-prone method
    of checking a disk for bad blocks before formatting it, as mke2fs will automatically pass the correct parameters to
    the badblocks program.

    Es decir no es la mejor opcion para formatear con este comando para ello se usa la opcion -t de type para darle el formato deseado

    sudo mke2fs -t ext4 /dev/sdc1 por ejemplo ya que por defecto lo formatearía a ext2

    Me gusta

    1. Muchas Gracias por el comentario y la aclaración!
      Intento revisarlo y corregirlo hoy!

      Un abrazo

      Me gusta

  4. J Luis Lista 24 Sep 2017 — 00:55

    Excelente post

    Me gusta

  5. Hola, si ya he visto que había un par de errores en dos de los ejemplos, pero ya están arreglados.
    Gracias por la info:)

    Me gusta

  6. Interesante info, no conocia estas opciones, siempre he usado formateo rapido, pero no esta de mas saberlo.

    Me gusta

    1. Gracias, me alegra saberlo!
      Yo generalmente también soy más de formateo rápido, pero de vez en cuando puede venir bien.

      Me gusta

Deja un comentario

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