Hace unos días se sobrescribieron todos mis metadatos en una tarjeta flash de formato ext4.
Ahora voy a especular sobre cómo sucedió esto. Esto es pura especulación. Sucedió justo después de que usé una tarjeta diferente. La etiqueta de volumen de la tarjeta ahora es la misma que la de la otra tarjeta. Entonces sospecho que no pude sincronizar/desmontar la otra tarjeta cuando la saqué. El lector de tarjetas no notifica adecuadamente al sistema cuando se extrae una tarjeta, por lo que el siguiente sistema generó una sincronización, el sistema no sabía que cambié las tarjetas y sobrescribió los metadatos.
Lo primero que hice cuando sucedió esto fue crear una imagen usando dd. Lo segundo que hice fue hacer que la imagen fuera de sólo lectura. Lo tercero que hice fue hacer una copia grabable de la imagen.
Descubrí photorec, que logró recuperar algunas cosas, pero no todas. Creo que una de las razones de esto es que no es destructivo.
Dado que algunos de los archivos recuperados son texto, sospecho que photorec utiliza información mínima sobre el formato del archivo, si corresponde.
Para intentar recuperar cualquiera de los otros archivos de la tarjeta, necesitaría saber cómo se distribuyen los archivos en ext2. Sospecho que lo básico es que los archivos se dividen en bloques, que se escriben en sectores y la información sobre cómo encontrar el siguiente sector se escribe de alguna manera en el sector actual.
Lo que necesito para continuar es información sobre cómo se escribe el puntero al siguiente sector.
PD: Estoy leyendo el código de Photorec, pero tengo algunos problemas para leerlo. Si soy yo o si el código es feo, no lo sé.
PPS: Encontré información sobre cómo se distribuyen los sistemas de archivos ext, pero parece que no puedo encontrar información básica sobre el diseño de archivos.
Respuesta1
PhotoRec escanea un disco (o imagen de disco) en busca de fragmentos contiguos de bytes que parecen formatos de archivos conocidos (por ejemplo, puede reconocer JFIF/EXIF (JPEG) por los encabezados de los segmentos). Bastante simple pero limitado.
El kit de detectivees una gran herramienta para profundizar en los sistemas de archivos. Con un poco de cuidado (y programando sus herramientas y editando hexadecimalmente la imagen del disco cuando se extravía), se puede utilizar para la recuperación.
Para obtener una herramienta que comprenda más profundamente la extensión, pruebeext4magia? (Todavía no he tenido la necesidad de usar esto).
Documentation/filesystems/ext2.txt
en las fuentes del kernel tiene una descripción general de alto nivel de la estructura general. ElWiki Ext4tiene buena información, incluyendoDiseño de disco Ext4que contiene más detalles (que se aplican en gran medida también a la extensión [23]).
Pero sí, los datos de un archivo se dividen en bloques. En ext2, cada archivo está representado por un inodo que contiene bloques directos (punteros a bloques de datos), bloques indirectos (que contienen punteros a bloques directos), bloques indirectos dobles y bloques indirectos triples. No hay vínculos de retroceso, por lo que para encontrar los hermanos de un bloque de datos, primero deberá escanear todos los inodos y los punteros del bloque para encontrar a su propietario.