鸟哥私房菜inode和block小结

一、磁盘划分小结

raid部分通过fdisk -l可以查看磁盘的使用情况。磁盘的划分有最小物理存储单位扇区,每个扇区512bytes,磁头决定由多少个盘面,柱面的大小等于磁头*扇区,磁盘的大小取决于有多少柱面。
第一个扂区最重要,里面有:(1)主要开机区(Master boot record, MBR)及分割表(partition 
table), 其中 MBR 占有 446 bytes,而 partition table 则占有 64 bytes,剩下的2bytes表示mbr是否有效。
SATA 硬盘则有11个逻辑分割(5号到 15号),1-3是主分区,4是扩展分区。
分区结束后要对磁盘进行格式。不同操作系统所设定的文件属性和权限不同,为了存放这些数据,就需要对分隔槽进行格式化。

二、inode和block总结

目录和文档有权限、属性和数据。一般权限、属性放在inode中,一个档案一个inode,inode记录档案数据所在block的号码。而数据放置在block中。超级块superblock会记录整个文件系统的整体信息,包括inode与block的总量、使用了、剩余量等。找到文档的inod就可以找到文档所使用的block,因此是索引式文件。ext2的这种存储不需要碎片整理,而一般对于fat文件是需要进行碎片整理的。
inode和block是一开规划好的,除非格式化,否则是不变的。inode和block一般分区管理,在不同的block group中使用独立的inode/block/superblock。block group前世boot sector,是多重引导环境的关键
block有1k 2k 4k三种。

对于inode:

1每个 inode 大小均固定为 128 bytes; 
2每个档案都仅会占用一个 inode 而已; 
3承上,因此文件系统能够建立的档案数量与 inode数量有关; 

4系统读档案时需要先找到 inode,分析 inode 权限是否符合。

128bytes能记录的block块是有限的,因此inode采用12直接地址映射,1个一级地址,1个二级地址,1个三级地址,因此1k的block文档最大值为12k+256k+256*256k+256*256*256k约等于16G。

Superblock (超级区块) 

Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 
了。 记录内容如下:
1 block 与 inode 的总量; 
2未使用与已使用的 inode / block 数量; 
3 block 与inode 的大小 (block 为 1, 2, 4K,inode 为 128 bytes); 
4 filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息; 
5一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 


block group的内容包括:

superblock--档案系统描述--block对照表--inode对照表--inodetable--data block

其中:

1 superblock 的大小为 1024bytes。每个 block group 都可能有 superblock。但是我们也说一个文件系统应该仅有一个 superblock 而已,事实上除了第一个 block group 内会有 superblock外,后续block group 不一定有 superblock , 而若有 superblock 则该 superblock 主要是做为第一个 block group 内 superblock备份,这样可以进行 superblock救援。
2档案系统描述描述block group的开始于结束block号码,以及后续功能模块位于哪个block
3 block bitmap区块对照表用于新增档案数据的block的提供,删除时标记block为未使用
4 inode bitmap inode对照表与blockbitmap相似,只是他描述的是inode的使用情况


目录

当我们在 Linux 下的 ext2 文件系统建立一个目录时, ext2 会分配一个 inode 不止一块 block 给该
目录。其中,inode 记录该目录的相关权限属性,可记录分配到的那块 block 号码; 而 block 则
是记录在这个目录下的文件名与该文件名占用的inode 号码数据。


三、Linux下的连接档:

在 Linux 下的连结档有两种,一种是类似 Windows 的快捷方式功能的档案,可以快速的链接到
目标档案(或目录); 另一种则是透过文件系统的inode 连结来产生新档名,而不是是产生新档案!这种称为实体链接 (hard link)。 这两种玩意儿是完全补一样的东西。

hard link 

在某个目录下新增一笔档名链接到某inode号码的关连记录而已
一般来说,使用 hard link 链接文件时,磁盘空间的 inode 数目不会改变! hard link 是在某个目录下的 block 多写入一个关连数据而已,既不会增加 inode 也不会耗用 block 数量。
不能跨 Filesystem
不能 link 目录(由于目录下有复杂的文档和目录,实现十分困难)。

Symbolic link

基本上, Symbolic link 就是在建立一个独立的档案,而这个档案会让数据的读取指向他 link 的那个档案的档名!由于只是利用档案来做为指向的动作。所以,当来源档被删除后,symbolic link 档案会失效,。实际上就是找不到原始的档名。
实质上,最大的区别在于hard指向的是父inode,symbolic指向的是子inode
使用命令:
dumpe2fs /dev/sdb1 可以查看分区的block和inode 的情况。
ls -li可以查看inode号码。
df -h 目录 可以查看磁盘的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值