扇区为最小的物理存储单位 大小512byte
扇区组成一个圆就是一个磁柱 作为分区的最小单位
第一个扇区最重要 里面有MBR(466bytes) 和 partition table (64 bytes)
linux 的档案通常包括属性(像拥有者,群组 等) 和 实际数据,文件系统通常会将这两部分不同的数据分开存放。权限属性放在inode 中 实际数据放在data block中。另外还有一个超级块区superblock 会记录整个文件系统的整体信息,包括inode 与 block 的总量 剩余量等
一个档案的数据可能会占用多个block 在linux中他将记录在inode中,当找到inode就可以一口气读出,而fat是没有inode存在的 他是每个block记录下一个block
磁盘碎片整理原因就是档案写入的block太过于离散,此时档案读取的效能将会变得很差,这个时候通过磁盘碎片整理将同一个档案所属的blocks 汇整在一起,这样数据读取就会比较容易了。
ext2 分多个区块群组:
data block 块的大小:
inode :
每个inode 大小128 bytes
每个档案占用一个inode
系统读取档案时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。
由于每个inode 很小只有128 bytes 而记录一个block 号码要花掉4bytes ,所以假设一个档案为400M block 为4K 至少要十万笔block号码记录 inode 就记录不下。为此我门系统将inode记录block号码区域定义为12个直接,一个间接 一个双间接与一个三间接记录区。如下图:
由于superblock 很重要 所以事实上除了第一个block group 内会含有superblock 后续的groupblock 不一定含有superblcok 而若含有的话则该superblock 主要是做为第一个block group 内superblock 的备份。以便当第一个superblock 死掉后可以用后面备份的进行救援。
档案系统描述
这个区段记录了每个block group 开始的block 和结束的block,还有superblock indode bitmap 和 block bitmap 在哪个blcok之间。
inode bitmap 和 block bitmap 都是用来记录那些block(inode)是可用的。那些使不可用的。当文件删除时在inode bitmap 或者在 block bitmap 中相应的blcok 和 inode 又被标识为可用。
可以通过dumpe2fs 分区
来查看superblock blcok inode 等相关信息。
当新建一个目录时 文件系统会给目录分配一个inode 和 至少一个block,所以目录的大小一般是1K 2K 4K的整数倍。因为block的大小可能为1K 2K 4K 当目录下文件很多时就会占用多个block.
当你新建一个文件时,文件系统给你分配一个inode 和 与文件大小相当的block 数 如果4K block 100K 文件 就需要25个block 且文件名不记录在inode中而是记录在目录的block中。
在ext2 中如果文件系统出现Inconsistent 就要调用e2fsck 来检查 这样是相当费时间的,所以在ext3 中加入了日志记录的功能。所以万一文件系统发生问题,就可以检查日志记录区块,从而达到快速修复文件系统的功能。
通过命令:
ls -l /lib/modules/($uname -r)/kernel/fs
来查看linux支持的文件系统有哪些
通过:cat /proc/filesystems 查看系统已加载到内存中的文件系统
当新建一个目录时。可以看到他的连接数那栏是2
如下:
[root@Server1 test]#ls -ld test2
drwxr-xr-x 2 root root 4096 04-09 12:26 test2
一块没有分过区的硬盘就像一张白纸一样,是没有数据的。分好区的硬盘就会具有一定的结构性。分区就是将硬盘分为一定的区域,便于使用。
一块硬盘最多可以分四个区(主分区)。无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录)。
主引导记录由三部分组成:一部分是446byte的操作系统引导代码,还有一部分是64byte的主分区表。主分区表最多记录四个主分区的分区信息.每个分区占用16byte.分区就是修改分区表,它不影响硬盘上的存储的数据。最后的2字节是结束标志。
扩展技术:需要将一块硬盘分成更多的分区,超过5个以上的分区,可以将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。理论上逻辑分区没有个数的限制。扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。逻辑分区的起始位置的信息都写在扩展分区表里面。逻辑分区的分区编号从5开始,如:/dev/hda5是第一块硬盘的第一个逻辑分区。
格式化原理
分好区的硬盘分区上面什么数据也没有,操作系统也不能读写,为了让操作系统能够识别必须向分区中预写入一定格式的数据。这个过程就称之为格式化。在Linux中称为创建文件系统。
没有分区的硬盘是不能格式化的,没有格式化的分区是不能直接被使用的。所以分区和格式化往往都是同时进行的。
零磁道处于硬盘上一个非常重要的位置,硬盘的主引导记录区(MBR)就在这个位置上。零磁道一旦受损,将使硬盘的主引导程序和分区表信息遭到严重破坏,从而导致硬盘无法自检。
硬盘MBR(Main Boot Record)(硬盘主引导记录)及硬盘分区表介绍硬盘MBR就是我们经常说的“硬盘主引导记录”,简单地说,它是由FDISK等磁盘分区命令写在硬盘绝对0 扇区的一段数据,它由主引导程序、硬盘分区表及扇区结束标志字(55AA)这3个部分组成,如下:组成部分 所占字节数 内容、功能详述主引导程序区 446 负责检查硬盘分区表、寻找可引导分区并负责将可引导分区的引导扇区(DBR)装入内存;硬盘分区表区 16X4=64 每份16字节的4份硬盘分区表,里面记载了每个分区的类型、大小和分区开始、结束的位置等重要内容;结束标志字区 2 内容总为”55AA”。结束标志字区 2 内容总为”55AA”这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。这个扇区所在硬盘磁道上的其它扇区一般均空出,且这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容(也就是说假如该盘每磁道扇区数为63,那么从绝对63扇区后面的64扇区才是分区的内容)。
主引导扇区结构图
|-------------------------|
| |
| |
| Main Boot Record |
| |
| |
| 主引导记录 (446字节) |
| |
| |
| |
| |
| |
|-------------------------|
| 分区信息 1(16字节) |
|-------------------------|
| 分区信息 2(16字节) |
|-------------------------|
| 分区信息 3(16字节) |
|-------------------------|
| 分区信息 4(16字节) |
|-------------------------|
| 结束标志 (2字节) |
|-------------------------|
分区上的引导扇区
为保险起见,每个分区(包括逻辑分区)上的第一个扇区都将被作为引导区保留。含有引导代码的分区上的引导区也是可以引导操作系统的;不含有引导代码的分区上的引导区不具有引导操作系统的功能。
if=file
输入文件名,缺省为标准输入。
of=file
输出文件名,缺省为标准输出。
ibs=bytes
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks
从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks
从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
count=blocks
仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
dd的话是实打实的创建一个文件并往里面填数据。这样才能得到一个有实际大小的文件来测试。