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.