linux更改inode(详解Linux索引节点inode)
linux更改inode
详解Linux索引节点inode1.inode简介
理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点” 。
2.inode包含内容
Linux中目录的数据块中的每一项中都包含了文件名和其对应的inode。inode记录了文件的属性以及该文件实际存储位置,即数据块号(block number),每一个block(常见大小4KB),通过inode可以实现文件的查找定位。inode是Linux中的,Unix中是vnode。基本上,inode包含的信息至少有如下这些:
(1)文件的类型
(2)文件访问权限;
(3)文件的所有者与组;
(4)文件的大小;
(5)链接数,即指向该inode的文件名总数;
(6)文件的状态改变时间(ctime)、最近访问时间(atime)和最近修改时间(mtime);
(7)文件特殊属性,SUID、SGID和SBIT;
(8)文件内容的真正指向(pointer)。
可以用stat命令,查看某个文件的inode信息。
3.inode特点
inode的数量与大小在磁盘格式化的时候就已经固定了,inode的特点有:
(1)每一个inode的大小均固定为128B。可以通过命令dumpe2fs来显示ext2/ext3/ext4文件系统信息。
$ dumpe2fs -h /dev/sda1 | grep "Inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size: 128
(2)每个文件都只占用一个inode。因此,文件系统能够建立的文件数量与inode数量有关。系统读取档案时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。
4.操作系统读取磁盘文件的流程
操作系统读取磁盘文件的流程是这样的:
(1)根据给定的文件的所在目录,获取该目录的数据实体,根据数据实体中的数据项,找到对应文件的inode;
(2)根据文件inode,找到inodeTable;
(3)根据inodeTable中的对应关系,找到对应的block;
(4)读取文件。
系统读取磁盘文件流程示意图如下:
举例来说,如果想要读取/etc/passwd文件,读取流程如下:
(1)获取根目录/的inode。透过挂载点的信息找到根目录的inode号为2;
ll -di / 2 dr-xr-xr-x 19 root root 4096 Feb 14 09:32 /
(2)根据根目录的inode,找到根目录的数据实体block,可以理解为一个文件到inode号的映射表,找到目录etc的inode号;
ll -di /etc 786433 drwxr-xr-x 98 root root 12288 Feb 13 17:18 /etc
(3)根据目录etc的inode号,读取目录etc的数据实体block,并找到文件passwd的inode号;
ll -i /etc/passwd 787795 -rw-r--r-- 1 root root 1552 Jan 4 14:56 /etc/passwd
(4)根据/etc/passwd文件的inode号,即可获取/etc/passwd文件的数据实体block,完成文件的读取。
5.inode的诸多优点
(1)对于有些无法删除的文件可以通过删除inode节点来删除;
(2)移动或者重命名文件,只是改变了目录下的文件名到inode的映射,并不需要实际对硬盘操作;
(3)删除文件的时候,只需要删除inode,不需要实际清空那块硬盘,只需要在下次写入的时候覆盖即可(这也是为什么删除了数据可以进行数据恢复的原因之一);
(4)打开一个文件后,只需要通过inode来识别文件。
以上就是详解Linux索引节点inode的详细内容,更多关于Linux索引节点inode的资料请关注开心学习网其它相关文章!
- linuxdocker命令使用教程(seata docker 高可用部署的详细介绍)
- cent os7.0 安装mysql(mysql8.0.23 linuxcentos7安装完整超详细教程)
- linux编写ftp程序(Linux实现文件上传ftp服务器脚本代码)
- BT宝塔Linux服务器管理助手架设VPS面板(安装及初始设置应用)(BT宝塔Linux服务器管理助手架设VPS面板安装及初始设置应用)
- mysql和mycat半主从复制项目(Linux如何使用 MyCat 实现 MySQL 主从读写分离)
- linux系统登录mysql数据库(Linux手动部署远程的mysql数据库的方法详解)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
- linux下python安装pip(在Docker中的ubuntu中安装Python3和Pip的问题)
- tomcat在linux系统安装步骤(Tomcat的卸载和重装的实现图文)
- pythonsocket编写web服务器(局域网内python socket实现windows与linux间的消息传送)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- unix进程空间的区段(Unix/Linux fork隐藏的开销)
- linux怎么上传windows的文件(Windows本地环境和Linux腾讯云服务器之间传输文件的方法)
- linux中ipconfig命令的功能(Linux ipcs命令的使用)
- 阿里云ecs服务器数据在哪儿(阿里云ECS云服务器linux系统安装mysql后远程连接不了踩坑)
- linux中ceph的状态(Wdcp linux控制面板配置多PHP版本记录)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
热门推荐
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- label标签的作用
- php使用yield处理并发(Yii2.0框架模型多表关联查询示例)
- 火狐浏览器状态栏的恢复
- volume怎么添加docker(docker volume删除卷的操作)
- css 图片边缘虚化(CSS3对图片照片进行边缘模糊处理的实现)
- html5横向滚动(解决HTML5中滚动到底部的事件问题)
- iframe嵌入页面跨域(使用iframe+postMessage实现页面跨域通信的示例代码)
- pythonselenium自动选框(python selenium 弹出框处理的实现)
- linux后台运行程序的命令(在后台运行Linux命令的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9