Linuxパーティションの基本クエリ

Linuxパーティションの基本クエリ

MTK-6572ベースのAndroidスマートフォン(Karbonn-A35)のパーティションテーブルを理解しようとしています。アイデアは、内部ストレージパーティション/data(でマウントされている)を拡大し、それに応じて携帯電話のストレージパーティション(でマウントされている/mnt/sdcard)を縮小し、「ディスクがいっぱい」エラーなしで携帯電話にさらにアプリをインストールできるようにすることです。ところで、EBR1パーティションファイルの変更を進める前に1つ知りたいです。現在、私のMBRとEBR1は次のようになります(例えば、SDカードが2GBにすぎず、なぜ2TiBサイズの拡張パーティションを作成するのか疑問に思います!)。

$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
  Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
  Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
  Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
  Type 0x83 (Linux)


$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
  Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
  Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
  Type 0x83 (Linux)

4番目と5番目のパーティション(つまり、MBRではパーティション4の終わり、EBR1ではパーティション1の始まり)を見ると、いくつかの重複部分があります。 4番目の部門が言った1331200 sectors from 113152。ただし、113152 から 1331200 セクタを計算すると、次のパーティションが始まるところで 1444352 が得られます。ただし、次のパーティション(EBRの最初のパーティション)は、このパーティションよりも少し速い1443328で始まります。これはこれらのセクタが重なっていませんか(1444352−1443328=1024)?この1024セクタはパーティション4と5の一部ですか?それともパーティションテーブルを理解するのに何かがありましたか?

それは1つで、もう1つはEBR1の3番目のパーティションに関するものです。これEBRに関するWikipediaの記事では、EBRの最初の2つの項目のみを使用する必要があると述べています。

EBRの構造は基本的にMBRと同じです。パーティション表の最初の2つの項目のみを使用してください。セクタの末尾に0xAA55の必須ブートレコード署名(またはマジックナンバー)があることに加えて。

それでは、私のデバイスのEBR1に3つの項目が含まれているのはなぜですか?繰り返しますが、これは非標準的なものですか、それとも私が何かを見逃していますか?

編集する

EBR1の16進出力には3つの項目が表示されます。

ここに画像の説明を入力してください。

答え1

拡張ブートレコードには2つの値のみを含める必要があり、EBRには両方の値を含めることができます。 EBRの2番目の項目は、次のEBRを指します(チェーンの最後の項目ではない場合)。

disktypeユーティリティは3つのEBRチェーンを調べ、各項目を複数項目MBRのように表示します。

(これはWikipediaの記事の「値」セクションで説明されています。)

関連情報