Arregla una memoria USB o SD muerta con Linux
Te ha pasado que guardas informacion en tu USB o memoria SD y depronto por arte de magia ya no puedes ver? , ni tus archivos ni tus fotos , ni nada.
Si quieres saber la solucion con linux, sigue leyendo.
- Solucion Sencilla con linea de Comandos
- Soluccion Avanzada con linea de Comandos
- Solucion Sencilla con Interfaz Grafica
Solución sencilla en linea de Comandos
Para este paso y lo primero que haremos sera abrir nuestra terminal de comandos.
En este primer paso vamos a determinar si Ubuntu (u otra distribución de Linux) está detectando y montando la tarjeta. Para esto vamos a utilizar primeramente el siguiente comando:
sudo fdisk -l
dentro de la anterior lista deberiamos ser capaces de ver nuestro dispositivo, una forma sencilla de saberlo es por la columna “size” ya que esta indica el tamaño de dispositivo, tamaños de entre 3.5 Gb hasta 64 Gb mostraran que es una posible memoria o tambien el “Type” que suele ser un FAT.
De resto tengamos cuidado que aqui mismo en esta lista esta nuestro sistema tambien , otra forma de identifcar es por la letra por ejemplo sda hace referencia a un disco completo, sda1 hacer referencia a la primera particion de este disco, otro disco (otra memoria) tiene que tener otra nomenclatura por ejemlo sdb , presten atencion al cambio de la ulitma letra y la primera particion de este otro disco puede ser sdb1, esto solo es un ejemplo.
Para el siguiente paso que es formatear nuestra memoria a dos opciones una es con cfdisk , o la otra es con el mismo fdisk
CFDISK
sudo cfdisk
Buscamos en la lista nuestro dispositivo y eliminamos la partición [Delete] y posteriormente escribimos una nueva [Write]. Antes, podemos elegir el tipo [Type] de nuestra preferencia que por lo general es FAT32 o NTFS.
En caso de que lo anterior no funcione o el dispositivo no aparezca en ninguna de las listas (como sucede en las capturas de pantalla), procedemos con los siguientes pasos.
FDISK
fdisk NOMBRE
donde NOMBRE es el nombre del dispositivo (ej.: /dev/sdb)
Seleccioná o -> Borrá la tabla de particiones.
Seleccioná n -> Creá una particion.
Seleccioná p -> Esta partición será la primaria.
Seleccioná 1 -> Que sea la primera particion.
Te preguntará por el tamaño, si querés que la partición ocupe todo, dale los a los valores por defecto.
Seleccioná t -> Elegí el tipo de formato de la partición.
Seleccioná 7 -> Para NTFS/HFS/ExFat.
Seleccioná w -> Para que se escriban los datos en el USB.
Finalmente, formateá la partición creada como FAT32:
mkfs.exfat /dev/sdxn
donde NOMBRE es el nombre de la partición (ej.: /dev/sdb1). A modo de lección, me parece importante notar que, siguiendo el ejemplo, /dev/sdb es el nombre del dispositivo y /dev/sdb1 es el nombre de la primer partición dentro de ese dispositivo, que en nuestro caso además es la única partición. Si hubiera habido más particiones en ese dispositivo, se numerarían sdb2, sdb3, etc. Esta misma lógica se repite para todos tus dispositivos y particiones en Linux.
Solución avanzada
Si bien estos pasos contienen algunos comandos un poco menos comunes no son difíciles de seguir. Utilizamos el siguiente comando en la terminal:
lsblk
Es muy probable que nuestro dispositivo aparezca en la lista. Si nuestro dispositivo aparece debemos identificar su nombre (ej. /dev/sdb, este es el nombre que usaremos para los ejemplos, debes cambiarlo de acuerdo a tu caso) . Es posible que si el dispositivo tiene problemas la información sobre capacidad y formato sea incorrecto. También es posible que tenga un 1 en la columna RO. Esto significa que el dispositivo se encuentra en modo de Solo Lectura. Antes de continuar debemos verificar que si se trata de una memoria MicroSD y estamos utilizando un adaptador, el interruptor de bloqueo (Lock) no se encuentre activado (hacia abajo).
Debemos utilizar el siguiente comando para verificar que el dispositivo no esté montado:
sudo umount /dev/sdb
Precedemos a intentar con los siguientes comandos:
sudo fsck.vfat -f -p /dev/sdb
En caso de fallar utilizamos el siguiente:
sudo fsck.vfat -f -v /dev/sdb
Si no funciona intentamos con el siguiente donde d=delete (borrar partición) y w=write (escribir una nueva partición):
sudo fdisk /dev/sdb
Si continuamente recibes el mensaje de error que se refiere a que el dispositivo está en modo de Solo Lectura intentamos forzar la salida de este modo:
sudo hdparm -r0 /dev/sdb
Si el problema continua podemos intentar reescribir todos los sectores del dispositivo con ceros. Ten mucho cuidado de elegir el dispositivo correcto porque esto destruirá toda la información contenida en él.
dd if=dev/zero of=/dev/sdb
Este proceso puede tardar un rato. Una vez finalizado puedes volver a usar el siguiente comando para crear una nueva partición:
sudo cfdisk
O bien puedes usar una herramienta con interfaz gráfica como Disks o GParted.
En el caso de que sospeches que se trata de un problema más sencillo como una tabla de partición corrupta puedes usar la herramienta TestDisk y recuperar las tablas.
SOLUCION SENCILLA CON GPARTED (GUI)R
GParted propone una forma más cómoda de reparar una memoria. GParted es el Editor de particiones de GNOME para el trabajo general con particiones de disco, permite ejecutar acciones sobre las particiones como:
- Crear y borrar.
- Redimensionar o mover.
- Etiquetar.
- Verificar.
- Copiar y pegar.
- Obtener información de la partición.
- Dar formato.
- Gestionar puntos de montaje.
Primero se debe verificar que el GPArted esté instalado, de no estarlo, solo se debe introducir el siguiente comando:
sudo apt-get install gparted
Una vez instalado, abrír gparted.
Luego abrír el menú Gparted > Dispositivos > /dev/sdb. Seleccionar la unidad en cuestión, hacer clic derecho > Desmontar.
Todo lo que resta hacer es borrar la partición actual, crear una partición FAT32 y aplicar los cambios.
En caso de error, acceder a las opciones avanzadas en la misma ventana de error y seleccionar Crear una tabla de particiones del tipo msdos. Después repetir el proceso.
Una vez la partición esté creada, hay que formatearla en FAT32. Finalmente, se aplican los cambios.
A modo de lección, es importante notar que, /dev/sdb es el nombre del dispositivo y /dev/sdb1 es el nombre de la primera partición dentro de ese dispositivo. Si hubiera más particiones en ese dispositivo, se numerarían sdb2, sdb3, etc. Esta misma lógica se repite para todos los dispositivos y particiones en Linux.
por ultimo si tienes sectores dañados intenta lo siguient
#badblocks
Con este comando podremos analizar nuestros discos duros sin que haya perdida de datos, sin embargo tienen que estar desmontados para que funcione de una manera mas correcta.
Se usa de la siguiente forma
# badblocks -svnf /ruta/del.disco
En mi caso fue:
$ sudo badblocks -svnf /dev/sdc
Bueno. después de ejecutar el proceso aceptamos que va a reparar el disco y tardara dependiendo del tamaño del disco, en realidad si es tardado, tardo para un disco de 100GB aproximadamente como 15 horas y como no era el disco donde estaba mi sistema operativo lo pude hacer sin problemas y lo que hizo fue dejar sin uso los sectores que no pudieron ser recuperados y recuperar los que pudo.
Flags
-s >>> nos muestra el proceso de escaneo del disco, mostrandonos los sectores ya checados.
-v >>> modo verbose (común en muchos comandos)
-n >>> nos pone en modo no destructivo, esto es que se recuperaran los sectores dañados y la informacion en el disco duro no sera dañada o eliminada.
-f >>> repara los sectores dañados.
La forma grafica mas eficiente despues de badblocks pero no tan efectiva es gparted.
Fuentes:Emmanuel Rodriguez
https://mgsanchezs.wordpress.com/2010/09/06/reparar-sectores-danados-de-discos-duros-o-memorias-flash-con-linux/
0 Comments