Muchas veces cuando empezamos a tener problemas con nuestro disco duro en el que empieza a no andar del todo bien, solemos apurarnos para conseguir otro y poder salvar los datos importantes que tengamos. A veces eso no puede hacerse y tenemos que recurrir a ciertas soluciones. Hoy te voy a mostrar una serie de pasos en la que nuestra distro GNU/Linux nos puede ayudar a salvar nuestro disco.

Fdisk, Badlocks y Fsck herramientas fundamentales para nuestros discos

Vamos a realizar algunas tareas para verificar el estado de nuestros discos:

1) Primero vamos a hacer: sudo fdisk -l

Con ésto vamos a obtener algo parecido a ésto (dependiendo de la cantidad de discos y particiones que tengamos). Comando ejecutado en mi RaspberryPi:


Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram8: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram9: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram10: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram11: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram12: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram13: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram14: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mmcblk0: 14,9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x189ab4d1

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1         2048  2285156  2283109  1,1G  e W95 FAT16 (LBA)
/dev/mmcblk0p2      2285157 31115263 28830107 13,8G  5 Extended
/dev/mmcblk0p5      2285568  2351101    65534   32M 83 Linux
/dev/mmcblk0p6      2351104  2480127   129024   63M  c W95 FAT32 (LBA)
/dev/mmcblk0p7      2482176 31115263 28633088 13,7G 83 Linux

Disk /dev/sda: 28,9 GiB, 31051513856 bytes, 60647488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0ce21734

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1  *       64 60647487 60647424 28,9G 83 Linux

Disk /dev/sdb: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1ddf9e0d

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdb1        2048 312575999 312573952  149G 83 Linux

2) Una vez que identificamos nuestra partición que está dañada (en el caso de que no lo sepamos) vamos a usar el comando badlocks para tratar de reparar lo dañado (Modo NO destructivo):

sudo badblocks -s -v -n -f /dev/sdX (Donde X es el disco que queremos reparar)

Ahora, ¿que quiere decir cada parámetro? Veamos:

  • -s: Nos muestra el proceso de escaneo del disco, mostrándonos los sectores ya chequeados.
  • -v: Nos indica el modo de escritura utilizado.
  • -n: Nos pone en modo no destructivo, esto quiere decir que se recuperarán los sectores dañados y la información en el disco duro no será dañada o eliminada.
  • -f: Reparará los sectores dañados.

3) Ahora, si quieren que el modo sea destructivo, es decir, que directamente toda info que esté en esos sectores dañados NO van a recuperarse, entonces debemos hacer lo siguiente:

sudo badblocks -wvs /dev/sdX (Donde X es el disco que queremos reparar)

Veamos los parámetros en éste comando:

  • -w: Modo escritura (destructivo).
  • -s: Nos muestra el proceso de escaneo del disco, mostrándonos los sectores ya chequeados.
  • -v: Nos indica el modo de escritura utilizado.

4) Tenemos también la opción de aislar los sectores dañados, es decir que esos sectores que estén con problemas directamente NO van a usarse más por lo que vamos a “perder algo de espacio en el disco” dependiendo de cuan grande sea el sector dañado. Para ésto haremos lo siguiente:

sudo fsck -cfvr /dev/sdX (Donde X es el disco que queremos reparar)

Vamos los parámetros en éste comando:

  • -c: Comprobar bloques en el disco.
  • -f: Forzar el chequeo, aunque todo parezca ok.
  • -v: Despliega más información.
  • -r: Modo interactivo. Espera nuestra respuesta.

Utilizado éstas herramientas podemos darle un poco más de vida a nuestro disco.

Aclaración: Utilizar éstas herramientas no garantiza que el disco se recupere al 100%, solo ayudará a reparlo siempre dependiendo del estado del disco (incluso el estado físico)


Seguinos en las redes sociales: