Partition

關於 Linux 分區的基本查詢

  • September 15, 2018

我正在嘗試了解基於 MTK-6572 的 Android 智能手機 (Karbonn-A35) 的分區表。這個想法是擴大內部儲存分區(掛載為/data)並相應地縮小電話儲存分區(掛載為/mnt/sdcard),這樣我就可以在手機上安裝更多應用程序而不會出現“磁碟已滿”錯誤。但是,在繼續更改 EBR1 分區文件之前,我想了解一件事。目前,這是我的 MBR 和 EBR1 的樣子(是的,我也想知道他們為什麼要創建一個 2TiB 大小的擴展分區,而我的 sdcard 只有 2GB!):

$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 個開頭),則存在一些重疊。第四分區說1331200 sectors from 113152。但是當你從 113152 中計算 1331200 個扇區時,你會得到 1444352,下一個分區應該從哪裡開始。但是,下一個分區(即 EBR 中的第一個分區)從 1443328 開始,比這早一點。對於那幾個扇區(1444352−1443328=1024)來說,這不是一種重疊嗎?那些 1024 個扇區都是第 4 和第 5 分區的一部分?還是我對分區表的理解遺漏了一些東西?

這是一回事,另一件事是關於 EBR1 中的第三個分區。這篇關於 EBR 的維基百科文章說,應該只使用 EBR 中的前兩個條目:

EBR 的結構與 MBR 基本相同;除了應該使用分區表的前兩個條目之外,除了在扇區末尾具有 0xAA55 的強制引導記錄簽名(或幻數)。

那為什麼我的設備的 EBR1 包含三個條目?再說一次,這是不標準的事情還是我錯過了什麼?

編輯

EBR1 的十六進制輸出顯示三個條目:

在此處輸入圖像描述

擴展引導記錄只需要包含兩個值,您的 EBR 可能會這樣做。EBR 中的第二個條目指向下一個 EBR(除非它是鏈中的最後一個)。

您的 disktype 實用程序遍曆三個 EBR 鏈並顯示每個條目,就好像它們是多條目 MBR。

(這在維基百科文章的值部分中進行了解釋)

引用自:https://unix.stackexchange.com/questions/294336