Desde mis inicios con Linux una de las cosas que me ha llamado la atención es la gran diversidad de formas para realizar una misma acción, esto ha logrado que mi comodidad con este sistema sea aun mas grande ya que me ha permitido encontrar la manera mas sencilla (a mi parecer) de realizar las cosas.
Una de estas cosas es el formatear unidades, iniciando desde aplicaciones como GParted hasta opciones mas ligeras como cfdisk, pero como todo buen adicto de la terminal hace ya algún tiempo encontré un método que me permite hacerlo con un simple comando sin la necesidad de ejecutar una aplicación.
Para lograrlo solo necesitamos saber un par de cosas, la primera es identificar el nombre del dispositivo a formatear y la segunda es conocer el estado en que se encuentra, ya sea que este montada o no (algunos sistemas están configurados para montar particiones automáticamente) para lograr esto basta ejecutar como Root el comando fdisk -l el cual nos mostrara una salida parecida a la siguiente:
Disco /dev/sda: 500.1 GB, 500107862016 bytes
255 cabezas, 63 sectores/pista, 60801 cilindros, 976773168 sectores en total
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico / físico): 512 bytes / 4096 bytes
Tamaño E/S (mínimo/óptimo): 4096 bytes / 4096 bytes
Identificador del disco: 0xaa55aa55
Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 63 199993184 99996561 83 Linux
La partición 1 no se inició en el limite físico del sector
/dev/sda2 972771328 976771071 1999872 82 Linux swap / Solaris
/dev/sda3 * 912771072 972771327 30000128 83 Linux
/dev/sda4 412770304 912771071 250000384 83 Linux
Las entradas de la tabla de particiones no están en el orden del disco
Disco /dev/sdb: 8032 MB, 8032092160 bytes
131 cabezas, 50 sectores/pista, 2395 cilindros, 15687680 sectores en total
Unidades = sectores de 1 * 512 = 512 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 del disco: 0x000d87be
Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 2048 15687679 7842816 b W95 FAT32
En donde /dev/sdXX es la ubicación o nombre de nuestro dispositivo a formatear, ahora solo nos queda desmontar la partición con el comando umount /dev/sdXX y ya tendremos todo listo para poder formatear la unidad.
La manera mas simple es usar el comando mkfs el cual tiene una buena cantidad de variables para hacer mas cómodo su uso.
mkfs.ext2 para particiones EXT2
mkfs.ext3 para particiones EXT3
mkfs.ext4 para particiones EXT4
En su defecto también podemos usar solo mkfs y al cual solo nos faltara especificar el tipo de partición requerida con la variable -t, por ejemplo, suponiendo que queremos formatear la partición /dev/sda1 con el tipo EXT4 bastara con ejecutar como Root lo siguiente:
# mkfs -t ext4 -L archlinux -v /dev/sda1
La variable -L sirve para ponerle una etiqueta (label) a nuestra partición y -v (verbose) nos muestra una salida detallada del proceso.
Para crear particiones tipo NTFS podemos usar mkfs.ntfs o en su defecto mkntfs, también podemos usar las variables del caso anterior.
# mkntfs -L winbugs -v /dev/sda1
Las particiones FAT son las que normalmente usan las memorias USB y para lograr darles formato podemos usar ya sea mkfs.vfat o mkdosfs, un ejemplo con sdb1 seria:
# mkfs.vfat -v -n etiqueta -F 32 /dev/sdb1
Podemos notar que las variables son un poco distintas en cuanto a las particiones tipo FAT.
-n: es para colocar la etiqueta.
-F es el tipo a utilizar, ya sea de 12, 16 o 32, en caso de no especificar esta variable mkfs.vfat automáticamente seleccionara alguna de acuerdo al tamaño de la unidad.
-v: verbose queda de la misma manera que los casos anteriores.
Estos son los tipos de particiones mas comunes, en caso de querer conocer otros o conocer el resto de las variables podemos consultar las man_pages de cada comando.