¿La mayoría de los dispositivos Android usan GPT como esquema de partición?

9

Se habla mucho de las particiones de Android que se pueden encontrar con Google. A veces puedo encontrar referencias a GPT en la documentación para procesadores móviles o en Desarrolladores XDA (donde he aprendido que ciertos dispositivos usan GPT como su esquema). Aparte de eso, no hay mucha discusión sobre qué dispositivos Android usan para almacenar información de partición. Hay excepciones: sé que algunos dispositivos usan el método basado en la línea de comandos del subsistema MTD, como algunos de los dispositivos anteriores de HTC, y sé que los dispositivos Qualcomm parecen usar una tabla de particiones GUID.

Si las particiones de un dispositivo están representadas por nodos de dispositivo que comienzan con mtdo mtdblock, entonces Linux recibe la información de partición de los argumentos de arranque. Si las particiones están representadas por nodos de dispositivo que comienzan mmcblk, entonces el esquema de partición es ambiguo. Podría estar usando una tabla de particiones GUID, pero el problema es que la tabla tendría que comenzar en el primer sector, que también es donde residen todos los cargadores de arranque de la primera etapa en mi experiencia.

Del mismo modo que mtdse puede encontrar información de partición en dispositivos cuyos nodos de partición comienzan /proc/mtd, en dispositivos donde comienzan los nodos de dispositivo, se puede encontrar mmcblkla misma información (generalmente) /proc/emmc. Por qué eMMC, un tipo de dispositivo de almacenamiento, se trata como una alternativa al MTD, que es una interfaz para acceder al almacenamiento flash, no lo sé. Pero esta página en GitHub parece implicar que la información de partición para dispositivos con /proc/emmcno se recopila en una tabla como GPT.

Esa misma página también parece estar diciendo que los núcleos arrancados por U-Boot exponen particiones de manera diferente a MTD o GPT. Aquí está el pasaje:

Since MTK devices use the uboot mechanism, partitions including boot and recovery, are not revealed as separate partitions, but rather accessed sequencially by size and start parameters.

Esa frase no tiene sentido para mí por parte del acceso secuencial. Quizás alguien pueda explicarlo mejor.

Entonces, ¿qué tan común es el GPT en dispositivos Android? No he visto ninguna referencia a la partición en el sitio web para desarrolladores de Android. Si los cargadores de arranque se almacenan realmente después de la tabla de particiones, ¿significa eso que los chips son compatibles con GPT?

Melab
fuente
Hasta donde yo sé, la mayoría de los dispositivos Android usan GPT. Puede verificarlo fácilmente fdisk -l /dev/block/mmcblk0. Por cierto, este hilo puede ser útil: Referencia de la tabla de partición de El Grande
Gokul NC
@GokulNC He visto ese hilo. Es uno de los que estaba hablando. Sin embargo, los dispositivos que usan el subsistema MTD, que parece ser un número decente de los primeros teléfonos inteligentes Android, no usan una tabla de partición. En esos casos, puede haber un MBR almacenado en el primer sector / bloque de memoria interna si la ROM de arranque del SoC está diseñada con eso en mente (el cargador de arranque de primera etapa en dispositivos basados ​​en OMAP comienza con 512 bytes, por ejemplo )
Melab
¿Las tablas de partición tienen que estar en el primer sector? ¿Quizás un SoC también puede arrancar desde el último sector, como la lectura inversa del sector?
jiggunjer
También en relación con MTD vs eMMC: el MTD es para almacenamiento de tipo NAND sin procesar, por lo que utiliza controladores diferentes a los NAND administrados como eMMC.
jiggunjer

Respuestas:

3

Si no me equivoco, GPT es bastante común. Su formato bastante avanzado que MBR. En mi Kitkat tienen 36 particiones. GPT tiene características como la tabla de partición de respaldo y la denominación / marca, admite discos más grandes que MBR. (Editar: Android 6.0 introduce la capacidad de adoptar medios de almacenamiento externos que usan GPT como formato de partición predeterminado).

El dispositivo puede o puede estar al tanto de GPT. Típicamente con MBR, los primeros 512 bytes se usan para la tabla de particiones. Cuando usamos GPT, no almacena ningún dato en el primer sector. En cambio, marca como MBR protector. De modo que si el dispositivo que busca MBR se queja, no hay partición.

Si está interesado en un documento en profundidad:

lakshmipathi
fuente
Querido Downvoter: ¿razón?
lakshmipathi
El segundo párrafo contiene varios errores.
iBug el
¿Puedes señalar el error exacto?
lakshmipathi
Parece que estaba equivocado (hace 1 año). Me parece razonable ahora.
iBug