Todo el mundo tiene una unidad flash. Son pequeños objetos geniales y facilitan la protección de los datos. Sin embargo, a veces se pueden corromper o simplemente dejar de funcionar. Si sos un usuario de Linux y te ha pasado esto, hay una solución. En este artículo vamos a repasar unos cuantos trucos muy sencillos para que tu pendrive vuelva a funcionar.
Nota: los trucos descritos en este artículo no son necesariamente exclusivos de las unidades USB y se pueden utilizar también en los discos duros.
Eliminar los bloques defectuosos de la unidad USB con fsck
Una forma fácil de reparar una unidad flash, o cualquier unidad en realidad, es utilizar la herramienta fsck. Esta herramienta es ideal para eliminar los bloques de archivo defectuosos, ya que la mayor parte (si no toda) de la corrupción y la ilegibilidad proviene de problemas como éste. Para eliminar los bloques de archivos corruptos de la unidad flash USB, abrí una ventana de terminal e introducí los siguientes comandos.
Los usuarios deben averiguar cuál es la designación de la unidad en el sistema antes de poder avanzar. Para ello, introducí el comando lsblk. Esto listará todos los discos conectados en su sistema.
lsblk
Nota: el comando lsblk muestra todos los discos, no sólo las unidades USB. Prestá mucha atención a la salida, ya que es fácil confundir un disco duro con una unidad flash.
Para eliminar el bloque de archivos defectuosos, ejecutá el comando fsck en una partición específica (por ejemplo, /dev/sdc1), o en todo el disco (por ejemplo, /dev/sdc). Una vez completado, la unidad USB volverá a tener una partición sana y será totalmente operativa en Linux.
sudo fsck /dev/sdc1
Nota: este tutorial asume que la unidad flash es /dev/sdc (o /dev/sdc1). Podrías tener diferentes etiquetas para la unidad flash en tu sistema
Poner a cero la unidad USB
A veces una unidad USB puede ser totalmente ilegible hasta el punto de que ya no vale la pena guardarla. Cuando esto sucede, el mejor camino es simplemente poner a cero los datos y empezar de nuevo. La mejor herramienta para el trabajo en esta situación es dd, y funciona bastante bien.
Comenzá por tomar la etiqueta de la unidad que se encontró anteriormente con el comando lsblk, y aplicá la misma lógica (recordá que /dev/sdc1 es una partición, y /dev/sdc es un dispositivo completo).
sudo dd if=/dev/zero of=/dev/sdc
Crear una nueva partición
Listar Particiones
Antes de crear una partición vamos a listar los dispositivos de almacenamiento disponibles y particiones. Con esto identificaremos el dispositivo a particionar.
sudo parted -l
La salida muestra información acerca de:
- Modelo – Modelo del dispositivo de almacenamiento.
- Disco – Nombre y tamaño del disco.
- Tamaño de sector – Tamaño de la memoria lógica y física. No debe confundirse con el espacio disponible.
- Tabla de particiones – Tipo de table de particiones (msdos, gpt, aix, amiga, bsd, dvh, mac, pc98, sun o loop).
- Indicadores de disco – Particiones con información de tamaño, tipo, sistema de archivos y banderas.
Los tipos de particiones pueden ser:
- Primaria – Contiene los archivos del sistema operativo. Sólo se pueden crear cuatro particiones primarias.
- Extendida – Tipo especial de partición en la que se pueden crear más de las cuatro particiones primarias.
- Lógica – Partición que ha sido creada dentro de una partición extendida.
En nuestro ejemplo, hay dos dispositivos de almacenamiento (/dev/sda y /dev/sdb):
$ sudo parted -l Modelo: ATA WDC WD10PURX-64E (scsi) Disco /dev/sda: 1000GB Tamaño de sector (lógico/físico): 512B/4096B Tabla de particiones: msdos Indicadores de disco: Numero Inicio Fin Tamaño Tipo Sistema de archivos Banderas 1 1049kB 5120MB 5119MB primary linux-swap(v1) 2 5120MB 46,6GB 41,5GB primary ext4 arranque 3 46,6GB 1000GB 954GB primary ext4 Modelo: Kingston DataTraveler 2.0 (scsi) Disco /dev/sdb: 30,9GB Tamaño de sector (lógico/físico): 512B/512B Tabla de particiones: loop Indicadores de disco: Numero Inicio Fin Tamaño Sistema de archivos Banderas 1 0,00B 30,9GB 30,9GB fat32
Nota: El primer disco (dev/sda) contiene el sistema operativo. Crear una partición en este disco puede dejar el sistema no arrancable. Solo crear particiones en discos secundarios (dev/sdb, dev/sdc…).
Abrir el disco de almacenamiento
sudo parted /dev/sdc
Siempre hay que especificar el dispositivo de almacenamiento. Caso contrario, el disco se selecciona aleatoriamente. Para cambiar el disco a /dev/sdc ejecutá
select /dev/sdc
Crear una Tabla de Particiones
Antes de particionar el disco es necesario crear una tabla de particiones, ésta se encuentra al principio de un disco duro y almacena datos sobre el tamaño y la ubicación de cada partición.
Los tipos de tablas de partición son: aix, amiga, bsd, dvh, gpt, mac, ms-dos, pc98, sun y loop.
Para crear una tabla de particiones se emplea:
mklabel [tipo_tabla_de_partición]
Por ejemplo, para crear una tabla de particiones gpt, ejecutá el siguiente comando:
mklabel gpt
Escribí Sí/Yes para ejecutar:
Nota: Los dos tipos más comunes de tablas de partición son gpt y msdos. El último soporta hasta 16 particiones y formatea hasta 16TB de espacio mientras que gpt formatea hasta 9.4ZB y soporta hasta 128 particiones.
Revisar la tabla
Ejecutá el comando print para revisar la tabla de particiones. La salida muestra información sobre el dispositivo de almacenamiento:
Nota: Ejecutá el comando help mkpart para obtener ayuda adicional sobre cómo crear una nueva partición.
Crear un nuevo sistema de archivos
Poner a cero una unidad USB (o cualquier otro dispositivo) hace que los datos que contiene sean totalmente inútiles. Esto significa que tendrás que crear una nueva partición de datos. Elegí un sistema de archivos y ejecutá el comando
Fat32
sudo mkfs.vfat /dev/sdb1
Ext4
sudo mkfs.ext4 /dev/sdb1
NTFS
sudo mkfs.ntfs /dev/sdb1
Conclusión
Las memorias USB son dispositivos muy útiles. Facilitan la transferencia de datos de una computadora a otra, independientemente del sistema operativo que se esté ejecutando. Por eso es tan importante saber qué hacer cuando la unidad ya no es accesible. Por suerte, Linux cuenta con algunas herramientas muy útiles que hacen que guardar una unidad flash sea bastante fácil.