linux文件系统

文章详细介绍了Linux文件系统的基本构成,包括Ext3/4和XFS文件系统,以及swap分区的作用。inode作为文件系统的关键,存储文件的元数据,而block是文件存储的最小单位。superblock保存了整个文件系统的状态信息。此外,讨论了inode耗尽可能导致的问题以及硬链接和软链接的概念和差异。
摘要由CSDN通过智能技术生成

linux文件系统

文件系统

Ext-Ext4,现在基本上公司用的是Ext3和Exit4

xfs 是Centos7所使用的文件系统

swap 用于交换分区的文件系统,当内存不够用的时候,交换分区可以暂时替代,大小一般是内存的2倍

inode,block,superblock的区别

inode是Linux/Unix文件系统的基础;

扇区(Sector) : 在硬盘中,他的最小存储单位是扇区(Sector),一个扇区可以存放512个字节;

块(block) : 连续多个扇区叫做块,他是文件存储的最小单位,大部分情况下,8个扇区代表一个块,可以存储4KB左右的文件,一个文件可能会占用多个块,但是一个块只能存放一种文件;

超级区块(superblock) : 就是用来记录整个文件系统的整体信息,如:inode和block的总量,使用量,剩余量等,想要查看用stat命令来查看;

在Linux系统中,可以把他简单分成inode table 和 data area ,inode存放在inode table中,每一个inode都存放着文件的元数据(metadata)

哪什么是inode呢,在我们将一个文件存放在block中时,还需要有一个区域来存放文件的metadata ,它包括文件被分成了几块,每一块的位置,大小,权限,文件拥有者,创建时间等。

那么这个区域就被成为inode,也叫索引节点。

inode

(1)概念

在块中用来存放元数据的区域称为inode

inode包含:文件被分成了几块,每一块的地址,创建时间,文件的拥有者,大小,权限等

在Linux中,识别文件不是靠文件名,而是靠索引节点

每个文件都有一个inode,因此有一种可能,你有10MB大小的硬盘,你每件一个文件都会消耗一个inode,当你的inode消耗完,你就无法在创建新的文件,只能给原有文件写入内容

可以使用ls -i来查看一下,前面的数字就是他的inode号码

(2)大小

inode是有大小的,通常是128或256字节,一般是1KB或2KB设置一个inode

如果一个硬盘1GB大小,inode占128字节,1KB设置一个inode,那么inode table大小就是128MB,站硬盘的12.8%

查看硬盘分区的inode的使用情况用df -i 命令

(3)inode编号

上面说过,每个文件都有一个inode,Linux中并不识别文件,要想查看一个文件就只能通过inode,因为他识别inode

inode包含:文件被分成了几块,每一块的地址,创建时间,文件的拥有者,大小,权限等

所以我们要查看一个文件内容,他并不是直接去找文件名

第一步:找到文件对应的inode号码,

第二步:通过inode号码找到inode

第三步:在inode中找到文件的存放的block,然后读取数据

(4)特殊用法

如果文件的名字有特殊符号我们无法删除,可以通过删除文件的inode号码来将其删除,因为一个文件有一个inode号码,

用法:find -inum inode号码 -delete

当你使用移动或重命名的命令后,并不会对inode进行改变,因为Linux系统不会识别文件名来识别文件

当打开文件后,系统识别文件只靠inode号码,不考虑文件名,所以我们可以在打开软件的时候完成文件的更新,因为系统靠inode识别文件,当我们要更新某个文件时,先创建一个原文件名的新文件设置一个新的inode,把更新后的文件放在新文件中,删掉原文件,重启后,系统会通过新的inode找到新的原名文件,旧的inode会被系统回收。

block

文件存储的最小单位

block大小可以自己设定

文件太大会占用多个块,读取效率降低

文件太小,block大,浪费,磁盘利用率低

superblock

就是用来记录整个文件系统的整体信息,如:inode和block的总量,使用量,剩余量等,想要查看用stat命令来查看;

查看的是/目录下的

inode号码用完导致文件无法创建

上面说过,当一个硬盘的用完,但是空间还有导致文件无法创建

例子:我们先挂载一个10MB大小的虚拟文件系统(tmfs)到/mnt目录下

/mnt就是用来让用户临时挂载别的文件系统

[root@localhost ~]# mount -t tmpfs none /mnt -o size=10M

可以看到,这个10M的tmpfs还没有填写内容,inode号码只使用了一个,还有124458个,我们现在将里面剩余的inode号码用完

可以看到,inode号码全部用完,但是文件内存显示还有10M,我们在创建一个文件试试

显示没有空间,内存明明还有,这就是inode爆满导致无法创建新文件但空间还有,我们尝试写入内容

可以写入,但无法创建新文件

解决办法

要么删掉这些文件,要么卸载/mnt

删除后,inode释放出来

硬链接与软连接

硬链接

一般情况下,一个文件对应一个inode号码,但是,Linux系统中,它允许多个文件名指向一个inode号码,也就可以通过不同的文件名访问同样的内容,修改文件内容会影响所有文件名,但是删除一个文件名不影响其他文件名访问,这就是硬链接

我创建了一个new1.txt的硬链接new2.txt,通过比较查看他俩之间没有区别

当我们给一个文件追加进内容后,另一个硬链接文件里也有

删除一个文件名后,另一个受影响

软链接

类似于windows系统桌面的快捷方式,通过快捷方式你可以查看文件内容,删除快捷方式,文件内容可以打开,但是删除文件内容,快捷方式就不能使用,这就是软连接原理

可以看到new3.txt指向new2.txt,new3.txt 就是new2.txt的快捷方式

可以通过new3.txt查看到new2.txt

可以发现,删掉new3.txt对new2.txt没有影响,但删掉new2.txt,new3.txt就无法查看到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值