学习鸟哥的linux私房菜基础学习篇
操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如linux的文件权限与文件属性等。文件系统通常会将这两部分数据分别存放在不同的区块,权限与属性放置到inode中,至于实际数据则放置到data block区块中。另外还有一个超级区块会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。
superblock:记录此filesystem的整体信息,包括inode/block的总量、使用量,剩余量,以及文件系统的格式与相关信息等
inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码
block:实际记录文件的内容,若文件太大时,会占用多个block
每个文件系统都有独立的inode/block/superblock等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统与目录树结合的动作我们称为挂载。
挂载点一定是目录,该目录为进入该文件系统的入口。因此并不是你有任何文件系统都能使用,必须要挂载到目录树的某个目录后,才能够使用该文件系统。
hard link硬连接只是在某个目录下新增一笔档名链接到某inode号码的关连记录而已。
如果你将任何一个档名删除,其实inode与block都还是存在的,此时你可以透过另一个档名来读取到正确的文件数据。
透过1或2的目录之inode指定的block找到两个不同的档名,而不管使用哪个档名均可以指到real那个inode去读取到最终数据
一般来说,使用hard link设定连接文件时,磁盘的空间与inode的数目都不会改变。hard link只是在某个目录下的block多写入一个关连数据而已,既不会增加inode也不会耗用block数量。
硬连接不能跨文件系统,不能link目录。如果你要将hard link链接到目录时,连接的数据需要连同被连接目录底下的所有数据都建立连接
sysmbolic link软链接,就是建立一个独立的文件,而这个文件会让数据的读取指向它link的那个文件的档名。由于只是利用文件来作为指向的动作,所以当来源档被删除之后,软链接的文件会开不了
由1号inode读取到连结档的内容仅有档名,根据档名链接到正确的目录去取得目标文件的inode,最终就能够读取到正确的数据。如果目标文件被删除了,那么整个环节就会无法继续下去。如果源表没有对应的权限,也无法进行下去