首页 > 系统相关 >深入理解Linux文件系统

深入理解Linux文件系统

时间:2024-06-03 11:00:01浏览次数:19  
标签:文件 号码 文件名 文件系统 深入 Linux inode block

目录

inode和block概述

block(块)

indoe(索引节点)    

inode的内容

Linux系统文件三个主要的时间属性

inode文件结构

所以,当用户在 Linux 系统中试图访问一个文件时,系统会先根据文件名去查找它对应的 inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据 block, 如果没有,就返回 Permission denied

inode的大小

inode的特殊作用

链接文件

恢复文件(并不能百分百恢复数据)

 对ext系列的数据恢复


inode和block概述

        文件数据包括元信息与实际数据

        文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节

        每个文件必须占有一个inode,但至少占用有一个block

block(块)

        连续的八个扇区组成一个block

        是文件存取的最小单位

indoe(索引节点)    

        中文译名为“索引节点”,也叫i节点

        用于存储文件元信息

        每个文件有且只有一个inode

        df -i 查看inode数量

inode的内容
  • inode包含文件的元信息
    • 文件的字节数
    • 文件拥有者的User ID
    • 文件的读、写、执行权限
    • 文件的时间戳
    • 不包含文件名
  • 用stat命令可以查看某个文件的inode信息
    • stat  aa.txt
Linux系统文件三个主要的时间属性
  1. ctime
    1. 最后一次改变文件或目录(属性)的时间
  2. atime
    1. 最后一次访问文件或目录的时间
  3. mtime
    1. 最后一次修改文件或目录(内容)的时间

         Linux中一切皆文件

inode文件结构
  1. 目录文件的结构
    1. 目录也是一种文件
    2. 目录文件的结构
  2. 每个inode都有一个号码,操作系统用inode号码识别不同的文件
  3. Linux系统内部不使用文件名,而使用inode号码来识别文件
  4. 对于用户,文件名只是inode号码便于识别的别称
  5. 查看inode号码的方法
    1. ls -i :直接查看文件名对应的inode号码
    2. stat   :通过查看文件的inode信息,从而看到inode号码
  6. 用户通过文件名打开文件时,系统内部的过程
    1. 系统找到这个文件名对应得到inode号码
    2. 通过inode号码,获取inode信息
    3. 根据inode信息,找到文件数据所在的block,读出数据
  7. 访问文件的简单流程
    1. 所以,当用户在 Linux 系统中试图访问一个文件时,系统会先根据文件名去查找它对应的 inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据 block, 如果没有,就返回 Permission denied
inode的大小
  1. inode也会消耗磁盘大小
    1. 每个inode的大小
    2. 一般是128字节或256字节
  2. 格式化文件系统时确定inode的总数
  3. 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
  4. 根据inode号码进行文件删除
inode的特殊作用
  1. 由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下现象
    1. 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
    2. 移动或重命名文件时,只改变文件名,不影响inode号码
    3. 打开一个文件后,系统通过inode号码来识别该文件,不在考虑文件名
链接文件

        

创建链接用命令  ln

恢复文件(并不能百分百恢复数据)

 对ext系列的数据恢复

  1.  格式化  →  添加一块硬盘,划分完之后,格式化为ext3类型

  2. 挂载   →  创建一个文件,把sdb1挂载该文件(ls查看时,注意看文件类型为ext3)

  3. 写入数据  →  在kgc下创建三个文件,随便写入数据,在kc65下创建一个文件,写入数据(模拟数据丢失)

  4. 利用xshll传入文件extundelete-0.2.4.tar.bz2 ,下载编译安装

  5. 下载依赖安装包

  6. 解压文件,切到解压后的包

  7. 编译安装

  8. 执行命令  echo $?  查看结果是否为0 ,不为0,查看上述步骤,是否有误

  9. 软连接操作,简化代码操作。切回root家目录

  10. 检测能否识别到自己创建的文件(能则继续操作,不能检测软连接是否有误)

  11. 模拟对创建文件的误操作

  12. 卸载挂载的文件,防止对文件的进一步操作

  13. 输入如图命令,尝试恢复数据

  14. ls查看,会多一个RECOVERED_FILES文件,ls查看,里面就是原先存储的数据

标签:文件,号码,文件名,文件系统,深入,Linux,inode,block
From: https://blog.csdn.net/m0_75135871/article/details/139401939

相关文章

  • Linux -- 环境变量与文件查找
    提示:制作不易看完点个关注和收藏哦前言提示:要解释环境变量,得先明白变量是什么,准确的说应该是Shell变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的......
  • Linux上安装并配置docker
    1.卸载旧版首先如果系统中已经存在旧的Docker,则先卸载:yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine 2.配置Docker的yum库首先......
  • 深入理解Java Collections框架
    JavaCollections框架是Java标准库的重要组成部分,它提供了一套用于存储和操作数据的通用算法和数据结构。无论是处理简单的列表还是复杂的映射,JavaCollections框架都能帮助开发者高效地管理数据。本篇博客将详细介绍JavaCollections框架的基础知识、核心接口和类、常用集合以......
  • 【ARM-Linux篇】Makefile入门
    一、编译工具及构建工具介绍make的出现是为了解决手动编译和链接大型工程的问题,它可以避免重复的工作,提高效率,保证正确性。make工具就根据makefile中的命令进行编译和链接的。但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改,因此更高级......
  • 《Linux内核完全注释》学习笔记:2.5 Linux内核对内存的使用方法
    在Linux0.11内核中,为了有效地使用机器中的物理内存,内存被划分成几个功能区域,如图2-9所示。图2-9物理内存使用的功能区域分布图Linux内核程序占据在物理内存的开始部分,接下来是用于供硬盘或软盘等块设备使用的高速缓冲区部分。当一个进程需要读取块设备中的数据时,系统会......
  • 【Linux系统编程】冯诺依曼体系、操作系统、进程的认识
    目录一、认识冯诺依曼体系二、认识操作系统三、认识进程一、认识冯诺依曼体系我们日常使用的计算机,笔记本和我们不常见的计算机如服务器,它们都遵循冯诺依曼体系。下图是冯诺依曼体系结构的图解:我们可以看到冯诺依曼体系结构由以下硬件组成:输入设备、输出设备、存储器......
  • Shell 脚本演示 Linux 中的 Wait 命令
    Wait命令是进程管理命令之一。Linux中有不同的进程命令,主要使用5个命令,它们是ps、wait、sleep、kill、exit。ps是进程状态的缩写。它显示有关活动进程的信息。wait命令将暂停调用线程的执行,直到其子进程之一终止。它将返回该命令的退出状态。sleep命令用于将下一个命令的执行......
  • springboot本地运行正常,打包jar包上传Linux服务器后报错,无法正常运行解决方法
    问题描述:springboot本地运行正常,打包jar包上传Linux服务器后报错,无法正常运行说明:以下两种打包方式均在IDEA软件内完成,上传服务器使用宝塔面板管理1.第一次打包方式; 设置完打包路径后,进入build菜单进行打包:  选择build或rebuild进行打包,打包后上传jar包到服务器,运......
  • linux服务器硬件及RAID配置实战
    RAID磁盘阵列介绍是RedundantArrayofIndenpendentDisks的缩写,中文简称为独立冗余磁盘阵列把多个独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAIDLevels)常用......
  • 【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)
    一、DNS(DomainNameSystem)DNS 是一整套从域名映射到 IP 的系统。1、DNS 背景TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名......