什么是inodes ?

所属分类: 软件教程 / 新手学堂 阅读数: 1796
收藏 0 赞 0 分享

  磁头 ( Head ) :可擦写的金属磁盘;

  磁道 ( Track ) :读写头转一圈 ( 同心圆的一圈 ) 的量;

  扇区 ( Sector ) :最小的物理储存量。

  好了,知道了大体的硬盘构造之后,再来谈一谈怎么硬盘分割( partition )呢?我们在进行硬盘分割的时候,最小都是以磁柱为单位进行分割的,那么分割完成之后自然就是格式化( format )啰,在 Linux 里面我们在进行格式化的时候必须要考虑到 Block 与 inode 的信息,这个 block 还好理解,他是我们磁盘可以记录的最小单位,是由数个 sector 所组成的,所以他的大小通常为 n*512 bytes ,例如 4K 。那么 inode 是什么? Block 是记录『档案内容数据』的地区,而 inode 则是记录『该档案的属性、及该档案放置在哪一个 Block 之内』的信息!所以,每个档案都会占用到至少一个 inode 。而当我们 Linux 系统要找到这个档案时,他会先去搜寻 inode table 找到这个档案的属性及数据放置的地区,然后再到数据去找到数据存放的 Block 进而将数据取出利用。这个 inode 数目在一开始就会被设定好,他的设定方式通常是利用 ( 硬盘大小 / 一个容量 ),这个容量至少应该比 Block 要大一些较佳,例如刚刚的 Block 订为 4K ,那么 inode 可以订为 8K 左右。所以,一颗 1GB 的硬盘,如果以 8K 来规划他的 inode 数时,他的 inode 就会有 131072 个 inode 啦!而一个 inode 的大小为 128 bytes 这么大!这么一来的话,我们就可以清楚的知道了,那就是一个 partition 格式化为一个 filesystem 之后,基本上,他一定会有 inode table 与 data area 两个区块,一个用来记录档案的信息与该档案放置的 block 区块,一个用来记录档案的内容!

  由于我们 Linux 在读取数据的时候,是先查询 inode table 以得到数据是放在那个 Block 里面,然后再去该 Block 里面读取真正的数据内容!然后,那个 block 是我们在格式化硬盘的时候规定出来的一个值,这个 block 是由 2 的 n 次方个 sector 所集结而成的!所以,他是 0.5K 的倍数喔!假设我们 block 规划为 4KBytes 好了,那么由于一个 inode 与一个 block 最多均只纪录一个档案,所以,哈哈!如果你的一个档案有 0.1 K bytes 这么大时,你要晓得的是,由于你的 block 为 4K bytes ,因此,你就会有 3.9 Kbytes 的空间『浪费掉』喔!所以,当你在格式化硬盘的时候,请千万注意到你的系统未来的使用方向喔!

  当 block 越小 ( 最小为 0.5K ) 、inodes 越多,可利用空间越多,但是大档案写入效率较差:适合档案数量多但是档案容量小的系统,例如 BBS 或者新闻群组 news 这方面的服务之系统;

  当 block 越大 ( 最大可到 16 * 0.5K 以上 ) 、 inodes 数越少,大档案写入效率较佳,但浪费的空间较多:适合档案容量大的系统。

  --------------------------------------------------------------------------------

  ln

  OK!知道了什么是 inode 与他的功能之后,接着下来就要来介绍 link 这个玩意儿了!说到 link 其实也没有什么大不了的,说穿了,就真的有点像是 Windows 的『快捷方式』一样,不过, link 的功能要好的多呦! Link 又分为 hard link 与 symbolic link 两种方式,分别来谈一谈:

  Hard Links:

  刚刚说过,当系统要读取某一个档案的时候,就会先去读 inode table ,然后再根据 inode 的信息到 block area 去将数据取出来利用!而 hard link 就是直接再建立一个 inode 连结到档案放置的 block 区块。也就是说,进行 hard link 的时候,实际上,你的档案内容不会改变,只是你在查询的时候,利用原来的 inode 与后来的 inode 均可被指定到该档案放置的地点,因此两个档案的内容会是一样的!所以读取任何一个 inode 的结果都是存取在同一个档案的内容就是了。不过,这样一来就有个问题啦,因为 inode 是会连结到 block 区域去的,而『目录』本身仅消耗 inode 而已,那么一来的话, hard link 不就不能 link 目录啦?对的!没错! Hard link 有两个最大的限制:

  不能跨 filesystem ,因为不同的 filesystem 有不同的 inode table 嘛!

  不能 link 目录!

  Symbolic Links:

  相对于 hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一个独立的档案,而这个档案会让数据读取指向他 link 的那个档案内容!由于只是利用档案来做为指向的动作,所以,当来源档被删除之后,symbolic link 的档案会『开不了』,会一直说『无法开启某档案!』

  所以,看样子,似乎 hard link 比较安全,因为即使某一个 inode 被杀掉了,只要有任何一个 inode 存在,那么该档案就不会不见!不过,不幸的是,由于 Hard Link 的限制太多了,包括无法做『目录』的 link ,所以在用途上面是比较受限的!反而是 Symbolic Link 的使用方向较广喔!好了,说的天花乱坠,看您也差不多快要昏倒了!没关系,实作一下就知道怎么回事了!

  特别留意,底下的案例中,我们是将系统的设定文件 copy 到 /root/test 底下进行测试用的,请不要在 /etc/ 底下做,未来我们的工作目录都会在 /root/test 底下进行,这有个好处,是可以让您清楚的知道,这是用来 test 用的啦!

  语法: [root @test /root ]# ln [-s] [来源档] [目的档]

  参数说明:

  -s   :提供连结档的连结!如果直接以 ln 不加任何参数的话,那么就属于 hard link 啰!

  范例:

  [root @test /root]# mkdir test

  [root @test /root]# cd test

  [root @test /test]# cp /usr/bin/passwd .

  0. 原本的信息:

  [root @test /test]# ll

  -rw-r--r-- 1 root     root        13476 Jun 26 11:31 passwd

  [root @test /test]# du -k <==查看该目录下的占用硬盘空间

  20

  1. Hard Link 信息:

  [root @test /test]# ln passwd passwd-hard

  [root @test /test]# ll

  total 32

  -rw-r--r-- 2 root     root        13476 Jun 26 11:31 passwd

  -rw-r--r-- 2 root     root        13476 Jun 26 11:31 passwd-hard

  注意看,上面那个数字变成 2 啰!这就是占用掉 inodes 啰!

  [root @test /test]# du -k

  20 <==注意看,容量并没有变大!因为是 link 档案呀!

  2. Symbolic Link 信息:

  [root @test /test]# ln -s passwd passwd-soft; ll

  -rw-r--r--    2 root     root        13476 Jun 26 11:31 passwd

  -rw-r--r--    2 root     root        13476 Jun 26 11:31 passwd-hard

  lrwxrwxrwx    1 root     root            6 Jun 26 11:37 passwd-sofe -> passwd

  注意啰!该 Symbolic Link 的档案是有容量的呦!

  注意啰, passwd-soft 会指到另外一个档案去,而且,最前面属性显示 l ,

  此外,他是一个独立的档案!先杀掉 passwd 后,我们分别 more 一下内容:

  3. 用 more 来试试看是怎样?!

  [root @test test]# rm passwd

  rm: remove regular file `passwd'? y

  [root @test test]# more passwd-hard

  ………(正常显示)

  [root @test test]# more passwd-soft

  passwd-soft: No such file or directory

  说明:

  要注意啰!如果不加任何参数的话,那么就是 Hard Link 啰!如同上面的情况,增加了 hard link 之后,可以发现 link 那一栏属性增加了!而如果这个时候砍掉 passwd 会发生什么事情呢?呵呵! passwd-hard 的内容还是会跟原来 passwd 相同,但是 passwd-soft 就会找不到该档案啦!就是这样!了解了吗?!还有,跟 cp 也不一样呦!因为虽然 Hard Link 的档案看起来是有容量的,但是基本上还是指向原来的档案,所以啰,整体容量是没有增大的啦!

  而如果使用 -s 的参数时,就做成差不多是 Windows 底下的『快捷方式』的意思(Symbolic Link,较常用!)不过,需要特别注意的是, Linux 的 link 与 Windows 的快捷方式是不一样的东西!举个例子说,当你在 Windows 建立一个快捷方式时,你可以在这个快捷方式内修改任何数据,而你的原始数据并不会跟着变!不过,当你修改 Linux 下的 link 档案时,则更动的其实是『原始档』,呵呵,所以不论你的这个原始档被连结到哪里去,只要你修改了连结档,呵呵!原始档就跟着变啰!以上面为例,由于你使用 -s 的参数建立一个名为 passwd-soft 的档案,则你修改 passwd-soft 时,其内容与 passwd 完全相同,并且,当你按下储存之后,被改变的将是 passwd 这个档案!

  此外,如果你做了底下这样的连结:

  ln –s /bin /root/bin

  那么如果你进入 /root/bin 这个目录下,『请注意呦!该目录其实是 /bin 这个目录,因为你做了连结档了!』所以,如果你进入 /root/bin 这个刚刚建立的连结目录,并且将其中的数据杀掉时,嗯! /bin 里面的数据就通通不见了!这点请千万注意!并不是 /root 底下的资料都是 root 的!还需要注意一下该属性才行!

  基本上, Symbolic link 的用途比较广,所以您要特别留意 symbolic link 的用法呢!未来一定还会常常用到的啦!

更多精彩内容其他人还在看

Cmd下修改文件访问控制权限

保证自己的磁盘分区格式是NTFS.FAT32是不行的. 一、Cacls.exe命令的使用 这是一个在Windows 2000/XP/Server 2003操作系统下都可以使用的命令,作用是显示或者修改 文件的访问控制表,在命令中可以使用通配符指定多个文件,也可以在命令中指定
收藏 0 赞 0 分享

可启动光盘的启动原理

  可启动CD-ROM(或称可引导光盘)的概念早在1994年(辉煌的DOS年代)就被提出来了,当时CD-ROM还是PC机的一个昂贵的附属设备(CD-ROM加声卡在当时被成为多媒体套件,带多媒体套件的电脑被成为多媒体电脑),而且在DOS平台下实现光盘引导还存在一些技术上的困难:要在
收藏 0 赞 0 分享

回车符与换行符

  计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
收藏 0 赞 0 分享

看看你的电脑一天都用了多少电

  电脑耗电量多少,大家一定很关心,今天同事问了个问题说电脑各硬件的用电量是多少?,旁边另外一个人开玩笑道:把两根手指插入电插板里就知道了。一般地,电视机的耗电量在80W以下,电脑大约在250——400W之间。一台电脑每个月的耗电量:假如每小时为300W×一天开10小时
收藏 0 赞 0 分享

提高Firefox速度

  对Firefox进行进行以下设置,可以提高其打开速度。      1、在地址栏输入“about:config”, 打开一个参数命令行的详细列表。   2、在列表中,找到“network.http.pipelining.maxrequests”并把它的值改的高一些,如改成
收藏 0 赞 0 分享

电脑变慢10大原因

  1、在开机时加载太多程序    2、桌面上开启桌布    3、没有定期清理硬磁盘和重组硬磁盘 魔武千年    以下我就会很详细地说明一下如何加速计算机和令计算机慢的病征!解决常见影响计算机表现的原 ...
收藏 0 赞 0 分享

常用字符集编码详解

  ASCII  ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。  只支持ASCII码的系统会忽略每个字节的最高位,只认为低 ...
收藏 0 赞 0 分享

深入研究电脑死机的原因

  在电脑使用过程中,我们经常会遇到死机的情况,而死机伴随者电脑操作系统,从一开始的Windows图形化操作系统开始,就一直有这样的情况。  为什么一直解决不了?那要从Windows的工作方式说起。为什么要强 ...
收藏 0 赞 0 分享

Windows八种安全模式揭密

  经常使用电脑的人可能都听说过,当电脑出了故障时,Windows会提供一个名为“安全模式”的平台,在这里用户能解决很多问题--不管是硬件(驱动)还是软件的。然而你会使用这个安全模式么?今天我们就来带您认识一下它的真面目。
收藏 0 赞 0 分享

服务器使用中的误区

  服务器是至关重要的核心设备,确保网络服务器能够高性能、稳定持续地工作一直以来都是用户最关心的问题。然而在关注着这个问题的同时。我们发现有很多的用户都没有正确地配置自己的服务器,使得服务器并没有 ...
收藏 0 赞 0 分享
查看更多