在标准的ext2文件系统中,将每个文件的内容分为两个部分存储,一个是文件的属性(例如,所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性等),另一个则是文件的内容。
ext2规划出inode与块来分别存储文件的属性和文件的内容。当将一个分区格式化为ext2时,必须指定inode与块的大小。
块,即逻辑块(Block)是分区进行文件系统的格式化时所指定的“最小存储单位”。(vs.扇区则为硬盘的最小物理存储单位)块用于记录“文件内容数据”的区域。
inode记录“该文件的相关属性,以及文件内容放置在哪一个块内”,除此之外,还必须具有指针的功能,即指向文件内容放置的块之中,让操作系统可以正确获取文件的内容。inode大小为128字节。
如图,读取/etc/crontab的流程为:
1.操作系统根据根目录(/)的相关数据可获取/etc目录所在的inode,并读取这个目录的所有相关属性。
2.根据/etc的inode的数据,可以获取/etc目录下所有文件的关联数据是放置在哪一个块中,并前往该块读取文件的关联性内容。
3.由上一步骤的块中,可以知道crontab文件的inode的所在,并前往该inode。
4.由3的inode可获取crontab文件的所有属性,并前往该inode所指向的块区域,获取文件内容。
- ext2有以下几种特性:
- 块与inode在一开始格式化时就已经固定了。
- 一个分区能够容纳的文件数与inode有关。
- 一般来说,每4K的硬盘空间分配一个inode。
- 一个inode的大小为128字节。
- 块为固定大小,当前支持1024/2048/4096字节等。
- 块越大,则损耗的硬盘空间也越多。
- 对于单一文件:若块大小=1024,最大容量为16G,若块大小=4096,容量最大为2TB。(求解释)
- 对于整个分区:若块大小=1024,则容量为2TB,若块大小=4096,则容量为32TB。
- 文件名最长达255字符,完整文件名长达4096字符。
文件系统的简单操作
磁盘与目录的容量
—df用于显示当前磁盘的总容量与剩余可用容量。
[root@linux ~]#df [-ahikHTm][目录或文件名]
—du当前磁盘的文件容量。
[root@linux ~]#du [-ahskm] 文件或目录名称
连接文件
硬连接或实际连接
硬连接只是在某个目录下新增一个该文件的关联数据而已。例如,/root/crontab为一个硬连接的文件,连接到/etc/crontab文件,其实就是/root/crontab和/etc/crontab是同一个文件,只是有两个目录/root和/etc记录了crontab文件的关联数据,crontab文件的inode与块都没有改变。硬连接安全。
BUT,硬连接不能跨文件系统,不能连接目录。
符号连接(即快捷方式)
符号连接就是建立一个独立的文件,这个文件会让数据的读取指向它连接的文件内容。符号连接所建立的文件为一个独立的新文件,所以会占用inode与块。
[root@linux ~]#ln [-sf] 源文件 目标文件
-s 如果不加任何参数就是硬连接,-s就是符号连接
-f 如果目标文件存在时,就主动将目标文件直接删除后再建立