Использует ли большинство устройств Android GPT в качестве схемы разделения?


9

Существует много разговоров о разделах Android, которые можно найти в Google. Иногда я могу найти ссылки на GPT в документации для мобильных процессоров или на разработчиков XDA (где я узнал, что некоторые устройства используют GPT в качестве своей схемы). Кроме того, не очень много дискуссий о том, какие устройства Android используют для хранения информации о разделах. Есть исключения: я знаю, что некоторые устройства используют метод, основанный на командной строке подсистемы MTD, как некоторые из более ранних устройств HTC, и я знаю, что устройства Qualcomm, кажется, используют таблицу разделов GUID.

Если разделы устройства представлены узлами устройства, начинающимися с mtdили mtdblock, то Linux получает информацию о разделах из аргументов загрузки. Если разделы представлены узлами устройства, начинающимися с mmcblk, то схема разбиения неоднозначна. Это может быть использование таблицы разделов GUID, но проблема в том, что таблица должна начинаться с первого сектора, где, по моему опыту, находятся все начальные загрузчики первого этапа.

Точно так же, как информация о разделах на устройствах, с которых начинаются узлы разделов, mtdможет быть найдена /proc/mtdна устройствах, с которых начинаются узлы устройств mmcblk, такая же информация (обычно) может быть найдена на /proc/emmc. Почему eMMC, тип устройства хранения данных, рассматривается как альтернатива MTD, который является интерфейсом для доступа к флэш-памяти, я не знаю. Но эта страница на GitHub, кажется, подразумевает, что информация о разделах для устройств с /proc/emmcне собранной таблицей, как GPT.

На той же странице, похоже, также говорится, что ядра, загружаемые U-Boot, открывают разделы не так, как MTD или GPT. Вот отрывок:

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.

Это предложение становится бессмысленным для меня битом о последовательном доступе. Возможно, кто-то может объяснить это лучше.

Итак, насколько распространен GPT на устройствах Android? Я не видел ссылок на разделы на сайте разработчиков Android. Если загрузчики действительно хранятся после таблицы разделов, значит ли это, что чипы поддерживают GPT?


Насколько я знаю, большинство устройств Android используют GPT. Вы можете проверить это легко fdisk -l /dev/block/mmcblk0. Кстати, эта ветка может быть полезна: ссылка на таблицу разделов El Grande
Gokul NC

@GokulNC Я видел эту тему. Это один из тех, о которых я говорил. Устройства, использующие подсистему MTD, которая, как представляется, является приличным количеством ранних смартфонов Android, однако, не используют таблицу разделов. В этих случаях MBR может храниться в первом секторе / блоке внутренней памяти, если загрузочное ПЗУ SoC спроектировано с учетом этого (например, начальный загрузчик в устройствах на основе OMAP запускается, например, с 512 байтов). ).
Мелаб

таблицы разделов должны быть на первом секторе? может быть, SoC тоже может загружаться с последнего сектора, как чтение с обратного сектора?
Jiggunjer

Также касается MTD против eMMC: MTD предназначен для хранения данных типа NAND, поэтому использует драйверы, отличные от управляемых NAND, например, eMMC.
jiggunjer

Ответы:


3

Если я не ошибаюсь, GPT довольно распространен. Это довольно продвинутый формат, чем MBR. На моем Kitkat у них 36 разделов. GPT имеет такие функции, как резервное копирование таблицы разделов и имен / флагов, поддерживает больший диск, чем MBR. (редактировать: Android 6.0 предоставляет возможность использовать внешний носитель, который использует GPT в качестве формата раздела по умолчанию.)

Устройство может знать или может знать о GPT. Обычно с MBR первые 512 байт используются для таблицы разделов. Когда мы используем GPT, он не хранит никаких данных по 1-му сектору. Вместо этого отмечается как защитный MBR. Так что, если устройство ищет MBR, жалуется, что нет раздела.

Если вы заинтересованы в углубленном документе:


Уважаемый Downvoter: причина?
Лакшмипати

Второй абзац содержит несколько ошибок.
17

Можете ли вы указать точную ошибку?
lakshmipathi

Похоже, я был не прав (1 год назад). Это кажется разумным для меня сейчас.
iBug
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.