文件系统与inode
• UNIX文件系统有很多种类型,如HFS,NFS,JFS,CDFS。虽然文件系统种类很多,但是也有着一些相同的数据结构:超级块、inode、目录等等。
• inode译成中文就是索引节点,它用来存放文件及目录的基本信息,包含时间、档名、使用者及群组等。 inode数据结构
作为一种数据结构,inode主要包括以下信息:
• inode 编号
• 用来识别文件类型,以及用于 stat C 函数的模式信息
• 文件的链接数目
• 属主的 UID
• 属主的组 ID (GID)
• 文件的大小
• 文件所使用的磁盘块的实际数目
• 最近一次修改的时间
• 最近一次访问的时间
• 最近一次更改的时间 inode数据结构文件
• 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)。可以在 Header 文件 /usr/include/jf/ino.h 中或者 Web 页面 中可以找到完整的 inode 结构。 inode块
• 在 UNIX 中创建一个文件系统时,将为 inode 表分配大约百分之一的总磁盘空间。这个百分之一的空间就是inode块。
• inode块中包括所有inode节点。当系统创建了一个文件时,系统就会从这个块中给这个文件分配一个Inode结点。在这个结点中存储了这个文件的大部分属性,如创建、修改时间等等。但是,有两个属性不包含在这个inode结点中,分别为文件名与结点号。——后者原因是因为inode节点按顺序排列,所以系统内核就可以采用简单的算法,就可以得出inode节点号。 inode与磁盘
• inode结点中还存储着一个重要的,就是保存了一个包含13-15位指针元素的数组,这些指针是磁盘块区的地址。
• 这些指针非常的重要。操作系统就是依靠这些指针在硬盘上定位相关的文件,并读取它。 inode优点
• inode不光有别的文件系统数据结构的一些特点,而且由于一些文件的属性都保存在Inode结点中,为此一些命令在获取这些属性的时候,是不需要打开文件的。比如在编写一个文件备份程序,就需要用到inode节点中的修改时间这个属性。此时可以利用相关的命令直接从inode结点中去获取,而不需要打开对应的文件去得知这个。为此在Unix操作系统中文件备份程序的执行效率会比较高,实现起来也相对简单一点。 有关inode的问题
之前说过的inode的两个关键属性:inode编号和inode中的指针数组,假如这两个属性出现问题,很可能会造成很大的灾难。
• 正常情况下,inode编号是不会出现问题的。但是假如由于意外断电或者其他原因的话,有可能会发生一些故障。如可能一个inode结点在系统中已经被创建,但是其没有被正常使用,或者可能块号超出了范围。这些故障会给操作系统留下安全隐患。
• 另外因为一些意外的操作也会使得inode中的指针地址出现错误。有时候这会非常的严重。如一些文件无法读取等等。假如这些文件不幸的是系统的一些配置文件,那么就会导致系统的崩溃。假如这些指针地址出现错误,则文件名仍然会显示在操作系统中。但是假如用户试着去打开这些文件时,系统却会告知无法打开这些文件。 如何解决
• 如果碰到之前说过的问题,可以使用fsck命令来尝试解决。对于inode编号错误, fsck可以修复inode结点中的错误。而对于后者,如果指针指向的文件损坏的不是很严重,那么操作系统内内核会为其再建立一个链接。但是假如原文件损坏的比较厉害了,无法再重新读取。则系统会建立用户删除这个文件。 总结
• 从上面的这些分析中可以看到,inode结点是Unix操作系统中文件的核心,也是操作系统与硬盘中存储的数据的一个中介者。假如这个结点出现错误的话,那么硬盘中存储的数据块就似乎是无主的流浪者,无法被用户所采用。
• 另外我们平时删除文件,其实只是删除了与文件的联系。所以通过一些恢复工具仍然可以恢复被删除了的文件。假如需要真正删除文件的话,就需要格式化硬盘或者复制大文件把其覆盖掉。只有如此硬盘中存储的数据块才会被真正的删除掉。
• 最后需要说明的是,按照正常的关机程序来关闭Unix操作系统,是保护inode结点的最好措施。忽然断电或者其他意外事故,是inode结点的最大杀手。

aix i节点的更多相关文章

  1. 11.2.0.4 aix下运行第二个节点root.sh报错处理

    第二个节点运行root.sh报错如下 Entries will be added to the /etc/oratab file as needed by Database Configuration ...

  2. AIX 5L 系统管理技术 —— 存储管理——卷组

    卷组 在安装系统时,就会创建一个rootvg卷组.包含自带硬盘(内置硬盘)和系统逻辑卷,一个系统只能有一个rootvg卷组.一般情况下rootvg卷组最好只包含自带硬盘. 一.创建卷组 在创建卷组之前 ...

  3. AIX之ASM存储扩容

    ASM存储扩容操作其实很简单,无非就是向DiskGroup(简称DG)里添加物理磁盘,增加DG的存储空间.说来简单,其实操作过程中有很多小细节要注意,否则,带来的后果是灾难性的. ASM扩容操作步骤( ...

  4. 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求

    http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf2.html 最大化 AIX 上的 Java 性能,第 ...

  5. Aix命令大全

    AIX服务器系统命令简介 在AIX操作系统上有很多的命令.这里介绍一些系统级的命令,它将有助于回答一些常见问题.大家以此做参考,并补充修改. 以下命令在AIX 5.1上测试通过. 正文 以下命令在AI ...

  6. aix 文件大小相关查询

    一.aix中查看文件夹占用空间大小 du命令默认是显示当前目录下每个文件以及每个子目录以及下属文件的大小的 用du -sg 可看出当前文件夹的大小,包括文件夹下文件和文件夹(以G为单位):用du -s ...

  7. AIX topas命令详解

    本文转载于:AIX topas命令详解 topas命令默认2秒更新一次 一.topas命令以区域形式表现系统各项指标性能,如下图: 1. CPU:反应CPU性能区域,如果有多个 CPU,按 c 键两次 ...

  8. puppet aix之自动化用户管理

    一.    用户组的管理 (一)   Puppet组管理特性 1.   manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...

  9. AIX下RAC搭建 Oracle10G(一)检測系统环境

    AIX下RAC搭建系列 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 S ...

随机推荐

  1. 过滤部分错误信息,不输出到stderr

    cmd 2>/tmp/stderr.log cat /tmp/stderr.log | grep -v “要过滤信息的关键字” >&2 rm /tmp/stderr.log

  2. 多行滚动jQuery循环新闻列表代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. CSS3 关于@font-face引用中文字体解决办法

    有两种方法,一种简单的,一种比较复杂,都可以实现(注:这里的方法只适合使用少量的中文字体,如果使用的字量过大,请使用其他方法解决) 第一种:简单的 1.下载需要的中文字体的.ttf格式,这个都不难找到 ...

  4. hihocode 第九十二周 数论一·Miller-Rabin质数测试

    题目链接 检测n是否为素数,数据范围为2 <= n <= 10^18; 思路:Miller_Rabin素数检测模板题,原理:在Fetmat定理的基础之上,再利用二次探测定理: 对于任意的正 ...

  5. hdu 3944 DP? 组合数取模(Lucas定理+预处理+帕斯卡公式优化)

    DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0 ...

  6. MacBookPro 蓝牙重置

    我的MBP经常休眠唤醒后蓝牙死机,怎么办? 大部分情况下,关机重启就可以了,但是如果还不行的话,试一下如下方法,也能解决问题: 重置一下电源管理和总线给你个方法 您的电脑首先是在关机的状态重置电源管理 ...

  7. Automotive Security的一些资料和心得(8):Hardware Security Module (HSM)

    1. Introduction - 保护软件的安全性措施,作为值得信赖的安全锚,- 安全地生成,存储和处理安全性关键材料屏蔽任何潜在的恶意软件,?- 通过运用有效的限制硬件篡改攻击的可能性篡改保护措施 ...

  8. ruby的gem和boundle安装解决办法

    gem和boundle安装在国内被墙,淘宝提供了淘宝提供了RubyGems的国内镜像站点,解决办法是: 对于gem: $ gem sources --remove https://rubygems.o ...

  9. jacob访问ocx控件方法和遇到的问题

    最近在进行摄像机的二次开发,摄像机厂商提供了使用C++开发的ocx控件:所以尝试使用jacob来进行访问. 操作步骤如下: 1, 从官网(http://sourceforge.net/projects ...

  10. Altium Designer 常用快捷键总结

    原理图:1:按住shift  拖动某个元件,可快速复制.2:按住鼠标滚轮 鼠标上下滑动 放大缩小.3:按住Ctrl 按住鼠标右键 鼠标上下滑动也放大缩小.4:按住Ctrl 拖动某个元件 可以移动位置 ...