Linux——文件系统inode与软硬链接

目录

一.inode

(一).背景知识

(二).inode

 二.软硬链接

(一).软链接

(二).硬链接


一.inode

(一).背景知识

我们知道,磁盘是按磁道与扇区划分。Linux把一个磁盘进行了分区处理(一般为4个区)。

进行分区处理有很多优点,比如利于管理,当某个分区损坏但不会影响整个磁盘。

每个分区里又划分成多个块组(block groups)和启动块(boot block)

启动块用于存放该块组信息以及数据恢复。

一个块组里又由不同性质的块组成。

属性
super block 存放整个文件系统的信息,比如分区中每个块的大小、硬盘分区上一共有多少个块组、以及每个块组中有多少个inode
CDT 块组描述符,里面有指针会指向该块组的inode table、block bitmap和inode bitmap。
block bitmap 用于在data blocks中找block,按位图的方式寻找
inode bitmap 用于在inode group中找inode,按位图的方式寻找
inode group 存放多个inode结构体
block group 存放多个块(block),块中存放的才是文件数据,一个块是4KB

(二).inode

inode本质是一个结构体,用于存放一个文件的相关信息。

一个文件往往由多个块组成,但一个文件只有一个inode

一个inode结构体内部记录了文件的大小、信息、该文件包含的所有块的编号等。

当删除文件时,只需要把对应的bitmap置0,同时把inode映射取消即可。

恢复文件时,找到原inode以及对应bitmap置1。

格式化时,并没有删除inode与block table内容,只是把映射取消,因为inode与block可以覆盖。

值得注意的是,虽然一个文件只能有一个inode,但是一个inode可以对应多个文件名(这些文件本质是同一个文件,因为对应inode相同也就是使用的块相同)。同时inode中会记录映射的文件名数量(引用计数方式),当数量为0时才会真正删除文件信息。

 二.软硬链接

(一).软链接

ln -s 路径+文件名 软链接名 

软链接可以类比windows快捷方式。

当删除时不会删除文件本体。

本质是因为软链接是一个新的文件,与目标文件不是同一个inode。

(二).硬链接

ln 路径+文件名 硬链接名 

硬链接删除时也不会删除相关文件,但是硬链接与目标文件是同一个文件。

因为inode与目标文件相同,只是在inode映射的文件名数量上加一。


如有错误,敬请斧正

猜你喜欢

转载自blog.csdn.net/weixin_61857742/article/details/128060428