Prevenir perdida de datos en memorias (usb,sd,etc)

Iniciado por Dj_Dexter, Noviembre 29, 2011, 01:22:09 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 29, 2011, 01:22:09 AM Ultima modificación: Julio 04, 2014, 10:36:57 PM por Expermicid
Escribo esta guia porque hace tiempo estube investigando como recuperar informacion de un pendrive.
El caso en cuestion es un pendrive usb de 256MB, pero les puede pasar hasta con una flamante sd de 2GB. Al querer leer la informacion en mi pc no podia acceder a ella, veia el usb montado, pero no tenia ni lectura ni escritura, asi que navegando encontre que hay muchas memorias en el mercado que dicen ser de una capacidad y son de otra, no crei que ese fuera el problema pero cfdisk daba error y fdisk me decia que la capacidad logica era mayor a la fisica(unos 2MB) es decir el pendrive tenia una particion erronea, pero todo no termina alli.

***Primero: como recupere la informacion.

Código: php
#dd if=/dev/sda1 of=/tmp/datos-usb.img 
(puede variar a /dev/sdb1 o sdb segun el caso)
Código: php
#mount -o loop /tmp/datos-usb.img /media/tmp

#recupere la info ya que no estaba lleno y pude montar la imagen

***EL error
Acotación:

Cita: La mayoría de usuarios windows utilizan su memoria usb tal y como viene formateada de fabrica. Error 1

El formateo de fabrica es en un 99% fat16 o como mucho fat32. Error 2

Tanto fat16 como fat32 son pésimos sistemas de archivos sobre todo para nombres de fichero largos como los de fotos de camara digital que contienen la fecha y un nombre muy largo como nombre de fichero. Error 3

Esto provoca que la perdida de datos sea muy habitual por corrupción en el sistema de archivos y que haya que recurrir a herramientas especiales para recuperar la informacón pero no siempre se consigue. Error 4

Kriptopolis


¿Entonces porque vienen todas formateadas en fat16?

1) porque se aprovecha mas el espacio a costa de la integridad de datos

2) por temas de patentes y compatibilidad hacia atras

3) no se admite por la maquina(camara digital)otro sistema de archivos que no sea fat16
------------------------------------------------------------------

Lo que (deberia haber hecho al comprarlo) hice:

Código: php
#fdisk /dev/sda 
(puede variar a /dev/sdb1 o sdb segun el caso)
1- d borrar particion
2- n crear nueva particion
3- t cambiar tipo (fat 32 ya que lo uso con maquinas windows)
4- w escribir y salir

formato:
Código: php
#mkfs.vfat /dev/sda1 (puede variar a /dev/sdb1 o sdb segun el caso)


si ni funciona eso y no accedes:
Código: php
#dd if=/dev/zero of=/dev/xxxy


donde: xxxy es la particion que quieres formatear. (eso llena a la particion del pendrive u otro de ceros y sirve en casos en que ni siquiera con el fdisk y despues el mkfs.vfat servian


Nota: segun la capacidad del dispositivo puede tardar horas en terminar eso (es una especie de formateo de bajo nivel)

Tambien puedes usar gparted para ello y seleccionar al /dev/sdb1 o segun el caso, y crearle una nueva tabla de particiones y formatearla :)

------------------------------
Acotación:

Cita: Con un formateo es suficiente a no ser que hayas tenido problemas de perdida de archivos y no los hayas podido recuperar, pero hay que distinguir entre formateo y crear una tabla de particiones.

Cuando adquieres una memoria flash ya viene preformateada en el 99% de los casos en fat16 por no decir el 100%.
Eso significa que primero fue creada una tabla de particiones y despues una unica particion formateada en el sistema de archivos fat16.

Esto en principio no tiene nada de malo, fat16 no usa journaling (espacio reservado en el sistema de archivos para recuperacion de datos en caso de un mal apagado o extracción, además de otras funciones) por lo tanto el espacio util para archivos será casi el máximo pues siempre se pierde algo de espacio por el formateo.

Pero precisamente por ser un sistema de archivos sin jornaling y otras lindezas tiene mayor propension a la corrupción de datos en caso de uso de muchos archivos y llenados de la flash muy altos. Lo que es muy tipico en usuarios con cientos o miles de fotos en una partición fat16 con nombres de archivos larguisimos y llenados de la flash al >80%. Esa es una de las razones de tantas perdidas de fotos y documentos por parte de usuarios windows que se acaban tirando de los pelos por haber perdido todas sus fotos de su viaje al caribe en su única y flamante SD de 2Gb donde por supuesto lo tenian todo sin copia de seguridad en un disco externo y jugandoselo todo a una sola tarjeta SD (siempre mejor 2 de 512mb que 1 de 1gb,sobre todo para fotos).

En el caso de las camaras digitales no queda más remedio que usar fat16 pues es el que entienden la camara (porque han sido diseñadas hasta el momento así, no porque tenga que ser necesariamente así) pero yo no llenaria la SD mas alla del 80% sin realizar una copia de seguridad.

Pero en el caso de las memorias flash usb para ordenador las opciones pueden ser muchas y variadas y no se está obligado a usar fat16 pues el ordenador puede entender cualquier sistema de archivos (en el caso de windows fat16/32,ntfs). Los usuarios linux pueden formatearlas en una gran variedad de excelentes sistemas de archivos con journaling y alta tolerancia a fallos como ext3, xfs, reiserfs...

Si eres un usuario solo windows y te mueves entre ordenadores WindowsXP/Vista y tu flash tiene 512mb o más puedes formatearla en NTFS que es mucho mejor que fat16 y fat32 y además tendras compatibilidad con linux pues a dia de hoy linux lee y escribe en ntfs (en algunas distros tienes que activar la escritura ntfs pero la lectura esta garantizada).

Para un correcto formateo de las memorias flash lo mejor es usar el propio sistema operativo y crear una tabla de particiones nueva.

Fuente:
Código: php
http://preguntaslinux.org/howto-prevenir-perdida-de-datos-en-memorias-nand-t-3892.html
+ readaptaciones y arreglos de erratas...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta