7 votos

¿Qué sistema de archivos utiliza la opción de formato en ajustes > almacenamiento?

Me preguntaba qué sistema de archivos utilizará Android cuando formatee mi tarjeta SD (externa). ¿Puede alguien iluminarme?
¿Es el ya utilizado o exFAT o FAT32 o depende del fabricante?

0 votos

Downvote sin comentarios, clásico. ¿Qué es lo que no te gusta? Por favor, al menos, aporta tu opinión. Esto no es spam y la pregunta no está ya contestada.

0 votos

Ahora que has pedido una opinión me siento obligado a justificar mi voto. Por favor, lea ¿Cómo hago una buena pregunta? ¿Ha buscado o investigado a fondo la respuesta antes de formular su pregunta? Díganoslo lo que has probado hasta ahora y por qué no ha satisfecho sus necesidades? // ¿Fue difícil formatear una tarjeta SD en blanco y luego hacer mount o utilizar alguna aplicación para encontrar el sistema de archivos en la tarjeta.

0 votos

Gracias por sus comentarios. ¿Hay algún lugar donde podamos discutirlo? ¿Es el meta el lugar adecuado? // Mi motivación era conseguir que alguien que lo hiciera compartiera su experiencia sin tener que formatear mi propia tarjeta SD o mirar el código fuente de Android. Eso funcionó perfectamente y pensé que ese era el objetivo de la red SE. // Por supuesto que utilicé diferentes herramientas de búsqueda antes de preguntar (Google, DuckDuckGo, Foros, la propia búsqueda de stackexchange) y no encontré nada. Así que me quedé un poco desconcertado cuando me votaron en contra. // Creo que ya no se venden tarjetas SD en blanco. La mía venía con exFAT preformateada.

5voto

Jason Goemaat Puntos 298

Formateará la tarjeta micro SD externa a FAT32.

0 votos

Gracias. ¿Incluso la versión más nueva como Lollipop y Marshmallow?

1 votos

Sip, acabo de formatear la sd externa de mi Verizon LG G3 para solucionar un problema, y ese es el caso (corre Android 5.1). Usted puede ser capaz de formatear fuera del dispositivo a NTFS o exFAT, pero si su dispositivo va a leer correctamente depende del fabricante del dispositivo.

0 votos

Mi Galaxy S5 con Android 6.0.1 acaba de formatear una tarjeta MicroSD de 128 GB con exFAT.

3voto

clst Puntos 106

TL;DR: Todos los Android utilizan FAT32 . El tamaño del clúster depende de la versión. Las particiones existentes se conservarán. Siempre se utilizará el formato rápido.

Respuesta larga: Después de investigar un poco más aquí está el proceso tal y como fue codificado en el código fuente de Android:

  1. La aplicación de configuración muestra algunas confirmaciones y luego utiliza la intención: Intent(ExternalStorageFormatter.FORMAT_ONLY)

    en 4.4 KitKat: https://Android.googlesource.com/platform/packages/apps/Settings/+/kitkat-release/src/com/Android/settings/MediaFormat.java
    en 5 Lollipop: https://Android.googlesource.com/platform/packages/apps/Settings/+/lollipop-release/src/com/Android/settings/MediaFormat.java
    en el 6 cambiaron esto. Tendré que investigar más a fondo.

  2. El ExternalStorageFormatter utiliza entonces IMountService para llamar formatVolume(extStoragePath)

    en 4.4 KitKat: https://Android.googlesource.com/platform/frameworks/base.git/+/kitkat-release/core/java/com/Android/internal/os/storage/ExternalStorageFormatter.java
    en 5 Lollipop: https://Android.googlesource.com/platform/frameworks/base.git/+/lollipop-release/core/java/com/Android/internal/os/storage/ExternalStorageFormatter.java

  3. Esta función llama a
    mConnector = new NativeDaemonConnector(this, "vold", MAX_CONTAINERS * 2, VOLD_TAG, 25); mConnector.execute("volume", "format", path);

    en 4.4 KitKat: https://Android.googlesource.com/platform/frameworks/base/+/kitkat-release/services/java/com/Android/server/MountService.java
    en 5 Lollipop: https://Android.googlesource.com/platform/frameworks/base/+/lollipop-release/services/core/java/com/Android/server/MountService.java
    más información sobre vold: https://source.Android.com/devices/storage/config.html

  4. NativeDaemonConnector finalmente llama a la función nativa para formatear la partición: Volume::formatVol() Esta llamada es sin etiqueta de volumen y no borra la partición.

    ver Volume.cpp, VolumeManager.cpp, CommandListener.cpp
    en 4.4 KitKat: https://Android.googlesource.com/platform/system/vold/+/kitkat-release en 5 Lollipop: https://Android.googlesource.com/platform/system/vold/+/lollipop-release

  5. formatVol decide si se formatea la partición (si ya existe una) o todo el dispositivo (ver int Volume::formatVol(bool wipe) ). En este último caso, se escribe un nuevo MBR. Entonces Fat::format(devicePath, 0, wipe) se llama. (Nota adicional interesante: al montar un volumen, Android elimina autorun.inf si existe: véase Volume::protectFromAutorunStupidity() )

  6. en Fat::format (en Marshmallow se llama Vfat) el formato real se hace con: /system/bin/newfs_msdos . Los parámetros son diferentes en función de la versión de Android, el número de sectores siempre se omite, el borrado siempre es falso:


Apéndice: Sintaxis de /system/bin/newfs_msdos de https://Android.googlesource.com/platform/system/core/+/lollipop-release/toolbox/newfs_msdos.c :

usage: newfs_msdos [ -options ] special [disktype]
where the options are:
    -@ create file system at specified offset
    -A Attempt to cluster align root directory
    -B get bootstrap from file
    -C create image file with specified size
    -F FAT type (12, 16, or 32)
    -I volume ID
    -L volume label
    -N don't create file system: just print out parameters
    -O OEM string
    -S bytes/sector
    -a sectors/FAT
    -b block size
    -c sectors/cluster
    -e root directory entries
    -f standard format
    -h drive heads
    -i file system info sector
    -k backup boot sector
    -m media descriptor
    -n number of FATs
    -o hidden sectors
    -r reserved sectors
    -s file system size (sectors)
    -u sectors/track

1 votos

FAT32. La opción -F 32 especifica FAT32. Sin embargo, esto podría ser erróneo para versiones muy antiguas.

0 votos

Acabo de verlo. Incluso Donut (Android 1.6) lo utilizaba. Aunque Donut también tenía soporte para formatear ext2 aparentemente. // EDIT: Aparentemente el comentario al que estaba respondiendo ha desaparecido... Así que ahora se ve raro.

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