Linux EXT2 文件系统笔记

在标准的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有以下几种特性:
  1. 块与inode在一开始格式化时就已经固定了。
  2. 一个分区能够容纳的文件数与inode有关。
  3. 一般来说,每4K的硬盘空间分配一个inode。
  4. 一个inode的大小为128字节。
  5. 块为固定大小,当前支持1024/2048/4096字节等。
  6. 块越大,则损耗的硬盘空间也越多。
  7. 对于单一文件:若块大小=1024,最大容量为16G,若块大小=4096,容量最大为2TB。(求解释)
  8. 对于整个分区:若块大小=1024,则容量为2TB,若块大小=4096,则容量为32TB。
  9. 文件名最长达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 如果目标文件存在时,就主动将目标文件直接删除后再建立

 

Leave a Reply

Your email address will not be published. Required fields are marked *