关于Linux分区的基本查询

关于Linux分区的基本查询

我试图了解基于 MTK-6572 的 Android 智能手机 (Karbonn-A35) 的分区表。这个想法是扩大内部存储分区(安装为/data)并相应缩小手机存储分区(安装为/mnt/sdcard),这样我就可以在手机上安装更多应用程序而不会出现“磁盘已满”错误。然而,在继续更改 EBR1 分区文件之前,我想了解一件事。目前,我的 MBR 和 EBR1 的样子如下(是的,我也想知道为什么他们要创建 2TiB 大小的扩展分区,而我的 SD 卡只有 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 的十六进制输出显示三个条目:

在此输入图像描述

答案1

扩展引导记录只需要包含两个值,并且您的 EBR 可能会包含两个值。 EBR 中的第二个条目指向下一个 EBR(除非它是链中的最后一个)。

您的disktype实用程序遍历三个EBR链并显示每个条目,就好像它们是多条目MBR一样。

(维基百科文章的“值”部分对此进行了解释)

相关内容