解释/proc/分区

解释/proc/分区

我对嵌入式 Linux 设备中闪存的分区大小感到困惑:

/ # cat /proc/partitions
major minor  #blocks  name

 240        0      93184 ndda
 240        1      85168 ndda1
 240        2       7000 ndda2
 240        3       1000 ndda3

我知道与 ndda2 和 ndda3 对应的分区的大小分别为 7000 kB 和 1000 kB。

我看到 ndda 比 ndda1 + ndda2 + ndda3 的大小大 16 kB。

那是,93184 - (85168 + 7000 + 1000) = 16

这 16 kB 是由什么造成的?我在哪里可以了解更多相关信息?

现在,如果我将 ndda1 安装在名为 /nand1 的目录上,我会得到:

/ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
tmpfs                    27044         0     27044   0% /dev/shm
/dev/ndda1               84928     64288     20640  76% /nand1

它的大小(84928 kB?)比 /proc/partitions 报告的小 240 kB。

再说一遍,什么结构负责?

分区安装为脂肪组织

答案1

分区通常从 2MB 的边界开始,以使文件系统块与物理块(可能是 16kB、64kB 甚至更大,具体取决于设备)对齐。未对齐的块意味着当更新一个文件系统块时,需要获取两个设备块,第一个块的最后部分被更新,第二个块的第一部分被更新,并且两个块都被写回。与正确对齐的文件系统相比,这多了两个块读取和一个块写入。

在设备的最开始,您可以找到分区表本身。这就是为什么第一个分区不能从块 0 开始。

至于你的第二个问题(为什么文件系统比设备小):文件系统需要其管理数据(例如空闲块列表),这些数据是保留空间,因此不可用于直接数据存储。

相关内容