块大小
3维磁道(所有磁盘上的磁道相同)称为圆柱。每个轨道分为63个扇区。每个扇区包含512字节的数据。因此,分区表中的块大小为64头* 63扇区* 512字节er ...除以1024 ... :-)
来源:使用fdisk进行分区
每当Linux指代块大小时,它几乎总是1024字节 -Linux使用1024字节块作为其缓冲区缓存和所有内容的基本单位。粒度(例如,在标准大小的ext3文件系统上,文件系统块大小通常为4096字节)。但是,您几乎永远看不到文件系统块的大小。几乎真正看到它的唯一方法是成为内核黑客或运行类似dumpe2fs的程序。
问题在于,您必须牢记四个不同的单元。更糟的是,其中两个单位的名称相同。这些是不同的单位:
- 硬件块大小,“扇区大小”
- 文件系统块大小,“块大小”
- 内核缓冲区高速缓存块大小,“块大小”
- 分区表块大小,“圆柱大小”
为了区分文件系统块大小和缓冲区高速缓存块大小,我将遵循FAT术语,并在文件系统块大小中使用“群集大小”。
扇区大小是硬件处理的单位。该范围在不同的硬件类型之间,但是大多数PC样式的硬件(软盘,IDE磁盘等)使用512字节的扇区。
群集大小是文件系统使用的分配单位,并且是导致碎片的原因-我敢肯定您知道这一点。在中等大小的ext3文件系统上,通常为4096字节,但您可以使用进行检查dumpe2fs
。请记住,这些通常也称为“ 块 ”,只是在这里我将它们称为集群。群集大小是st_blksize
在状态缓冲区中返回的大小,以便程序能够计算文件的实际磁盘使用情况。
块大小是内核在缓存从存储设备读取的扇区(因此称为“块设备”)时内部使用的缓冲区的大小。由于这是内核中最原始的存储形式,因此所有文件系统群集大小都必须是此大小的倍数。用户空间程序几乎总是使用此块大小。例如,当您du
不带-h或-H选项运行时
,它将返回文件占用了多少个这些块。df
还将报告这些块中的大小,fdisk -l
输出中的“块”列就是这种类型,依此类推。这是最通常称为“块”的内容。每个块中装有两个磁盘扇区。
柱面大小仅在分区表和BIOS中使用(Linux不使用BIOS)。
来源:Linux磁盘块大小...请帮助
0-31区
要回答有关前32个扇区的问题,由于闪存驱动器是FAT格式化的设备,然后查看FAT文件系统定义,可以看到FAT文件系统由四个不同的部分组成:
a)保留部门;
b)文件分配表(FAT)区域;
c)根目录区域,以及;
d)数据区域。
在此情况下,位于最开始的保留扇区是扇区0-31:
第一个保留扇区(逻辑扇区0)是引导扇区(又称为
卷引导记录(VBR))。它包括一个称为BIOS参数块的区域(带有一些基本的文件系统信息,尤其是其类型,以及指向其他部分位置的指针),通常包含操作系统的引导加载程序代码。
可通过DOS和OS / 2中称为驱动器参数块(DPB)的操作系统结构来访问引导扇区中的重要信息。
引导扇区内部的字段指示了保留扇区的总数,在FAT32文件系统上通常为32。
对于FAT32文件系统,保留的扇区包括逻辑扇区1处的文件系统信息扇区和逻辑扇区6处的备份启动扇区。
尽管许多其他供应商继续为引导程序加载器使用单扇区设置(仅逻辑扇区0),但是自FAT32引入以来,Microsoft的启动扇区代码已增长为覆盖逻辑扇区0和2,逻辑扇区0取决于逻辑扇区2中的子例程。“备份启动扇区”区域也包括三个逻辑扇区6、7和8。在某些情况下,Microsoft还将保留扇区区域的扇区12用于扩展的引导加载程序。
仅是其他信息,与OP问题无关
FAT区域将位于扇区32:
为了进行冗余检查,它通常包含文件分配表的两个副本(可能有所不同),尽管很少使用(即使是磁盘修复实用程序也是如此),以进行冗余检查。
这些是数据区域的映射,指示文件和目录使用哪些群集。在FAT12和FAT16中,它们立即跟随保留的扇区。
通常,多余的副本在写入时保持紧密同步,在读取时仅在第一个FAT中发生错误时使用它们。在FAT32中,可以从默认行为切换并从可用的FAT中选择一个FAT用于诊断。
映射中的前两个群集(群集0和1)包含特殊值。
根目录区域:
这是一个目录表,用于存储有关位于根目录中的文件和目录的信息。它仅与FAT12和FAT16一起使用,并且在根目录上强加了一个固定的最大大小,该大小在创建此卷时已预先分配。FAT32将根目录以及文件和其他目录存储在数据区域中,从而使其不受此限制地增长。因此,对于FAT32,数据区域从此处开始。
数据区域:
这是实际文件和目录数据的存储位置,并占据了大部分分区。传统上,在IBM兼容机器上进行格式化时,根据INT 1Eh的磁盘参数表(DPT),数据区域的未使用部分使用填充值0xF6进行初始化,但也用于Atari产品组合。8英寸CP / M软盘通常预先格式化为0xE5;通过Digital Research,此值还用于Atari ST格式化的软盘。Amstrad改用0xF4。某些现代格式化程序会擦除值为0x00的硬盘,而将值0xFF(未编程闪存块的默认值)用于闪存磁盘上以减少磨损。后一个值通常也用于ROM磁盘。(某些高级格式化工具允许配置格式填充字节。)
只需在FAT中向文件链添加更多链接,即可任意增加文件和子目录的大小(只要有可用的群集)。但是请注意,文件是以群集为单位分配的,因此,如果1 KiB文件驻留在32 KiB群集中,则会浪费31 KiB。
FAT32通常从根目录表2的簇开始:数据区域的第一个簇。
资料来源:维基百科-文件分配表