《3Linux磁盘与档案系统管理3134.docx》由会员分享,可在线阅读,更多相关《3Linux磁盘与档案系统管理3134.docx(127页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linux 磁盘与档案系统管理1认识 EXT2 档案系统1硬盘物理组成1磁盘分割 ( PParttitiion )2档案系统33Linuxx 的 EXXT2 档案系系统( inoode )4EXT2/EXTT3 档档案的存存取与日日志式档档案系统统的功能能8数据的不一一致 (Incconssisttentt) 状状态111Linuxx 档案案系统的的运作112挂载点的意意义 (mouunt poiint)13其它 Liinuxx 支持持的档案案系统113档案系统的的简单操操作144磁盘与目录录的容量量14df14du17连结档的介介绍:lln188# Harrd LLinkk (硬硬式连结结或
2、实际际连结)19# Symmbollic Linnk (符号连连结,亦亦即是快快捷方式式)20关于目录的的 liink 数量222磁盘的分割割、格式式化、检检验与挂挂载233磁盘分割: fddiskk24# 删除磁磁盘分割割槽277新增磁盘分分割槽228# 操作环环境的说说明300# 注意事事项:331磁盘格式化化31mkboootdiisk (制作作软盘开开机片)33fdforrmatt (进进行软盘盘低阶格格式化)33磁盘检验: fssck, baadbllockks333fsck334badbllockks355sync335磁盘挂载与与卸载336umounnt (将装置置档案卸卸载)3
3、9磁盘参数修修订399mknodd39e2labbel440tune22fs441# hdpparmm41设定开机挂挂载433各式磁盘挂挂载与中中文编码码挂载还还有 UUSB 随身碟碟44挂载软盘444挂载 Wiindoows 磁盘444挂载 USSB 随随身碟445开机挂载 /ettc/ffstaab 及及 /eetc/mtaab455特殊装置 looop 挂挂载499建立大型档档案499格式化499挂载50虚拟内存之之建置550建立虚拟内内存装置置51建立虚拟内内存档案案51虚拟内存的的限制553本章习题练练习:553Linuxx 磁盘盘与档案案系统管管理我们在前面面的档案案权限介介绍的章
4、章节当中中,提到到很多的的权限与与属性的的观念,那那么接下下来要了了解的是是,这些些属性是是记录在在硬盘的的那个地地方?这这里就要要特别了了解到 Linnux 档案系系统( fillesyysteem )是如何何记录档档案,与与档案是是如何被被读取的的啰!而而要了解解整个档档案系统统的观念念,就不不能不知知道硬盘盘的组成成组件!所以,在在这个章章节当中中,我们们由最基基础的硬硬盘组成成组件介介绍起,并并介绍 inoode 与连结结文件等等基本知知识,以以及如何何利用开开机即可可挂载的的方式来来使我们们的各个个 paartiitioon 可可以在开开机时就就已经进进行好挂挂载的动动作喔!认识 E
5、XXT2 档案系系统既然这个章章节主要要在探讨讨 Liinuxx 的磁磁盘档案案系统,所所以我们们当然就就需要先先来了解解一下硬硬盘是个个什么东东西啦!首先,我我们就来来看一看看硬盘的的物理组组成,了了解了物物理组成成之后,再再来说明明一下怎怎么样进进行硬盘盘的分割割 (pparttitiion) 吧!硬盘物理组组成就硬盘的物物理组件件来说,硬硬盘其实实是由许许许多多多的圆形形硬盘盘盘所组成成的,依依据硬盘盘盘能够够容纳的的数据量量,而有有所谓的的单碟 (一块块硬盘里里面只有有一个硬硬盘盘) 或者者是多碟碟 (一块块硬盘里里面含有有多个硬硬盘盘)的硬盘盘。在这这里我们们以单一一个硬盘盘盘来说说
6、明,硬硬盘盘可可由底下下的图形形来示意意:图二、磁柱示意图图一、硬盘盘示意图首先,硬盘盘里面一一定会有有所谓的的磁头 ( HHeadd ) 在进进行该硬硬盘盘上上面的读读写动作作,而磁磁头是固固定在机机械手臂臂上面的的,机械械手臂上上有多个个磁头可可以进行行读取的的动作。而当磁头固定不动 (假设机械手臂不动) ,硬盘盘转一圈所画出来的圆就是所谓的磁道( Track );而如同我们前面刚刚提到的,一块硬盘里面可能具有多个硬盘盘,所有硬盘盘上面相同半径的那一个磁道就组成了所谓的磁柱( Cylinder )。例如上图二二所示意意,在两两个硬盘盘盘上面面的同一一个磁道道就是一一个磁柱柱啦!这这个磁柱柱
7、也是磁磁盘分割割( pparttitiion )时的的最小单单位了;另外,由由圆心向向外划直直线,则则可将磁磁道再细细分为一一个一个个的扇区区( SSecttor ),这这个扇区区就是硬硬盘盘上上面的最最小储存存物理量量了!通通常一个个 seectoor 的的大小约约为 5512 Byttes 。以上上就是整整个硬盘盘的基本本组件。在计算整个个硬盘的的储存量量时,简简单的计计算公式式就是:Cyllindder x HHeadd x Secctorr x 5122 Byytess。另外外,硬盘盘在读取取时,主主要是硬盘盘盘会转动动,利用用机械手手臂将磁磁头移动动到正确确的数据据位置(单方向向的前
8、后后移动),然后后将数据据依序读读出。在这个个操作的的过程当当中,由由于机械械手臂上上的磁头头与硬盘盘盘的接接触是很很细微的的空间,如果有抖动或者是脏污在磁头与硬盘盘之间时,就会造成数据的损毁或者是实体硬盘整个损毁因此,正确确的使用用计算机机的方式式,应该该是在计计算机通通电之后后,就绝绝对不要要移动主主机,并并免抖动动到硬盘盘,而导导致整个个硬盘数数据发生生问题啊啊!另外外,也不不要随便便将插头头拔掉就就以为是是顺利关关机!因因为机械械手臂必必须要归归回原位位,所以以使用操操作系统统的正常常关机方方式,才才能够有有比较好好的硬盘盘保养啊啊!因为为他会让让硬盘的的机械手手臂归回回原位啊啊!磁盘
9、分割 ( PParttitiion )在了解了硬硬盘的物物理组件件之后,再再接着下下来介绍绍的就是是硬盘的的分割( Paartiitioon )啰!为什什么要进进行硬盘盘分割啊啊?!因因为我们们必须要要告诉操操作系统统:我我这块硬硬盘可以以存取的的区域是是由 AA 磁柱柱到 BB 磁柱柱,如如此一来来,操作作系统才才能够控控制硬盘盘磁头去去 A-B 范范围内的的磁柱存存取数据据;如果果没有告告诉操作作系统这这个信息息,那么么操作系系统就无无法利用用我们的的硬盘来来进行数数据的存存取了,因为操作系统将无法知道他要去哪里读取数据啊!这就是磁盘分割( Partition )的重点了:也就是记录每一个
10、分割区( Partition )的起始与结束磁柱!好了,那么么这个分分割区的的起始与与结束磁磁柱的数数据放在在哪里呢呢?!那那就是我我们在 Linnux 安装与与多重开开机技巧巧那个章章节提到到的主要要开机扇扇区( Massterr Booot Reccordder, MBBR )啰!事事实上, MBR 就是在一块硬盘的第零轨上面,这也是计算机开机之后要去利用该硬盘时,必须要读取的第一个区域!在这个区域内记录的就是硬盘里面的所有分割信息,以及开机的时候可以进行开机管理程序的写入的处所啊!所以,当一个硬盘的 MBR 坏掉时,由于分割的数据不见了,呵呵,那么这个硬盘也就几乎可以说是寿终正寝了,因为
11、操作系统不知道该去哪个磁柱上读取数据啊那么 MBBR 有有什么限限制呢?他最大大的限制制来自于于他的大大小不够够大到储储存所有有分割与与开机管管理程序序的信息息,因此此,MBBR 仅仅提供最最多四个个 paartiitioon 的的记忆,这这就是所所谓的 Priimarry (P)与与 Exxtenndedd (EE) 的的 paartiitioon 最最多只能能有四个个的原因因了。所所以说,如如果你预预计分割割超过 4 个个 paartiitioon 的的话,那那么势必必需要使使用 33P + 1EE ,并并且将所所有的剩剩余空间间都拨给给 Exxtenndedd 才行行( 记得得呦! Ex
12、ttendded 最多只只能有一一个 ),否则则只要 3P + EE 之后后还有剩剩下的空空间,那那么那些些容量将将成为废废物而浪浪费了,所所以结论论就是如果您您要分割割硬盘时时,并且且已经预预计规划划使用掉掉 MBBR 所所提供的的 4 个 paartiitioon ( 3PP + E 或或 4PP )那那么磁盘盘的全部部容量需需要使用用光,否否则剩下下的容量量也不能能再被使使用。不过,如果您仅是分割出 1P + 1E 的话,那么剩下的空间就还能再分割两个 primary partition !档案系统在告知系统统我的 parrtittionn 所在在的起始始与结束束磁柱之之后,再再来则是是
13、需要将将 paartiitioon 格格式化为为我的的操作系系统认识识的档案案系统( Fiilessysttem )啰啰!因为为每个操操作系统统认识的的 fiilessysttem 并不相相同!例例如 WWinddowss 操作作系统在在预设状状态下就就无法认认识 LLinuux 的的档案系系统 ( 这里里指 LLinuux 的的标准档档案系统统 exxt2 )。所所以当然然要针对对我们的的操作系系统来格格式化 parrtittionn 啰!我们可以说说,每一一个 pparttitiion 就是一一个 FFileesysstemm ,那那么一个个 paartiitioon 是是否可以以具有两两
14、个 FFileesysstemm 呢?!理论论上应该该是不行行的!因因为每个个档案系系统都有有其独特特的支持持方式,例例如 LLinuux 的的 exxt3 就无法法被 WWinddowss 系统统所读取取!而你你将一个个 paartiitioon 格格式化的的时候,总总不能格格式化为为 exxt3 也同时时格式化化为 ffat332 吧吧?!那那是不可可能的啊啊!不论是哪一一种 ffileesysstemm ,数数据总是是需要储储存的吧吧!既然然硬盘是是用来储储存数据据的,想想当然尔尔,数据据就必须须写入硬硬盘啦!刚刚我我们提到到硬盘的的最小储储存单位位是 ssecttor ,不过过数据所所
15、储存的的最小单单位并不不是 ssecttor 喔,因因为用 secctorr 来储储存太没没有效率率了。怎怎么说呢呢?因为为一个 secctorr 只有有 5112 BBytees ,而而磁头是是一个一一个 ssecttor 的读取取,也就就是说,如如果我的的档案有有 100 MBBytees ,那那么为了了读这个个档案,我的磁头必须要进行读取 (I/O) 20480 次!为了克服这这个效率率上的困困扰,所所以就有有逻辑区区块( Bloock )的产产生了!逻辑区区块是在在 paartiitioon 进进行 ffileesysstemm 的格格式化时时,所指指定的最小储储存单位位,这这个最小小
16、储存单单位当然然是架构构在 ssecttor 的大小小上面( 因为为 seectoor 为为硬盘的的最小物物理储存存单位啊啊! ),所以以啦, Bloock 的大小小为 ssecttor 的 2 的次方方倍数。此此时,磁磁头一次次可以读读取一个个 bllockk ,如如果假设设我们在在格式化化的时候候,指定定 Bllockk 为 4 KByytess ( 亦即由由连续的的八个 secctorr 所构构成一个个 bllockk ),那那么同样样一个 10 MByytess 的档档案,磁磁头要读读取的次次数则大大幅降为为 25560 次,这这个时候候可就大大大的增增加档案案的读取取效能啦啦!不过,
17、Bllockk 单位位的规划划并不是是越大越越好喔!怎么说说呢?因因为一个个 Bllockk 最多多仅能容容纳一个个档案 (这里里指 LLinuux 的的 exxt2 档案系系统)!这有有什么问问题呢?举例来来说好了了,假如如您的 Bloock 规划为为 4 KByytess ,而而您有一一个档案案大小为为 0.1 KKByttes ,这个个小档案案将占用用掉一个个 Bllockk 的空空间,也也就是说说,该 Bloock 虽然可可以容纳纳 4 Kbyytess 的容容量,然然而由于于档案只只占用了了 0.1 KKbyttes ,所以以,实际际上剩下下的 33.9 KByytess 是不不能再
18、被被使用了了,所以以,在考考虑 BBlocck 的的规划时时,需要要同时考考虑到: * 档案案读取的的效能 * 档案案大小可可能造成成的硬盘盘空间浪浪费因此,在规规划您的的磁盘时时,需要要留意到到您主机机的用途途来进行行规划较较佳!例例如 BBBS 主机由由于文章章较短,也就是说档案较小,那么 Block 小一点的好;而如果您的主机主要用在储存大容量的档案,那么考虑到效能,当然 Block 理论上,规划的大一点会比较妥当啦!Superrbloock:如同前前面说的的,当我我们在进进行磁盘盘分割( paartiitioon )时,每每个磁盘盘分割槽槽( pparttitiion )就是是一个档档
19、案系统统( ffileesysstemm ),而每个个档案系系统开始始的位置置的那个个 bllockk 就称称为 ssupeerbllockk ,supperbblocck 的的作用是是储存像像是档案案系统的的大小、空空的和填填满的区区块,以以及他各各自的总总数和其其它诸如如此类的的信息等等等,这这也就是是说,当当您要使使用这一一个磁盘盘分割槽槽( 或者者说是档档案系统统 )来进进行数据据存取的的时候,第第一个要要经过的的就是 supperbblocck 这这个区块块了,所所以啰, superblock 坏了,您的这个磁盘槽大概也就回天乏术了!Linuxx 的 EXXT2 档案系系统( ino
20、ode )看完了上面面的说明明,您应应该对于于硬盘有有一定程程度的认认识了!好了,那那么接下下来就是是要谈一一谈 LLinuux 的的档案系系统( Fillesyysteem )啰!我我们这里里以 LLinuux 最最标准的的 exxt2 这个档档案系统统来作为为说明。还还记得我我们在 Linnux 档案属属性与目目录配置置那个章章节提到到的,在在 Liinuxx 系统统当中,每每个档案案不止有有档案的的内容数数据,还还包括档档案的种种种属性性,例如如:所属属群组、所属使用者、能否执行、档案建立时间、档案特殊属性等等。由于 Linux 操作系统是一个多人多任务的环境,为了要保护每个使用者所拥有
21、数据的隐密性,所以具有多样化的档案属性是在所难免的!在标准的 ext2 档案系统当中,我们将每个档案的内容分为两个部分来储存,一个是档案的属性,另一个则是档案的内容。为了应付这这两个不不同的咚咚咚,所所以 eext22 规划划出 iinodde 与与 Bllockk 来分分别储存存档案的的属性( 放在在 innodee 当中中 )与档档案的内内容( 放置在在 Bllockk arrea 当中 )。当我我们要将将一个 parrtittionn 格式式化( forrmatt )为为 exxt2 时,就就必须要要指定 inoode 与 Bllockk 的大大小才行行,也就就是说,当当 paartii
22、tioon 被被格式化化为 eext22 的档档案系统统时,他他一定会会有 iinodde ttablle 与与 bllockk arrea 这两个个区域。Blockk 已经经在前面面说过了了,他是是数据储储存的最最小单位位。那么么 innodee 是什什么?!简单的的说, Bloock 是记录录档案案内容数数据的的区域,至至于 iinodde 则则是记录录该档档案的相相关属性性,以及及档案内内容放置置在哪一一个 BBlocck 之之内的的信息。简单的说, inode 除了记录档案的属性外,同时还必须要具有指向( pointer )的功能,亦即指向档案内容放置的区块之中,好让操作系统可以正确的
23、去取得档案的内容啊!底下几个是 inode 记录的信息(当然不止这些): * 该档档案的拥拥有者与与群组(ownner/grooup); * 该档档案的存存取模式式(reead/wriite/exccutee); * 该档档案的类类型(ttypee); * 该档档案建立立或状态态改变的的时间(ctiime)、最近近一次的的读取时时间(aatimme)、最最近修改改的时间间(mttimee); * 该档档案的容容量; * 定义义档案特特性的旗旗标(fflagg),如如 SeetUIID.; * 该档档案真正正内容的的指向 (poointter);我们在前一一章 LLinuux 档档案与目目录管理
24、理当中提提到过利利用 lls 查查询档案案所记载载的时间间,就是是 attimee / ctiime / mmtimme 三三种时间间。这三三种时间间的意义义我们已已经在前前一章的的 toouchh 指令令介绍时时提过,这这三种时时间就是是记录在在 innodee 里面面的啦如果回回到前一一章,您您会发现现,我们们可以利利用 lls 的的相关功功能来查查询到时时间喔!而预设设的显示示时间是是 mttimee 。roottliinuxx # lls -la -ttimee=attimee PAATH那个 PAATH 是您所所想要查查询的档档案或目目录名称称。利用用上面的的 lss 相关关参数,就
25、就可以取取得您想想要知道道的档案案相关的的三种时时间啰至于一一个 iinodde 的的大小为为 1228 bbytees 这这么大 (可以以使用底底下要介介绍的 dummpe22fs 来查阅阅 innodee 的大大小喔!) !好好了,那那么我的的 Liinuxx 系统统到底是是如何读读取一个个档案的的内容呢呢?底下下我们分分别针对对目录与与档案来来说明: * 目录录:当我们在 Linnux 下的 eext22 档案案系统建建立一个个目录时时, eext22 会分分配一个个 innodee 与至至少一块块 Bllockk 给该该目录。其其中,iinodde 记记录该目目录的相相关属性性,并指指
26、向分配配到的那那块 BBlocck ;而 BBlocck 则则是记录录在这个个目录下下的相关关连的档档案(或目录录)的关连连性! * 档案案:当我们在 Linnux 下的 eext22 建立立一个一一般档案案时, extt2 会会分配至至少一个个 innodee 与相相对于该该档案大大小的 Bloock 数量给给该档案案。例如如:假设设我的一一个 BBlocck 为为 4 Kbyytess ,而而我要建建立一个个 1000 KKByttes 的档案案,那么么 liinuxx 将分分配一个个 innodee 与 255 个 Bllockk 来储储存该档档案!要注意的是是, iinodde 本本身
27、并不不纪录文文件名,而而是记录录档案的的相关属属性,至至于文件件名则是是记录在在目录所所属的 bloock 区域!那么档档案与目目录的关关系又是是如何呢呢?就如如同上面面的目录录提到的的,档案案的相关关连结会会记录在在目录的的 bllockk 数据据区域,所以当我们要读取一个档案的内容时,我们的 Linux 会先由根目录 / 取得该档案的上层目录所在 inode ,再由该目录所记录的档案关连性 (在该目录所属的 block 区域) 取得该档案的 inode ,最后在经由 inode 内提供的 block 指向,而取得最终的档案内容。我们以 /etc/crontab 这个档案的读取为例,他的内容
28、数据是这样取得的:图三、读取取 /eetc/croontaab 的的简易流流程示意意。一块 paartiitioon 在在 exxt2 底下会会被格式式化为 inoode tabble 与 bllockk arrea 两个区区域,所所以在图图三里面面,我们们将 pparttitiion 以长条条的方式式来示意意,会比比较容易易理解的的啦!而而读取 /ettc/ccronntabb 的流流程为: 1. 操作作系统根根据根目目录( / )的相关关资料可可取得 /ettc 这这个目录录所在的的 innodee ,并并前往读读取 /etcc 这个个目录的的所有相相关属性性; 2. 根据据 /ettc
29、的的 innodee 的资资料,可可以取得得 /eetc 这个目目录底下下所有档档案的关关连数据据是放置置在哪一一个 BBlocck 当当中,并并前往该该 bllockk 读取取档案的的关连性性内容; 3. 由上上个步骤骤的 BBlocck 当当中,可可以知道道 crronttab 这个档档案的 inoode 所在地地,并前前往该 inoode ; 4. 由上上个步骤骤的 iinodde 当当中,可可以取得得 crronttab 这个档档案的所所有属性性,并且且可前往往由 iinodde 所所指向的的 Bllockk 区域域,顺利利的取得得 crronttab 的档案案内容。整个读取的的流程大
30、大致上就就是这样样,如果果您想要要实作一一下以了了解整个个流程的的话,可可以这样样试做看看看:1. 察看看一下根根目录所所记载的的所有档档案关连连性数据据roottliinuxx # lls -liaa / 2 drwwxr-xr-x 24 rooot rroott 440966 Juul 116 223:445 . 2 drwwxr-xr-x 24 rooot rroott 440966 Juul 116 223:445 .7194889 ddrwxxr-xxr-xx 883 rroott rooot 122288 Jull 211 044:022 ettc 5232265 drwwxr-x
31、r-x 24 rooot rroott 440966 Juun 225 220:116 vvar# 注意看看一下,在在上面的的 . 与 . 都是是连结到到 innodee 号码码为 22 的那那个 iinodde ,# 也就是是说, / 与与其上层层目录 . 都是指指向同一一个 iinodde nnumbber 啊!两两者是相相同的。# 而在根根目录所所记载的的档案关关连性 (在 bllockk 内) 得到到 /eetc 的 innodee nuumbeer# 为 77194489 那个 iinodde nnumbber 喔!2. 察看看一下 /ettc/ 内的档档案关连连性的数数据roott
32、liinuxx # lls -liaad /etcc/crronttab /ettc/.7194889 ddrwxxr-xxr-xx 883 rroott rooot 122288 Jull 211 044:022 /eetc/.7234996 -rw-r-r- 1 rroott rooot 6663 Jull 44 122:033 /eetc/croontaab# 瞧!此此时就能能够将 /ettc/ccronntabb 找到到关连性性啰!所以您知道道,目录录的最大大功能就就是在提提供档案案的关连连性,在在关连性性里面,当然最主要的就是档名与 inode 的对应数据啰!另外,关于 EXT2 档
33、案系统,这里有几点小事情要提醒一下: * exxt2 与 exxt3 档案在在建立时时 (fformmat) 就已已经设定定好固定定的 iinodde 数数与 bblocck 数数目了; * 格式式化 LLinuux 的的 exxt2 档案系系统,可可以使用用 mkke2ffs 这这个程序序来执行行! * exxt2 允许的的 bllockk siize 为 10024, 20048 及 40096 byttes; * 一个个 paartiitioon (fillesyysteem) 所能容容许的最最大档案案数,与与 innodee 的数数量有关关,因为为一个档档案至少少要占用用一个 inoo
34、de 啊! * 在目目录底下下的档案案数如果果太多而而导致一一个 BBlocck 无无法容纳纳的下所所有的关关连性数数据时,Linux 会给予该目录多一个 Block 来继续记录关连数据; * 通常常 innodee 数量量的多寡寡设定为为 (pparttitiion 的容量量) 除以以 (一个个 innodee 预计计想要控控制的容容量)。举例来来说,若若我的 bloock 规划为为 4KKbyttes,假假设我的的一个 inoode 会控制制两个 bloock ,亦即即是假设设我的一一个档案案大致的的容量在在 8KKbyttes 左右时时,假设设我的这这个 pparttitiion 容量为
35、为 1GGByttes,则 innodee 数量量共有:( 11G * 10024MM/G * 110244K/MM ) / ( 8KK ) = 11310072 个。而而一个 inoode 占用 1128 byttes 的空间间,因此此格式化化时就会会有 ( 13310772个 * 1288byttes/个 ) = 11677772116 bbyess = 163384 Kbyytess 的 innodee taablee 。也也就是说说,这一一个 11GB 的 paartiitioon 在在还没有有储存任任何数据据前,就就已经少少了 116MBBytees 的的容量啊啊! * 因为为一个
36、inoode 只能记记录一个个档案的的属性,所所以 iinodde 数数量比 bloock 多是没没有意义义的!举举上面的的例子来来说,我我的 BBlocck 规规划为 4 KKbyttes ,所以以 1GGB 大大概就有有 26621444 个个 4KKbyttes 的 bllockk ,如如果一个个 bllockk 对应应一个 inoode 的话,那那么当我我的 iinodde 数数量大于于 26621444 时时,多的的 innodee 将没没有任何何用处,徒徒然浪费费硬盘的的空间而而已!另另外一层层想法,如如果我的的档案容容量都很很大,那那么一个个档案占占用一个个 innodee 以及
37、及数个 bloock,当当然 iinodde 数数量就可可以规划划的少很很多啦! * 当 bllockk 大小小越小,而而 innodee 数量量越多,则则可利用用的空间间越多,但但是大档档案写入入的效率率较差;这种情情况适合合档案数数量多,但但是档案案容量小小的系统统,例如如 BBBS 或或者是新新闻群组组( NNewss )这这方面服服务的系系统; * 当 Bllockk 大小小越大,而而 innodee 数量量越少时时,大档档案写入入的效率率较佳,但但是可能能浪费的的硬盘空空间较多多;这种种状况则则比较适适合档案案容量较较大的系系统!简单的归纳纳一下, ext2 有几个特色: * Bll
38、ockks 与与 innodees 在在一开始始格式化化时 (forrmatt) 就就已经固固定了; * 一个个 paartiitioon 能能够容纳纳的档案案数与 inoode 有关; * 一般般来说,每每 4KKbyttes 的硬盘盘空间分分配一个个 innodee ; * 一个个 innodee 的大大小为 1288 byytess; * Bllockk 为固固定大小小,目前前支持 10224/220488/40096 byttes 等; * Bllockk 越大大,则损损耗的硬硬盘空间间也越多多。 * 关于于单一档档案:若 bloock sizze=110244,最大大容量为为 166
39、GB,若若 bllockk siize=40996,容容量最大大为 22TB; * 关于于整个 parrtittionn :若 bloock sizze=110244,则容容量达 2TBB,若 bblocck ssizee=40096,则则容量达达 322TB。 * 文件件名最长长达 2255 字符,完完整文件件名长达达 40096 字符。另外,关于于 paartiitioon 的的使用效效率上,当当您的一一个 pparttitiion 规划的的很大时时,例如如 1000GBB 这么么大,由由于硬盘盘上面的的数据总总是来来来去去的的,所以以,整个个 paartiitioon 上上面的档档案通常
40、常无法连连续写在在一起,而是填入式的将数据填入没有被使用的 block 当中。如果档案写入的 block 真的分的很散,此时就会有所谓的档案离散的问题发生了。虽然我们的 ext2 在 inode 处已经将该档案所记录的 block number 都记上了,所以资料可以一次性读取,但是如果档案真的太过离散,确实还是会发生读取效率低落的问题。果真如此,那么可以将整个 partition 内的数据全部复制出来,将该 partition 重新格式化,再将数据给他复制回去即可解决。此外,如果果 paartiitioon 真真的太大大了,那那么当一一个档案案分别记记录在这这个 pparttitiion 的
41、最前前面与最最后面的的 bllockk,此时会会造成硬硬盘的机机械手臂臂移动幅幅度过大大,也会会造成数数据读取取效能的的低落。因因此, parrtittionn 的规规划并不不是越大大越好,而是真的要针对您的主机用途来进行规划才行!_EXT2/EXTT3 档档案的存存取与日日志式档档案系统统的功能能综合上面谈谈的种种种,我们们可以知知道,当当一个 extt2 的的 fiilessysttem 被建立立时,他他拥有 supperbblocck / grroupp deescrripttionn / bloock bittmapp / inoode bittmapp / inoode tabble
42、 / ddataa bllockks 等等等区域域。要注注意的是是,每个个 exxt2 fillesyysteem 在在被建立立的时候候,会依依据 pparttitiion 的大小小,给予予数个 bloock grooup ,而每每个 bblocck ggrouup 就就有上述述的这些些部分。整整个 ffileesysstemm 的架架构可以以下图展展现:图四、整个个 fiilessysttem 的展现现示意图图我们将整个个 fiilessysttem 简单化化,假设设仅有一一个 bblocck ggrouup ,那那么上面面的各个个部分分分别代表表什么呢呢? * SuuperrBloock:
43、如前所所述, Supperbblocck 是是记录整整个 ffileesysstemm 相关关信息的的地方,没有 Superblock ,就没有这个 filesystem 了。他记录的信息主要有: oo bllockk 与 innodee 的总总量; oo 未使使用与已已使用的的 innodee / bloock 数量; oo 一个个 bllockk 与一一个 iinodde 的的大小; oo fiilessysttem 的挂载载时间、最最近一次次写入数数据的时时间、最最近一次次检验磁磁盘 (fscck) 的时间间等档案案系统的的相关信信息; oo 一个个 vaalidd biit 数数值,若
44、若此档案案系统已已被挂载载,则 vallid bitt 为 0 ,若未未被挂载载,则 vallid bitt 为 1 。 * Grroupp Deescrripttionn:纪录录此 bblocck 由由由何处处开始记记录; * Bllockk biitmaap:此此处记录录那个 bloock 有没有有被使用用; * Innodee biitmaap:此此处记录录那个 inoode 有没有有被使用用; * Innodee taablee:为每每个 iinodde 数数据存放放区; * Daata Bloockss:为每每个 bblocck 数数据存放放区。如果想要知知道某个个 exxt2/ex
45、tt3 的的档案系系统内,关关于上述述提到的的相关信信息时,可可以使用用 duumpee2fss 这个个指令来来读取,举举例来说说,鸟哥哥将我自自己的主主机 /devv/hdda1 读出 eext33 的讯讯息:roottliinuxx # ddumppe2ffs /devv/hdda1Filessysttem vollumee naame: /Filessysttem staate: cleeanErrorrs bbehaavioor: ConntinnueFilessysttem OS typpe: LinnuxInodee coountt: 153370888Blockk coountt: 153362007Free bloockss: 73556099Free inoodess: 139930889Firstt bllockk: 0Blockk siize: 40996Filessysttem creeateed: Satt Juun 225 116:221:113 220055Last mouunt timme: Satt Juul 116 223:445:004 220055Last wriite timme: