Las comprobaciones periódicas de coherencia del sistema de archivos son probablemente una buena idea. ¿Los dispositivos Android actuales alguna vez los hacen?

Permítanme comenzar brindándoles algunos antecedentes generales. Mi pregunta real está en la parte inferior de esta publicación.


Antecedentes, parte 1: repeticiones de diario frente a comprobaciones de coherencia.

Suponga que su dispositivo Android utiliza el sistema de archivos ext4 para su almacenamiento interno y el sistema de archivos FAT32 para su almacenamiento MicroSD extraíble (si está presente).

En ext4, una "reproducción del diario" es una operación de revisión y reparación parcial del sistema de archivos que normalmente no toma más de unos pocos segundos. ( Fuente ). El kernel de Android hace una repetición del diario cuando es necesario. (Basado en esta fuente y esta fuente ).

En ext4, una verificación completa de la coherencia del sistema de archivos lleva más tiempo. Para un dispositivo Android promedio, toma alrededor de 12 segundos. (Basado en esta fuente ).

FAT32 es un sistema de archivos sin diario. Así que no hay repeticiones de diarios. Solo hay controles de consistencia.


Antecedentes, parte 2: probablemente sea una buena idea que su sistema operativo realice comprobaciones de coherencia periódicas. Este es el por qué.

El administrador de programas de Microsoft, Kiran Bangalore, escribe que hay ciertos casos en los que un sistema de archivos puede corromperse. En un sistema de archivos de diario como ext4, estos casos son extremadamente raros. En las tarjetas MicroSD extraíbles, sospecho que estos casos no son tan raros.

La forma habitual de verificar dicha corrupción es configurar su sistema operativo para ejecutar una herramienta de verificación de coherencia de vez en cuando. Dichas herramientas incluyen chkdskScanDisk, Apple Disk Utility fscky otras.

Incluso en el almacenamiento ext4 integrado en un dispositivo Android, las comprobaciones periódicas de coherencia son probablemente una buena idea. La tune2fspágina del manual explica por qué:

Las unidades de disco, los cables, la memoria y los errores del kernel defectuosos pueden corromper un sistema de archivos sin marcar el sistema de archivos como sucio o con errores. Si está utilizando el diario en su sistema de archivos, su sistema de archivos nunca se marcará como sucio, por lo que normalmente no se verificará. Un error del sistema de archivos detectado por el kernel [puede] aún forzar una [comprobación de coherencia] en el próximo reinicio, pero puede que ya sea demasiado tarde para evitar la pérdida de datos en ese momento.

(Tenga en cuenta que, en Android, creo que un error del sistema de archivos detectado por el kernel no conducirá a una verificación de coherencia en el próximo reinicio. Android es extraño de esa manera).


Antecedentes, parte 3: esto es lo que hacen otros sistemas operativos.

ventanas

Windows Vista y todas las versiones posteriores de Windows incluyen una función de recuperación automática de NTFS . Por lo tanto, Kiran Bangalore escribe que, hoy en día, los usuarios de Windows ya no necesitan ejecutar comprobaciones de coherencia periódicas. Explica que el sistema operativo "le informará cuando... se encuentre corrupción".

Windows 10 móvil

Windows 10 Mobile es probablemente el tercer sistema operativo para teléfonos inteligentes más popular . Creo que usa NTFS. Entonces, tal vez también pueda hacer la autocuración de NTFS.

sistema operativo X

Mac OS X se ejecuta fsck_hfs -pdurante cada arranque . No sé qué hace esto. Consulte la página del manual .

linux

Es cierto que algunos desarrolladores de ext4 dicen que las comprobaciones periódicas de consistencia de ext4 no son particularmente útiles. Pero otros desarrolladores de ext4 dicen que estas comprobaciones mejoran la seguridad y la fiabilidad.

En la práctica, cuando un sistema de archivos se marca como erróneo, Linux ejecuta una verificación de coherencia en el próximo reinicio. En otras ocasiones, las distribuciones modernas de Linux nunca realizan comprobaciones de coherencia periódicas automáticas. Aquellos que los deseen deben programar estos controles ellos mismos.

Androide

Stock Android incluye una herramienta de verificación de consistencia ext4 . Además, incluye una herramienta de verificación de consistencia que funciona en tarjetas MicroSD extraíbles de 32 GB o menos (pero puede dañar tarjetas más grandes). Finalmente, su dispositivo puede o no incluir fsck.exfato exfatfsck, para ejecutar verificaciones de consistencia en tarjetas MicroSD extraíbles de 64 GB o más.

Pero, ¿el sistema operativo alguna vez ejecuta alguna de estas herramientas automáticamente?

iOS

El sistema de archivos de iOS normalmente es HFSX o APFS, y fsckse incluye con el sistema operativo. No sé si iOS alguna vez ejecuta comprobaciones automáticas de coherencia.


Aquí está mi pregunta.

Tenga en cuenta las ROM de stock enviadas con los dispositivos Android actuales.

¿Dichas ROM de stock ejecutan periódicamente comprobaciones de coherencia, ya sea en el dispositivo de almacenamiento interno o (si corresponde) en la tarjeta MicroSD extraíble?

(PD: en los casos en que un dispositivo se apaga correctamente y le queda suficiente carga de batería, es posible ejecutar una verificación de consistencia al apagar en lugar de al encender. Pero se necesita un poco de esfuerzo de ingeniería para implementar dicha funcionalidad, por lo que los desarrolladores de sistemas operativos normalmente no No te molestes. Me pregunto qué hace Android.)

(PPS, también me pregunto si existen o no teléfonos inteligentes, que ejecuten algún sistema operativo, que realicen comprobaciones de coherencia periódicas de rutina. Una vez más, publique los comentarios a continuación).

Respuestas (1)

Versiones de Android aún no lanzadas

Se han realizado algunas mejoras recientes en el código fuente de Android.

La próxima versión de mantenimiento de stock de Android será la 7.2 o la 8.0. En alguna versión futura de Android estándar, ya sea esa versión de mantenimiento o una versión posterior, Android ejecutará el comando fsck -f -y durante cada apagado normal . Este comando fuerza una verificación de consistencia en el almacenamiento interno, pase lo que pase. (Basado en esta fuente y esta fuente ).

¡Hurra! Teniendo en cuenta que muy pocos usuarios de Android realizan copias de seguridad completas (por ejemplo, copias de seguridad de Nandroid), creo que esto puede ser una mejora útil.

Desafortunadamente, todavía no conozco ninguna evidencia de que Android alguna vez verifique cualquier tarjeta MicroSD extraíble.

La respuesta anterior es sobre el stock de Android. Aún así, agradezco al equipo de CyanogenMod y al equipo de LineageOS por ayudarme indirectamente a descubrir la información anterior.

Ejecutar controles usted mismo

Los párrafos anteriores se refieren a versiones de Android que aún no se han lanzado.

Si está ejecutando una versión anterior de Android, puede ejecutar manualmente una verificación de coherencia del sistema de archivos interno si así lo desea. Primero debe desmontar el sistema de archivos, por lo que debe estar en modo de recuperación. Ver aquí _

Comprobación de su tarjeta MicroSD

Si tienes una tarjeta MicroSD extraíble, definitivamente deberías revisarla en ciertas ocasiones, y también periódicamente. Si desea obtener más información, consulte:

Hmm, ¿qué tipo de influencia tendrá esto en la velocidad de apagado/reinicio?
Los reinicios no activarán ninguna verificación de coherencia. Las paradas tardarán quizás 12 segundos más. Se puede mejorar la confiabilidad general.
Es bueno saberlo, aunque como alguien que flashea (y por lo tanto hace nandroid) mensualmente, no soy el objetivo de este cambio...
Acordado. Sí, las copias de seguridad son importantes. Para citar a Tetsujin : "Cualquier dato almacenado en menos de tres ubicaciones distintas debe considerarse temporal. Cuanto más importantes sean los datos, más importante será la multiplicidad de copias de seguridad".