51 votos

¿Comprobar y arreglar los errores de la tarjeta SD dentro del propio Android?

A veces mi tarjeta SD se "corrompe" y esto lleva a muchos errores de lectura/escritura. Normalmente, conectando la tarjeta SD al Windows 7 y seleccionando el "Error Checking" (Haga clic con el botón derecho del ratón en la unidad > Herramientas > Comprobación de errores) encuentra la corrupción y la arregla.

¿Hay alguna herramienta o aplicación para comprobar si las tarjetas SD tienen errores en la unidad y arreglar la misma desde el interior del propio Android ?

También me gustaría mencionar que estoy en un froyo rooteado con una caja de ritmos instalada.

0 votos

¿Has probado con una aplicación de terminal, haciendo un su y ejecutando el /system/bin/fsck.exfat ?

1 votos

@Izzy me da No such file or directory

0 votos

Comprueba diferentes lugares, tal vez esté en /system/xbin ¿en su lugar? Prueba con cd en el directorio, y ls fsc* para comprobar qué hay disponible. Debe estar en alguna parte :)

18voto

Izzy Puntos 45544

Puedes arreglar esto con la ayuda de Root y un emulador de terminales (por ejemplo. Emulador terminal de Androids (o, alternativamente, utilizando adb shell ). El binario para hacer el trabajo se llama fsck y normalmente se encuentra en /system/xbin o /system/bin . A veces se necesita una variante especial de ella, que podría, por ejemplo, llamarse fsck.exfat o algo parecido. Así que primero asegurémonos de encontrar el binario correcto:

cd /system/xbin
ls fsc*

Si no se encuentra, repita con /system/bin . Asumiré que aquí se encontró en primer lugar, y se llama simplemente fsck (ajuste lo siguiente de manera correspondiente si no es así).

Como fsck viene del "núcleo de Linux", podemos consultar su página de hombre para la sintaxis. Aunque puede haber algunas opciones que no funcionen en Android, las más básicas deberían. Vea la página del manual de enlaces para más detalles (o ejecute una VM de Linux y use man fsck en caso de que esa página desaparezca) -- Me apegaré a lo básico aquí:

Primero tenemos que encontrar el dispositivo al que está vinculada su tarjeta SD. Si está montado, el mount El comando nos ayudará:

mount

Eso es, básicamente: Revisa la salida y mira dónde se encuentra tu tarjeta SD. Normalmente esto es algo que usa vold pero es diferente entre los dispositivos. La salida puede incluir algo como /dev/block/vold/179:17 on /mnt/storage/sdcard --en ese caso, la primera parte de mi cita es nuestro dispositivo. Para poder reparar el "drive", necesitas desmontarlo primero. Esto se puede hacer a través del menú de configuración, o, como estamos en la terminal, emitiendo

umount /dev/block/vold/179:17

Ahora podemos ir por el trabajo de reparación. La sintaxis básica es:

fsck [options] [-t fstype] <filesystem> [fsoptions]

Así que primero intentamos el enfoque más simple y esperamos fsck se da cuenta de todo por sí mismo:

fsck -C -r /dev/block/vold/179:17

Lo que básicamente significa: Mostrar el progreso (-C), y siempre pedir al usuario que repare (-r) cualquier error en /dev/block/vold/179:17 . Si esto no funciona, compruebe en la página del hombre vinculado para más opciones.

4 votos

También puede ahorrarse el cd pasos si lo desea mediante el uso de ls /system/bin/fsc* y ls /system/xbin/fsc* desde el directorio de trabajo actual. Incluso puede combinar los dos en un solo comando con ls /system/xbin/fsc* /system/bin/fsc* .

0 votos

En algunos sistemas el comando también puede llamarse e2fsck, como en mi Galaxy Nexus australiano de serie.

0 votos

@LieRyan ¿Seguro que no confundes las cosas? e2fsck es el verificador del sistema de archivos para extFS. Así que si tiene un nombre diferente, es más bien fsck.fat o fsck_msdos (este último es un ejemplo del mundo real de una vieja ROM 2.2 de mi Moto).

5voto

Jack Wade Puntos 231

Mientras que otras respuestas son correctas (al menos parcialmente), sólo para añadir algunas notas adicionales. En las versiones recientes de Android no es necesario ejecutar la comprobación del sistema de archivos manualmente, ya que vold se encarga de ello automáticamente. Véase ¿Cuándo debo realizar una comprobación de consistencia en mi tarjeta MicroSD extraíble?

Si quieres hacer esto manualmente, necesitas un dispositivo rooteado porque no es posible acceder a los dispositivos de bloque en dispositivos no rooteados. También es necesario desmontar el sistema de archivos antes de comprobar los errores. Como la tarjeta SD externa de Android 6 se monta en /mnt/media_rw/[UUID] y luego se emula en /mnt/runtime/[VIEW]/[UUID] . A VER se monta en bind a /storage/[UUID] . Ver detalles en ¿Cómo se guardan los archivos en la tarjeta SD externa? .

Después de desmontar la tarjeta SD por completo, ejecute la correspondiente fsck.* binario en el dispositivo de bloque. Normalmente init enumera el dispositivo de bloque de la tarjeta SD como /dev/block/mmcblk1p* ( p* denota el número de la partición, normalmente es sólo 1 ) mientras que vold crea otro nodo de dispositivo en /dev/block/vold/[MAJOR:MINOR] . Debe encontrar el dispositivo de bloque correcto (también puede comprobarlo mediante mount | grep /mnt/media_rw antes de desmontar el sistema de archivos).

Para los sistemas de archivos de la familia FAT[N] se puede utilizar fsck_msdos (o fsck.fat ), y fsck.exfat para exFAT. Si estos no están construidos con su ROM (exFAT era de código cerrado hasta hace poco, por lo que podría haber problemas de licencia), puede utilizar binarios externos. O construir desde ( dosfstools o exfat ) del código fuente.

Para ejecutar la comprobación del sistema de archivos:

~# fsck.exfat /dev/block/mmcblk1p1

3voto

Code Bling Puntos 101

Si tiene errores repetidos en su tarjeta SD, debe asegurarse de que realmente es de la capacidad declarada usando H2testw

0 votos

Gracias por el upvote a esta respuesta tan olvidada. Probablemente debería ser un comentario, pero probablemente no tenía la reputación para ello en ese momento. Voy a dejar esto aquí por ahora hasta que el comentario se upvoted y es visible.

0 votos

He subido tu comentario.

0 votos

@unforgettableid Gracias, sólo quiero asegurarme de que todo el mundo conoce este riesgo. Realmente es una mierda perder datos.

2voto

junior Puntos 11

gracias a esto, me salva el día :)

root@android:/ # mount | grep -i sdcard
/dev/block/nandk /mnt/sdcard vfat rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

root@android:/ # /system/bin/fsck_msdos -y /dev/block/nandk

0 votos

Gracias por publicar esta respuesta, me ha ayudado muchísimo. Desde la respuesta aceptada no sabía cómo arreglar un sistema de archivos vfat. Subido.

1voto

Power-Inside Puntos 1863

He encontrado una aplicación en el mercado que puede "Reparar la tarjeta SD dañada y escanear en busca de bloqueos", etc.

https://play.google.com/store/apps/details?id=com.sylkat.AParted&hl=en

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X