¿Cómo se presentan los archivos en ext2 / ext3 / ext4?

8

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 usar una tarjeta diferente. La etiqueta de volumen en la tarjeta ahora es la misma que la otra tarjeta. Entonces sospecho que no pude sincronizar / desmontar la otra tarjeta, cuando la saqué. El lector de tarjetas no notifica correctamente al sistema cuando se extrae una tarjeta, por lo que el siguiente sistema generó sincronización, el sistema no sabía que había cambiado 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 solo lectura. Lo tercero que hice fue hacer una copia de la imagen que se pueda escribir.

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 usa información mínima sobre el formato del archivo, si lo hay.

Para intentar recuperar cualquiera de los otros archivos de la tarjeta, necesitaría saber cómo se presentan 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: He encontrado información sobre cómo se distribuyen los sistemas de archivos ext, pero parece que no puedo encontrar información básica de diseño de archivos.

Ratón. La suerte. Perro
fuente

Respuestas:

4

PhotoRec escanea un disco (o imagen de disco) buscando fragmentos contiguos de bytes que se parecen a los formatos de archivo conocidos (por ejemplo, puede reconocer JFIF / EXIF ​​(JPEG) por los encabezados de segmento). Bastante simple pero limitado.

El Kit Sleuth es una gran herramienta para cavar en sistemas de archivos. Con un poco de cuidado (y haciendo scripts de sus herramientas y editando hexadecimalmente la imagen del disco cuando se extravía), se puede usar para la recuperación.

Para una herramienta que entienda más profundamente ext, prueba ext4magic ? (Todavía no he tenido necesidad de usar esto todavía).

Documentation/filesystems/ext2.txten las fuentes del núcleo tiene una visión general de alto nivel de la estructura general. El Wiki de Ext4 tiene buena información, incluido el diseño de disco Ext4 que contiene más detalles (en gran parte se aplica también a ext [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 tendrá que escanear todos los inodos y punteros de bloque para encontrar a su propietario.

efímero
fuente