A veces, mi tarjeta SD se "corrompe" y esto provoca muchos errores de lectura/escritura. Por lo general, conectar la tarjeta SD a Windows 7 y seleccionar la opción "Comprobación de errores" (haga clic con el botón derecho en la unidad > Herramientas > Comprobación de errores) encuentra la corrupción y la corrige.
¿Cómo compruebo las tarjetas SD para ver si hay errores en la unidad y los soluciono desde el propio Android ?
También me gustaría mencionar que estoy en rooted froyo con busybox instalado.
Puede arreglar esto con la ayuda de root y un emulador de terminal (por ejemplo, Android Terminal Emulator (o, alternativamente, usando adb shell
). El binario para hacer el trabajo se llama fsck
y generalmente se encuentra en /system/xbin
o /system/bin
. A veces necesita una variante especial del mismo. , que podría llamarse, por ejemplo, fsck.exfat
o algo similar. Así que primero asegurémonos de encontrar el binario correcto:
cd /system/xbin
ls fsc*
Si no lo encuentra, repita con /system/bin
. Asumiré aquí que se encontró en primer lugar, y simplemente se llama fsck
(ajuste lo siguiente correspondientemente si ese no es el caso).
Como fsck
viene del "núcleo de Linux", podemos consultar su página de manual para la sintaxis. Aunque puede haber algunas opciones que no funcionen en Android, las más básicas deberían funcionar. Consulte la página de manual vinculada para obtener detalles (o ejecute una máquina virtual Linux y utilícela man fsck
en caso de que esa página desaparezca). Me limitaré a lo básico aquí:
Primero necesitamos encontrar el dispositivo al que está vinculada su tarjeta SD. Si está montado, el mount
comando nos ayudará:
mount
Eso es todo, básicamente: verifique la salida y vea dónde se encuentra su tarjeta SD. Por lo general, esto es algo que usa vold
, pero es diferente entre dispositivos. La salida puede incluir algo como /dev/block/vold/179:17 on /mnt/storage/sdcard
: en ese caso, la primera parte de mi cotización es nuestro dispositivo. Para reparar la "unidad", primero debe desmontarla. Esto se puede hacer a través del menú de configuración o, como solo estamos en la terminal, emitiendo
umount /dev/block/vold/179:17
Ahora podemos ir a por el trabajo de reparación. La sintaxis básica es:
fsck [options] [-t fstype] <filesystem> [fsoptions]
Entonces, primero probamos el enfoque más simple y esperamos fsck
resolver todo por sí mismo:
fsck -C -r /dev/block/vold/179:17
Lo que básicamente significa: mostrar el progreso (-C) y pedir siempre al usuario que repare (-r) cualquier error en /dev/block/vold/179:17
. Si esto no funciona, consulte con la página de manual vinculada para obtener más opciones.
cd
pasos si lo desea utilizando ls /system/bin/fsc*
y ls /system/xbin/fsc*
desde cualquiera que sea su directorio de trabajo actual. Incluso podría combinar los dos en un solo comando con ls /system/xbin/fsc* /system/bin/fsc*
.e2fsck
es el verificador del sistema de archivos para extFS. Entonces, si tiene un nombre diferente, es más bien fsck.fat
o fsck_msdos
(este último es un ejemplo del mundo real de una antigua ROM 2.2 de mi Moto).unknown option -- C
pero intenté ejecutarlo con solo fsck.exfat /dev/block/vold/179:9
. ¡Trabajado como un encanto!umount
, tienes que ser root?/dev
) de esa manera.adb shell su
). Esta respuesta y la de fsck_msdos me ayudaron a reparar mi tableta.Si bien otras respuestas son correctas (al menos parcialmente), solo para agregar algunas notas adicionales. En las versiones recientes de Android, no necesita ejecutar la verificación del sistema de archivos manualmente, ya que lo vold
maneja automáticamente. Consulte ¿Cuándo debo ejecutar una verificación de coherencia en mi tarjeta MicroSD extraíble?
Si desea hacer esto manualmente, necesita un dispositivo rooteado porque no es posible acceder a dispositivos de bloqueo en dispositivos no rooteados. También debe desmontar el sistema de archivos antes de verificar si hay errores. Dado que la tarjeta SD externa de Android 6 se monta /mnt/media_rw/[UUID]
y luego se emula en /mnt/runtime/[VIEW]/[UUID]
. A continuación, se monta una VISTA/storage/[UUID]
en . Ver detalles en ¿Cómo guardar archivos en una tarjeta SD externa? .
Después de desmontar la tarjeta SD por completo, ejecute fsck.*
el binario respectivo en el dispositivo de bloque. Por lo general init
, enumera el dispositivo de bloqueo de la tarjeta SD como /dev/block/mmcblk1p*
( p*
indica el número de partición, generalmente es solo 1
) mientras vold
crea otro nodo de dispositivo en /dev/block/vold/[MAJOR:MINOR]
. Debe encontrar el dispositivo de bloque correcto (también puede verificarlo mount | grep /mnt/media_rw
antes de desmontar el sistema de archivos).
Para la familia de sistemas de archivos FAT[N], puede usar fsck_msdos
(o fsck.fat
), y fsck.exfat
para exFAT. Si estos no están construidos con su ROM (exFAT era un código cerrado hasta hace poco, por lo que podría haber problemas de licencia), puede usar binarios externos. O compilar a partir del código fuente ( dosfstools o exfat ).
Para ejecutar la verificación del sistema de archivos:
~# fsck.exfat /dev/block/mmcblk1p1
gracias por 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
Encontré una aplicación llamada AParted en el mercado que puede "reparar algunas tarjetas SD dañadas y buscar bloques defectuosos", etc.
Si no me equivoco, puede obligar a Android a que fsck tanto el almacenamiento interno como el externo al reiniciar haciendo lo siguiente según su ROM.
ejecute la aplicación de terminal y escriba
su
touch /forcefsck
Luego reinicie.
Si su teléfono no está rooteado, esto definitivamente fallará.
fsck
realmente se ejecutó o no?touch /forcefsck
solo funcionará en un dispositivo con un script de inicio que verifique la presencia de un /forcefsck
archivo. No conozco un solo dispositivo Android que tenga una secuencia de comandos de inicio de este tipo. Entonces, aunque su técnica probablemente funcionará en dispositivos Debian, Ubuntu y Mint, dudo mucho que funcione en cualquier dispositivo Android. Si alguien alguna vez encuentra un solo dispositivo Android con un script de inicio que verifica /forcefsck
, ¡hágamelo saber! Simplemente responde a este comentario.
Codificación