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