《Linu某磁盘与档案系统管理.docx》由会员分享,可在线阅读,更多相关《Linu某磁盘与档案系统管理.docx(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linuux 磁磁盘与档档案系统统管理11认识 EEXT22 档案案系统11硬盘物理理组成11磁盘分割割 ( Parrtittionn )22档案系统统3Linuux 的的 EXXT2 档案系系统( inoode )4EXT22/EXXT3 档案的的存取与与日志式式档案系系统的功功能8数据的不不一致 (Innconnsisstennt) 状态111Linuux 档档案系统统的运作作12挂载点的的意义 (moountt poointt)一三三其它 LLinuux 支支持的档档案系统统一三档案系统统的简单单操作114磁盘与目目录的容容量144df144du177连结档的的介绍:ln一八八# Haa
2、rd Linnk (硬式连连结或实实际连结结)19# Syymboolicc Liink (符号号连结,亦亦即是快快捷方式式)20关于目录录的 llinkk 数量量22磁盘的分分割、格格式化、检验与与挂载223磁盘分割割: ffdissk244# 删除除磁盘分分割槽227新增磁盘盘分割槽槽28# 操作作环境的的说明330# 注意意事项:31磁盘格式式化311mkboootddiskk (制制作软盘盘开机片片)33fdfoormaat (进行软软盘低阶阶格式化化)33磁盘检验验: ffsckk, bbadbbloccks333fsckk34badbbloccks335syncc35磁盘挂载载与卸
3、载载36umouunt (将装装置档案案卸载)39磁盘参数数修订339mknood399e2laabell40tunee2fss41# hddparrm411设定开机机挂载443各式磁盘盘挂载与与中文编编码挂载载还有 USBB 随身身碟444挂载软盘盘44挂载 WWinddowss 磁盘盘44挂载 UUSB 随身碟碟45开机挂载载 /eetc/fsttab 及 /eetc/mtaab455特殊装置置 looop 挂载499建立大型型档案449格式化449挂载500虚拟内存存之建置置50建立虚拟拟内存装装置511建立虚拟拟内存档档案511虚拟内存存的限制制53本章习题题练习:5381Linuux
4、 磁磁盘与档档案系统统管理我们在前前面的档档案权限限介绍的的章节当当中,提提到很多多的权限限与属性性的观念念,那么么接下来来要了解解的是,这些属性是记录在硬盘的那个地方?这里就要特别了解到 Linux 档案系统( filesystem )是如何记录档案,与档案是如何被读取的啰!而要了解整个档案系统的观念,就不能不知道硬盘的组成组件!所以,在这个章节当中,我们由最基础的硬盘组成组件介绍起,并介绍 inode 与连结文件等基本知识,以及如何利用开机即可挂载的方式来使我们的各个 partition 可以在开机时就已经进行好挂载的动作喔!认识 EEXT22 档案案系统既然这个个章节主主要在探探讨 LL
5、inuux 的的磁盘档档案系统统,所以以我们当当然就需需要先来来了解一一下硬盘盘是个什什么东西西啦!首首先,我我们就来来看一看看硬盘的的物理组组成,了了解了物物理组成成之后,再再来说明明一下怎怎么样进进行硬盘盘的分割割 (pparttitiion) 吧!硬盘物理理组成就硬盘的的物理组组件来说说,硬盘盘其实是是由许许许多多的的圆形硬硬盘盘所所组成的的,依据据硬盘盘盘能够容容纳的数数据量,而而有所谓谓的单碟碟 (一块块硬盘里里面只有有一个硬硬盘盘) 或者者是多碟碟 (一块块硬盘里里面含有有多个硬硬盘盘)的硬盘盘。在这这里我们们以单一一个硬盘盘盘来说说明,硬硬盘盘可可由底下下的图形形来示意意:图二、
6、磁柱示意图图一、硬盘盘示意图首先,硬硬盘里面面一定会会有所谓谓的磁头头 ( Heaad ) 在在进行该该硬盘盘盘上面的的读写动动作,而而磁头是是固定在在机械手手臂上面面的,机机械手臂臂上有多多个磁头头可以进进行读取取的动作作。而当当磁头固固定不动动 (假设设机械手手臂不动动) ,硬硬盘盘转转一圈所所画出来来的圆就就是所谓谓的磁道道( TTracck );而如如同我们们前面刚刚刚提到到的,一一块硬盘盘里面可可能具有有多个硬硬盘盘,所有硬盘盘上面相同半径的那一个磁道就组成了所谓的磁柱( Cylinder )。例如上图图二所示示意,在在两个硬硬盘盘上上面的同同一个磁磁道就是是一个磁磁柱啦!这个磁磁柱
7、也是是磁盘分分割( parrtittionn )时时的最小小单位了了;另外外,由圆圆心向外外划直线线,则可可将磁道道再细分分为一个个一个的的扇区( Seectoor ),这个个扇区就就是硬盘盘盘上面面的最小小储存物物理量了了!通常常一个 secctorr 的大大小约为为 5112 BBytees 。以上就就是整个个硬盘的的基本组组件。在计算整整个硬盘盘的储存存量时,简简单的计计算公式式就是:Cyllindder x HHeadd x Secctorr x 5122 Byytess。另外外,硬盘盘在读取取时,主主要是硬盘盘盘会转动动,利用用机械手手臂将磁磁头移动动到正确确的数据据位置(单方向向的
8、前后后移动),然后后将数据据依序读读出。在这个个操作的的过程当当中,由由于机械械手臂上上的磁头头与硬盘盘盘的接接触是很很细微的的空间,如果有抖动或者是脏污在磁头与硬盘盘之间时,就会造成数据的损毁或者是实体硬盘整个损毁因此,正正确的使使用计算算机的方方式,应应该是在在计算机机通电之之后,就就绝对不不要移动动主机,并并免抖动动到硬盘盘,而导导致整个个硬盘数数据发生生问题啊啊!另外外,也不不要随便便将插头头拔掉就就以为是是顺利关关机!因因为机械械手臂必必须要归归回原位位,所以以使用操操作系统统的正常常关机方方式,才才能够有有比较好好的硬盘盘保养啊啊!因为为他会让让硬盘的的机械手手臂归回回原位啊啊!磁
9、盘分割割 ( Parrtittionn )在了解了了硬盘的的物理组组件之后后,再接接着下来来介绍的的就是硬硬盘的分分割( Parrtittionn )啰啰!为什什么要进进行硬盘盘分割啊啊?!因因为我们们必须要要告诉操操作系统统:我我这块硬硬盘可以以存取的的区域是是由 AA 磁柱柱到 BB 磁柱柱,如如此一来来,操作作系统才才能够控控制硬盘盘磁头去去 A-B 范范围内的的磁柱存存取数据据;如果果没有告告诉操作作系统这这个信息息,那么么操作系系统就无无法利用用我们的的硬盘来来进行数数据的存存取了,因为操作系统将无法知道他要去哪里读取数据啊!这就是磁盘分割( Partition )的重点了:也就是记
10、录每一个分割区( Partition )的起始与结束磁柱!好了,那那么这个个分割区区的起始始与结束束磁柱的的数据放放在哪里里呢?!那就是是我们在在 Liinuxx 安装装与多重重开机技技巧那个个章节提提到的主主要开机机扇区( Maasteer BBoott Reecorrderr, MMBR )啰!事实上上, MMBR 就是在在一块硬硬盘的第第零轨上上面,这这也是计计算机开开机之后后要去利利用该硬硬盘时,必须要读取的第一个区域!在这个区域内记录的就是硬盘里面的所有分割信息,以及开机的时候可以进行开机管理程序的写入的处所啊!所以,当一个硬盘的 MBR 坏掉时,由于分割的数据不见了,呵呵,那么这个
11、硬盘也就几乎可以说是寿终正寝了,因为操作系统不知道该去哪个磁柱上读取数据啊那么 MMBR 有什么么限制呢呢?他最最大的限限制来自自于他的的大小不不够大到到储存所所有分割割与开机机管理程程序的信信息,因因此,MMBR 仅提供供最多四四个 pparttitiion 的记忆忆,这就就是所谓谓的 PPrimmaryy (PP)与 Exxtenndedd (EE) 的的 paartiitioon 最最多只能能有四个个的原因因了。所所以说,如如果你预预计分割割超过 4 个个 paartiitioon 的的话,那那么势必必需要使使用 33P + 1EE ,并并且将所所有的剩剩余空间间都拨给给 Exxtenn
12、dedd 才行行( 记得得呦! Exttendded 最多只只能有一一个 ),否则则只要 3P + EE 之后后还有剩剩下的空空间,那那么那些些容量将将成为废废物而浪浪费了,所所以结论论就是如果您您要分割割硬盘时时,并且且已经预预计规划划使用掉掉 MBBR 所所提供的的 4 个 paartiitioon ( 3PP + E 或或 4PP )那那么磁盘盘的全部部容量需需要使用用光,否否则剩下下的容量量也不能能再被使使用。不过,如如果您仅仅是分割割出 11P + 1EE 的话话,那么么剩下的的空间就就还能再再分割两两个 pprimmaryy paartiitioon !档案系统统在告知系系统我的的
13、 paartiitioon 所所在的起起始与结结束磁柱柱之后,再再来则是是需要将将 paartiitioon 格格式化为为我的的操作系系统认识识的档案案系统( Fiilessysttem )啰啰!因为为每个操操作系统统认识的的 fiilessysttem 并不相相同!例例如 WWinddowss 操作作系统在在预设状状态下就就无法认认识 LLinuux 的的档案系系统 ( 这里里指 LLinuux 的的标准档档案系统统 exxt2 )。所所以当然然要针对对我们的的操作系系统来格格式化 parrtittionn 啰!我们可以以说,每每一个 parrtittionn 就是是一个 Fillesyys
14、teem ,那那么一个个 paartiitioon 是是否可以以具有两两个 FFileesysstemm 呢?!理论论上应该该是不行行的!因因为每个个档案系系统都有有其独特特的支持持方式,例例如 LLinuux 的的 exxt3 就无法法被 WWinddowss 系统统所读取取!而你你将一个个 paartiitioon 格格式化的的时候,总总不能格格式化为为 exxt3 也同时时格式化化为 ffat332 吧吧?!那那是不可可能的啊啊!不论是哪哪一种 fillesyysteem ,数数据总是是需要储储存的吧吧!既然然硬盘是是用来储储存数据据的,想想当然尔尔,数据据就必须须写入硬硬盘啦!刚刚我我
15、们提到到硬盘的的最小储储存单位位是 ssecttor ,不过过数据所所储存的的最小单单位并不不是 ssecttor 喔,因因为用 secctorr 来储储存太没没有效率率了。怎怎么说呢呢?因为为一个 secctorr 只有有 5112 BBytees ,而而磁头是是一个一一个 ssecttor 的读取取,也就就是说,如如果我的的档案有有 100 MBBytees ,那那么为了了读这个个档案,我的磁头必须要进行读取 (I/O) 20480 次!为了克服服这个效效率上的的困扰,所所以就有有逻辑区区块( Bloock )的产产生了!逻辑区区块是在在 paartiitioon 进进行 ffileesy
16、sstemm 的格格式化时时,所指指定的最小储储存单位位,这这个最小小储存单单位当然然是架构构在 ssecttor 的大小小上面( 因为为 seectoor 为为硬盘的的最小物物理储存存单位啊啊! ),所以以啦, Bloock 的大小小为 ssecttor 的 2 的次方方倍数。此时,磁磁头一次次可以读读取一个个 bllockk ,如如果假设设我们在在格式化化的时候候,指定定 Bllockk 为 4 KByytess ( 亦即由由连续的的八个 secctorr 所构构成一个个 bllockk ),那那么同样样一个 10 MByytess 的档档案,磁磁头要读读取的次次数则大大幅降为为 2556
17、0 次,这这个时候候可就大大大的增增加档案案的读取取效能啦啦!不过,BBlocck 单单位的规规划并不不是越大大越好喔喔!怎么么说呢?因为一一个 BBlocck 最最多仅能能容纳一一个档案案 (这里里指 LLinuux 的的 exxt2 档案系系统)!这有有什么问问题呢?举例来来说好了了,假如如您的 Bloock 规划为为 4 KByytess ,而而您有一一个档案案大小为为 0.1 KKByttes ,这个个小档案案将占用用掉一个个 Bllockk 的空空间,也也就是说说,该 Bloock 虽然可可以容纳纳 4 Kbyytess 的容容量,然然而由于于档案只只占用了了 0.1 KKbytte
18、s ,所以以,实际际上剩下下的 33.9 KByytess 是不不能再被被使用了了,所以以,在考考虑 BBlocck 的的规划时时,需要要同时考考虑到: * 档档案读取取的效能能 * 档档案大小小可能造造成的硬硬盘空间间浪费因此,在在规划您您的磁盘盘时,需需要留意意到您主主机的用用途来进进行规划划较佳!例如 BBSS 主机机由于文文章较短短,也就就是说档档案较小小,那么么 Bllockk 小一一点的好好;而如如果您的的主机主主要用在在储存大大容量的的档案,那么考虑到效能,当然 Block 理论上,规划的大一点会比较妥当啦!Supeerbllockk:如同同前面说说的,当当我们在在进行磁磁盘分割
19、割( pparttitiion )时,每每个磁盘盘分割槽槽( pparttitiion )就是是一个档档案系统统( ffileesysstemm ),而每个个档案系系统开始始的位置置的那个个 bllockk 就称称为 ssupeerbllockk ,supperbblocck 的的作用是是储存像像是档案案系统的的大小、空的和和填满的的区块,以以及他各各自的总总数和其其它诸如如此类的的信息等等等,这这也就是是说,当当您要使使用这一一个磁盘盘分割槽槽( 或者者说是档档案系统统 )来进进行数据据存取的的时候,第第一个要要经过的的就是 supperbblocck 这这个区块块了,所所以啰, super
20、block 坏了,您的这个磁盘槽大概也就回天乏术了!Linuux 的的 EXXT2 档案系系统( inoode )看完了上上面的说说明,您您应该对对于硬盘盘有一定定程度的的认识了了!好了了,那么么接下来来就是要要谈一谈谈 Liinuxx 的档档案系统统( FFileesysstemm )啰啰!我们们这里以以 Liinuxx 最标标准的 extt2 这这个档案案系统来来作为说说明。还还记得我我们在 Linnux 档案属属性与目目录配置置那个章章节提到到的,在在 Liinuxx 系统统当中,每每个档案案不止有有档案的的内容数数据,还还包括档档案的种种种属性性,例如如:所属属群组、所属使使用者、能否
21、执执行、档档案建立立时间、档案特特殊属性性等等。由于 Linnux 操作系系统是一一个多人人多任务务的环境境,为了了要保护护每个使使用者所所拥有数数据的隐隐密性,所以具有多样化的档案属性是在所难免的!在标准的 ext2 档案系统当中,我们将每个档案的内容分为两个部分来储存,一个是档案的属性,另一个则是档案的内容。为了应付付这两个个不同的的咚咚,所所以 eext22 规划划出 iinodde 与与 Bllockk 来分分别储存存档案的的属性( 放在在 innodee 当中中 )与档档案的内内容( 放置在在 Bllockk arrea 当中 )。当我我们要将将一个 parrtittionn 格式式
22、化( forrmatt )为为 exxt2 时,就就必须要要指定 inoode 与 Bllockk 的大大小才行行,也就就是说,当当 paartiitioon 被被格式化化为 eext22 的档档案系统统时,他他一定会会有 iinodde ttablle 与与 bllockk arrea 这两个个区域。Blocck 已已经在前前面说过过了,他他是数据据储存的的最小单单位。那那么 iinodde 是是什么?!简单单的说, Block 是记录档案内容数据的区域,至于 inode 则是记录该档案的相关属性,以及档案内容放置在哪一个 Block 之内的信息。简单的说, inode 除了记录档案的属性外
23、,同时还必须要具有指向( pointer )的功能,亦即指向档案内容放置的区块之中,好让操作系统可以正确的去取得档案的内容啊!底下几个是 inode 记录的信息(当然不止这些): * 该该档案的的拥有者者与群组组(owwnerr/grroupp); * 该该档案的的存取模模式(rreadd/wrritee/exxcutte); * 该该档案的的类型(typpe); * 该该档案建建立或状状态改变变的时间间(cttimee)、最最近一次次的读取取时间(atiime)、最近近修改的的时间(mtiime); * 该该档案的的容量; * 定定义档案案特性的的旗标(flaag),如如 SeetUIID.
24、; * 该该档案真真正内容容的指向向 (ppoinnterr);我们在前前一章 Linnux 档案与与目录管管理当中中提到过过利用 ls 查询档档案所记记载的时时间,就就是 aatimme / cttimee / mtiime 三种时时间。这这三种时时间的意意义我们们已经在在前一章章的 ttoucch 指指令介绍绍时提过过,这三三种时间间就是记记录在 inoode 里面的的啦如如果回到到前一章章,您会会发现,我我们可以以利用 ls 的相关关功能来来查询到到时间喔喔!而预预设的显显示时间间是 mmtimme 。roootxllinuux # ls -laa -timme=aatimme PPAT
25、HH那个 PPATHH 是您您所想要要查询的的档案或或目录名名称。利利用上面面的 lls 相相关参数数,就可可以取得得您想要要知道的的档案相相关的三三种时间间啰至至于一个个 innodee 的大大小为 1288 byytess 这么么大 (可以使使用底下下要介绍绍的 ddumppe2ffs 来来查阅 inoode 的大小小喔!) !好好了,那那么我的的 Liinuxx 系统统到底是是如何读读取一个个档案的的内容呢呢?底下下我们分分别针对对目录与与档案来来说明: * 目目录:当我们在在 Liinuxx 下的的 exxt2 档案系系统建立立一个目目录时, ext2 会分配一个 inode 与至少一
26、块 Block 给该目录。其中,inode 记录该目录的相关属性,并指向分配到的那块 Block ;而 Block 则是记录在这个目录下的相关连的档案(或目录)的关连性! * 档档案:当我们在在 Liinuxx 下的的 exxt2 建立一一个一般般档案时时, eext22 会分分配至少少一个 inoode 与相对对于该档档案大小小的 BBlocck 数数量给该该档案。例如:假设我我的一个个 Bllockk 为 4 Kbyytess ,而而我要建建立一个个 1000 KKByttes 的档案案,那么么 liinuxx 将分分配一个个 innodee 与 255 个 Bllockk 来储储存该档档
27、案!要注意的的是, inoode 本身并并不纪录录文件名名,而是是记录档档案的相相关属性性,至于于文件名名则是记记录在目目录所属属的 bblocck 区区域!那那么档案案与目录录的关系系又是如如何呢?就如同同上面的的目录提提到的,档档案的相相关连结结会记录录在目录录的 bblocck 数数据区域域,所以以当我们们要读取取一个档档案的内内容时,我我们的 Linnux 会先由由根目录录 / 取得该该档案的的上层目目录所在在 innodee ,再由该该目录所所记录的的档案关关连性 (在该该目录所所属的 bloock 区域) 取得该该档案的的 innodee ,最后在在经由 inoode 内提供供的
28、bblocck 指指向,而而取得最最终的档档案内容容。我们们以 /etcc/crronttab 这个档档案的读读取为例例,他的的内容数数据是这这样取得得的:图三、读读取 /etcc/crronttab 的简易易流程示示意。一块 pparttitiion 在 exxt2 底下会会被格式式化为 inoode tabble 与 bllockk arrea 两个区区域,所所以在图图三里面面,我们们将 pparttitiion 以长条条的方式式来示意意,会比比较容易易理解的的啦!而而读取 /ettc/ccronntabb 的流流程为: 11. 操操作系统统根据根根目录( / )的相相关资料料可取得得 /
29、eetc 这个目目录所在在的 iinodde ,并并前往读读取 /etcc 这个个目录的的所有相相关属性性; 22. 根根据 /etcc 的 innodee 的资资料,可可以取得得 /eetc 这个目目录底下下所有档档案的关关连数据据是放置置在哪一一个 BBlocck 当当中,并并前往该该 bllockk 读取取档案的的关连性性内容; 33. 由由上个步步骤的 Bloock 当中,可可以知道道 crronttab 这个档档案的 inoode 所在地地,并前前往该 inoode ; 44. 由由上个步步骤的 inoode 当中,可可以取得得 crronttab 这个档档案的所所有属性性,并且且可
30、前往往由 iinodde 所所指向的的 Bllockk 区域域,顺利利的取得得 crronttab 的档案案内容。整个读取取的流程程大致上上就是这这样,如如果您想想要实作作一下以以了解整整个流程程的话,可可以这样样试做看看看:1. 察察看一下下根目录录所记载载的所有有档案关关连性数数据roootxllinuux # ls -liia / 22 drrwxrr-xrr-x 244 rooot rooot 40996 JJul 16 23:45 . 22 drrwxrr-xrr-x 244 rooot rooot 40996 JJul 16 23:45 .7194489 drwwxr-xr-x 8
31、3 rooot rroott 1222888 Juul 221 004:002 eetc 52332655 drrwxrr-xrr-x 244 rooot rooot 40996 JJun 25 20:16 varr# 注意意看一下下,在上上面的 . 与与 . 都是是连结到到 innodee 号码码为 22 的那那个 iinodde ,# 也就就是说, / 与其上层目录 . 都是指向同一个 inode number 啊!两者是相同的。# 而在在根目录录所记载载的档案案关连性性 (在 bllockk 内) 得到到 /eetc 的 innodee nuumbeer# 为 71994899 那个个
32、innodee nuumbeer 喔喔!2. 察察看一下下 /eetc/ 内的的档案关关连性的的数据roootxllinuux # ls -liiad /ettc/ccronntabb /eetc/.7194489 drwwxr-xr-x 83 rooot rroott 1222888 Juul 221 004:002 /etcc/.7234496 -rww-r-r- 1 rooot rroott 6633 Juul 4 112:003 /etcc/crronttab# 瞧!此时就就能够将将 /eetc/croontaab 找找到关连连性啰!所以您知知道,目目录的最最大功能能就是在在提供档档案
33、的关关连性,在在关连性性里面,当然最主要的就是档名与 inode 的对应数据啰!另外,关于 EXT2 档案系统,这里有几点小事情要提醒一下: * eext22 与 exxt3 档案在在建立时时 (fformmat) 就已已经设定定好固定定的 iinodde 数数与 bblocck 数数目了; * 格格式化 Linnux 的 exxt2 档案系系统,可可以使用用 mkke2ffs 这这个程序序来执行行! * eext22 允许许的 bblocck ssizee 为 10024, 20048 及 40096 byttes; * 一一个 pparttitiion (fiilessysttem) 所能
34、能容许的的最大档档案数,与与 innodee 的数数量有关关,因为为一个档档案至少少要占用用一个 inoode 啊! * 在在目录底底下的档档案数如如果太多多而导致致一个 Bloock 无法容容纳的下下所有的的关连性性数据时时,Liinuxx 会给给予该目目录多一一个 BBlocck 来来继续记记录关连连数据; * 通通常 iinodde 数数量的多多寡设定定为 (parrtittionn 的容容量) 除以 (一个 iinodde 预预计想要要控制的的容量)。举例来来说,若若我的 bloock 规划为为 4KKbyttes,假假设我的的一个 inoode 会控制制两个 bloock ,亦即即是
35、假设设我的一一个档案案大致的的容量在在 8KKbyttes 左右时时,假设设我的这这个 pparttitiion 容量为为 1GGByttes,则 innodee 数量量共有:( 11G * 10024MM/G * 110244K/MM ) / ( 8KK ) = 一一三10072 个。而而一个 inoode 占用 1128 byttes 的空间间,因此此格式化化时就会会有 ( 一三三10772个 * 1288byttes/个 ) = 11677772116 bbyess = 163384 Kbyytess 的 innodee taablee 。也也就是说说,这一一个 11GB 的 paart
36、iitioon 在在还没有有储存任任何数据据前,就就已经少少了 116MBBytees 的的容量啊啊! * 因因为一个个 innodee 只能能记录一一个档案案的属性性,所以以 innodee 数量量比 bblocck 多多是没有有意义的的!举上上面的例例子来说说,我的的 Bllockk 规划划为 44 Kbbytees ,所所以 11GB 大概就就有 22621144 个 4KKbyttes 的 bllockk ,如如果一个个 bllockk 对应应一个 inoode 的话,那那么当我我的 iinodde 数数量大于于 26621444 时时,多的的 innodee 将没没有任何何用处,徒徒
37、然浪费费硬盘的的空间而而已!另另外一层层想法,如如果我的的档案容容量都很很大,那那么一个个档案占占用一个个 innodee 以及及数个 bloock,当当然 iinodde 数数量就可可以规划划的少很很多啦! * 当当 bllockk 大小小越小,而而 innodee 数量量越多,则则可利用用的空间间越多,但但是大档档案写入入的效率率较差;这种情情况适合合档案数数量多,但但是档案案容量小小的系统统,例如如 BBBS 或或者是新新闻群组组( NNewss )这这方面服服务的系系统; * 当当 Bllockk 大小小越大,而而 innodee 数量量越少时时,大档档案写入入的效率率较佳,但但是可能
38、能浪费的的硬盘空空间较多多;这种种状况则则比较适适合档案案容量较较大的系系统!简单的归归纳一下下, eext22 有几几个特色色: * BBloccks 与 innodees 在在一开始始格式化化时 (forrmatt) 就就已经固固定了; * 一一个 pparttitiion 能够容容纳的档档案数与与 innodee 有关关; * 一一般来说说,每 4Kbbytees 的的硬盘空空间分配配一个 inoode ; * 一一个 iinodde 的的大小为为 1228 bbytees; * BBlocck 为为固定大大小,目目前支持持 10024/20448/440966 byytess 等; *
39、 BBlocck 越越大,则则损耗的的硬盘空空间也越越多。 * 关关于单一一档案:若 bllockk siize=10224,最最大容量量为 116GBB,若 bblocck ssizee=40096,容容量最大大为 22TB; * 关关于整个个 paartiitioon :若 bllockk siize=10224,则则容量达达 2TTB,若若 bllockk siize=40996,则则容量达达 322TB。 * 文文件名最最长达 2555 字符符,完整整文件名名长达 40996 字字符。另外,关关于 pparttitiion 的使用用效率上上,当您您的一个个 paartiitioon 规
40、规划的很很大时,例例如 1100GGB 这这么大,由于硬盘上面的数据总是来来去去的,所以,整个 partition 上面的档案通常无法连续写在一起,而是填入式的将数据填入没有被使用的 block 当中。如果档案写入的 block 真的分的很散,此时就会有所谓的档案离散的问题发生了。虽然我们的 ext2 在 inode 处已经将该档案所记录的 block number 都记上了,所以资料可以一次性读取,但是如果档案真的太过离散,确实还是会发生读取效率低落的问题。果真如此,那么可以将整个 partition 内的数据全部复制出来,将该 partition 重新格式化,再将数据给他复制回去即可解决。
41、此外,如如果 pparttitiion 真的太太大了,那那么当一一个档案案分别记记录在这这个 pparttitiion 的最前前面与最最后面的的 bllockk,此时会会造成硬硬盘的机机械手臂臂移动幅幅度过大大,也会会造成数数据读取取效能的的低落。因此, partition 的规划并不是越大越好,而是真的要针对您的主机用途来进行规划才行!_EXT22/EXXT3 档案的的存取与与日志式式档案系系统的功功能综合上面面谈的种种种,我我们可以以知道,当当一个 extt2 的的 fiilessysttem 被建立立时,他他拥有 supperbblocck / grroupp deescrripttio
42、nn / bloock bittmapp / inoode bittmapp / inoode tabble / ddataa bllockks 等等等区域域。要注注意的是是,每个个 exxt2 fillesyysteem 在在被建立立的时候候,会依依据 pparttitiion 的大小小,给予予数个 bloock grooup ,而每每个 bblocck ggrouup 就就有上述述的这些些部分。整个 fillesyysteem 的的架构可可以下图图展现:图四、整整个 ffileesysstemm 的展展现示意意图我们将整整个 ffileesysstemm 简单单化,假假设仅有有一个 blo
43、ock grooup ,那么么上面的的各个部部分分别别代表什什么呢? * SSupeerBllockk:如前前所述, Superblock 是记录整个 filesystem 相关信息的地方,没有 Superblock ,就没有这个 filesystem 了。他记录的信息主要有: o bblocck 与与 innodee 的总总量; o 未未使用与与已使用用的 iinodde / bllockk 数量量; o 一一个 bblocck 与与一个 inoode 的大小小; o ffileesysstemm 的挂挂载时间间、最近近一次写写入数据据的时间间、最近近一次检检验磁盘盘 (ffsckk) 的的
44、时间等等档案系系统的相相关信息息; o 一一个 vvaliid bbit 数值,若若此档案案系统已已被挂载载,则 vallid bitt 为 0 ,若未未被挂载载,则 vallid bitt 为 1 。 * GGrouup DDesccripptioon:纪纪录此 bloock 由由何何处开始始记录; * BBlocck bbitmmap:此处记记录那个个 bllockk 有没没有被使使用; * IInodde bbitmmap:此处记记录那个个 innodee 有没没有被使使用; * IInodde ttablle:为为每个 inoode 数据存存放区; * DDataa Bllockks:
45、为为每个 bloock 数据存存放区。如果想要要知道某某个 eext22/exxt3 的档案案系统内内,关于于上述提提到的相相关信息息时,可可以使用用 duumpee2fss 这个个指令来来读取,举举例来说说,鸟哥哥将我自自己的主主机 /devv/hdda1 读出 eext33 的讯讯息:roootxllinuux # dummpe22fs /deev/hhda11Fileesysstemm voolumme nnamee: /Fileesysstemm sttatee: clleannErroors behhaviior: CoontiinueeFileesysstemm OSS tyype: LiinuxxInodde ccounnt: 一五五370088Blocck ccounnt: 一五五362207Freee bllockks: 73356009Freee innodees: 一三三930089Firsst bblocck: 0Blocck ssizee: 40096Fileesysstemm crreatted: Saat JJun 25 16:21:一三 20005Lastt moountt tiime: