關於 Linux 分區的基本查詢
我正在嘗試了解基於 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。
(這在維基百科文章的值部分中進行了解釋)