ほとんどのAndroidデバイスは、パーティションスキームとしてGPTを使用していますか?


9

Googleで見つけることができるAndroidパーティションの話はたくさんあります。モバイルプロセッサのドキュメントまたはXDA開発者(特定のデバイスがGPTをスキームとして使用していることを知った)で、GPTへの参照を見つけることがある。それ以外に、パーティション情報の保存にAndroidデバイスが何を使用するかについてはあまり議論されていません。例外があります。一部のデバイスは、MTDサブシステムのコマンドラインベースの方法を使用しています。たとえば、HTCの以前のデバイスの一部と同様です。また、QualcommデバイスはGUIDパーティションテーブルを使用しているようです。

デバイスのパーティションがmtdまたはmtdblockで始まるデバイスノードで表されている場合、Linuxはブート引数からパーティション情報を受け取ります。パーティションがで始まるデバイスノードで表されている場合、パーティションmmcblk構成はあいまいです。それはGUIDパーティションテーブルを使用している可能性がありますが、問題はテーブルが最初のセクターから開始する必要があるということです。これも私の経験ではすべての第1段階のブートローダーが存在する場所です。

単にパーティションのノードで始まるデバイス上のパーティション情報など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.

この文は、シーケンシャルアクセスについて少し理解しても意味がありません。おそらく誰かがそれをよりよく説明できるでしょう。

では、AndroidデバイスのGPTはどのくらい一般的ですか?私は、Android開発者のWebサイトでパーティション分割についての言及を見たことはありません。ブートローダーが実際にパーティションテーブルの後に格納されている場合、それはチップがGPT対応であることを意味しますか?


私の知る限り、ほとんどのAndroidデバイスはGPTを使用しています。で簡単に確認できfdisk -l /dev/block/mmcblk0ます。ところで、このスレッドは役に立ちます:El Grande Partition Table Reference
Gokul NC '30

@GokulNC私はそのスレッドを見た。それは私が話していたものの一つです。MTDサブシステムを使用するデバイスは、初期のAndroidスマートフォンのかなりの数のようですが、パーティションテーブルを使用しません。これらのケースでは、SoCのブートROMがそれを考慮して設計されている場合、内部メモリの最初のセクター/ブロックにMBRが格納されている可能性があります(たとえば、OMAPベースのデバイスの最初のステージのブートローダーは512バイトで始まります。 )。
Melab

パーティションテーブルは最初のセクターにある必要がありますか?おそらく、SoCは逆セクター読み取りのように、最後のセクターからもブートできますか?
jiggunjer 2017

また、MTDとeMMCについて:MTDはraw NANDタイプのストレージ用であるため、eMMCのようなマネージドNANDとは異なるドライバーを使用します。
jiggunjer 2017

回答:


3

私が間違っていなければ、GPTはかなり一般的です。MBRよりもかなり高度な形式です。私のキットカットでは36のパーティションがあります。GPTには、バックアップパーティションテーブルや命名/フラグなどの機能があり、MBRよりも大きなディスクをサポートしています。(編集:Android 6.0では、GPTをデフォルトのパーティションフォーマットとして使用する外部ストレージメディアを採用する機能が導入されています。)

デバイスはGPTを認識している場合と認識している場合があります。通常、MBRでは、最初の512バイトがパーティションテーブルに使用されます。GPTを使用する場合、第1セクターのデータは保存されません。代わりに保護MBRとしてマークします。したがって、MBRを探しているデバイスが不平を言った場合、パーティションはありません。

詳細なドキュメントに興味がある場合:


親愛なるDownvoter:理由?
lakshmipathi

2番目の段落にはいくつかのエラーがあります。
iBug 2017

正確なエラーを指摘できますか?
lakshmipathi 2017

私は間違っていたようです(1年前)。今ではそれは理にかなっているようです。
iBug 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.