Skip to content

Files

Latest commit

 

History

History
85 lines (36 loc) · 2.24 KB

day019.md

File metadata and controls

85 lines (36 loc) · 2.24 KB

day019

承接昨天的学习内容,linux的ext2文件系统通常有两大组成部分:inode和block。

其中,若inode用于存储文件的限权;block用于存储文件的实际数据。

若文件小于block,则该block的剩余容量就不能够再被使用了,会造成磁盘空间的浪费。

inode table(inode 表格):

如前所述,inode的内容在记录文件的属性以及该文件实际数据是放置在哪几号block内。基本上,inode记录的文件数据至少有下面这些:

1 该文件的存取模式(限权);

2 该文件的拥有者和群组;

3 该文件的容量;

4 该文件建立或状态改变时间(ctime);

5 最近一次的读取时间(atime);

6 最近一次的修改时间(mtime);

7 定义文件特性的flag(隐藏属性,suid);

8 该文件真正内容的指向。

在ext2中,每个inode的大小均为128bytes,现在的ext4的inode大小可以定义为256bytes。

每个文件仅占用一个inode。如果文件过大,系统会产生间接记录区,双间接记录区,三间接记录区。前12个为直接记录。

假设一个block为1kb:

12个直接记录:12*1kb;

1个间接记录:256*1kb;

1个二间接记录:256 * 256 * 1kb;

1个三间接记录:256*256 × 256 ×1kb。

总共16gb。

superblock(超级区块):

superblock是记录整个filesystem相关信息的地方。

主要信息有:

1 block与inode的总量;

2 未使用/已使用的inode和block数量;

3 filesystem的挂载时间,最近一次的写入时间,最近一次磁盘检查的时间等;

一般来说,一个superblock的大小为1024bytes。

filesystem description:记录区段开始和结束的block号码。

block bitmap:记录空的block。

inode bitmap:记录空的inode。

dumpe2fs:查询ext家族superblock信息的指令。

blkid:输出目前系统有被格式化的装置。

文件系统与目录树的关系:

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