Verwenden die meisten Android-Geräte GPT als Partitionierungsschema?

9

Es wird viel über Android-Partitionen gesprochen, die bei Google zu finden sind. Manchmal finde ich Verweise auf GPT in der Dokumentation für mobile Prozessoren oder auf XDA-Entwicklern (wo ich erfahren habe, dass bestimmte Geräte GPT als Schema verwenden). Abgesehen davon gibt es nicht viele Diskussionen darüber, was Android-Geräte zum Speichern von Partitionsinformationen verwenden. Es gibt Ausnahmen: Ich weiß, dass einige Geräte die befehlszeilenbasierte Methode des MTD-Subsystems verwenden, wie einige frühere Geräte von HTC, und ich weiß, dass Qualcomm-Geräte anscheinend eine GUID-Partitionstabelle verwenden.

Wenn die Partitionen eines Geräts durch Geräteknoten dargestellt werden, die mit mtdoder beginnen mtdblock, erhält Linux die Partitionsinformationen von den Startargumenten. Wenn die Partitionen durch Geräteknoten dargestellt werden, die mit beginnen mmcblk, ist das Partitionsschema nicht eindeutig. Es könnte eine GUID-Partitionstabelle verwendet werden, aber das Problem ist, dass die Tabelle im ersten Sektor beginnen muss, in dem sich meiner Erfahrung nach auch alle Bootloader der ersten Stufe befinden.

So wie Partitionsinformationen auf Geräten, mit deren Partitionsknoten beginnen , auf Geräten mtdzu finden sind /proc/mtd, mit denen die Geräteknoten beginnen mmcblk, finden Sie dieselben Informationen (normalerweise) unter /proc/emmc. Warum eMMC, eine Art Speichergerät, als Alternative zu MTD behandelt wird, einer Schnittstelle für den Zugriff auf Flash-Speicher, weiß ich nicht. Aber diese Seite auf GitHub scheint zu implizieren , dass die Partitionsinformationen für Geräte mit /proc/emmcnicht einer Tabelle wie GPT gesammelt.

Dieselbe Seite scheint auch zu sagen, dass von U-Boot gebootete Kernel Partitionen auf eine andere Weise als MTD oder GPT verfügbar machen. Hier ist die Passage:

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.

Dieser Satz wird für mich durch das Stück über den sequentiellen Zugriff bedeutungslos. Vielleicht kann es jemand besser erklären.

Wie häufig ist das GPT auf Android-Geräten? Ich habe auf der Android-Entwickler-Website keinen Hinweis auf Partitionierung gesehen. Wenn Bootloader tatsächlich nach der Partitionstabelle gespeichert werden, bedeutet dies dann, dass die Chips GPT-fähig sind?

Melab
quelle
Soweit ich weiß, verwenden die meisten Android-Geräte GPT. Sie können es einfach überprüfen, indem Sie fdisk -l /dev/block/mmcblk0. Übrigens kann dieser Thread hilfreich sein: El Grande Partition Table Reference
Gokul NC
@ GokulNC Ich habe diesen Thread gesehen. Es ist einer von denen, über die ich gesprochen habe. Geräte, die das MTD-Subsystem verwenden, bei dem es sich anscheinend um eine anständige Anzahl früher Android-Smartphones handelt, verwenden jedoch keine Partitionstabelle. In diesen Fällen ist möglicherweise ein MBR im ersten Sektor / Block des internen Speichers gespeichert, wenn das Boot-ROM des SoC unter diesem Gesichtspunkt ausgelegt ist (der Bootloader der ersten Stufe in OMAP-basierten Geräten startet beispielsweise 512 Byte in ).
Melab
Müssen sich Partitionstabellen im ersten Sektor befinden? Vielleicht kann ein SoC auch vom letzten Sektor booten, wie zum Beispiel das Lesen des umgekehrten Sektors?
Jiggunjer
Auch in Bezug auf MTD und eMMC: Das MTD ist für die Speicherung vom NAND-Rohtyp vorgesehen und verwendet daher andere Treiber als das verwaltete NAND wie eMMC.
Jiggunjer

Antworten:

3

Wenn ich mich nicht irre, ist GPT ziemlich häufig. Es ist ein ziemlich fortgeschrittenes Format als MBR. Auf meinem Kitkat haben sie 36 Partitionen. GPT verfügt über Funktionen wie Backup-Partitionstabelle und Benennung / Flag und unterstützt größere Festplatten als MBR. (Bearbeiten: Android 6.0 bietet die Möglichkeit , externe Speichermedien zu verwenden, die GPT als Standardpartitionsformat verwenden.)

Das Gerät kann GPT kennen oder kennen. In der Regel werden bei MBR die ersten 512 Bytes für die Partitionstabelle verwendet. Wenn wir GPT verwenden, werden keine Daten im 1. Sektor gespeichert. Markiert stattdessen als schützenden MBR. Wenn sich ein Gerät, das nach MBR sucht, beschwert, gibt es keine Partition.

Wenn Sie an einem ausführlichen Dokument interessiert sind:

Lakshmipathi
quelle
Lieber Downvoter: Grund?
Lakshmipathi
Der zweite Absatz enthält mehrere Fehler.
iBug
Können Sie auf den genauen Fehler hinweisen?
Lakshmipathi
Sieht so aus, als hätte ich mich geirrt (vor 1 Jahr). Es erscheint mir jetzt vernünftig.
iBug