Recuperación de ecryptfs rotos en la tarjeta SD con lollipop

Esta mañana mi teléfono se congeló y tuve que reiniciarlo por completo. Ahora, cuando arranco e inserto mi tarjeta SD, recibo los siguientes dos mensajes:

  1. Preparando la tarjeta SD/comprobando errores.
  2. Un cuadro de diálogo que ofrece cifrar mi tarjeta SD. Aquí puedo elegir deshabilitar o continuar, ingresando la contraseña de mi dispositivo.

Hasta ahora solo he intentado continuar, con la contraseña del dispositivo; luego tengo "cifrado de tarjeta SD que cifra la tarjeta SD" junto con la verificación de errores.

Así que comencé a cavar. En primer lugar

$ mount | grep -i extsdcard                    
/dev/block/vold/179:65 /mnt/media_rw/extSdCard exfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=utf8,namecase=0,errors=remount-ro 0 0
/mnt/media_rw/extSdCard /storage/extSdCard sdcardfs rw,seclabel,nosuid,nodev,relatime,uid=1023,gid=1023,derive=unified 0 0
/storage/extSdCard /storage/extSdCard ecryptfs rw,seclabel,nodev,relatime,ecryptfs_sig=094f421508772d43,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_cc,ecryptfs_passthrough 0 0

Entonces puedo ver que estoy usando ecryptfs y la tarjeta SD está formateada exfat (puaj, pero no importa). Tenía sospechas sobre el estado del sistema de archivos exfat, así que seguí la respuesta más votada de esta pregunta . fsck.exfat /dev...devuelve "sin errores" por lo que es feliz. Puedo buscar la tarjeta SD en el shell y ver los archivos, pero obviamente no su contenido, por lo que el sistema de archivos exfat aparece intacto.

Entonces, el problema que tengo es claramente con la capa ecryptfs. Mi pregunta es por lo tanto:

  1. ¿Hay alguna herramienta similar a fsck que pueda ejecutar con algún resultado real para saber qué está pasando con ecryptfs?
  2. En su defecto, ¿puedo extraer del dispositivo la clave utilizada para cifrar los archivos de la tarjeta SD?
  3. Si solo espero, ¿se arreglará solo? Supongo que no...

Idealmente, me gustaría recuperar esos archivos, sin embargo, no hay nada allí que sea crítico.

Entorno: lollipop rooteado samsung s5, firmware de stock, recuperación personalizada (twrp), busybox, supersu.

Respuestas (1)

Mismo teléfono, mismo problema (excepto que mi teléfono no está rooteado), pero finalmente se resolvió solo.

Publicando los pasos exactos que seguí en caso de que ayude a alguien más:

  1. En el primer reinicio (cuando ocurrió el problema por primera vez), el teléfono dijo que estaba preparando el dispositivo y luego de unos segundos me dijo que era seguro quitar la tarjeta (pero no había pedido desmontarla). Al ir al menú de almacenamiento, tuve la misma experiencia que el OP anterior. Seguía diciendo 'dispositivo de preparación' y nunca terminaba.

  2. Reinicié el dispositivo, igual que el n. ° 1.

  3. Repetido. Dejé el mensaje 'preparando dispositivo/comprobando errores' durante unos 20 minutos esta vez, pero aún así nunca se completó.

  4. Conectado a la computadora, depuración USB habilitada. Usando adb shellel comando siguiendo los consejos de OP, encontré que no se podía acceder al directorio de montaje de la tarjeta SD y no podía desmontarlo sin root.

  5. Reinicié el teléfono por última vez. En el arranque inicial, el teléfono decía "dispositivo en preparación" y luego decía "la tarjeta SD está encriptada". Ignoré esta notificación y pude usar adb shellpara ver los archivos y copiarlos en mi PC. Todos los archivos eran legibles. Luego borré la notificación y todo estuvo bien.

No creo que nada de lo que hice fuera responsable de solucionar el problema, pero si sigues los mismos pasos, espero que te suceda lo mismo.