ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:426.21KB ,
资源ID:5608367      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5608367.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(3Linux 磁盘与档案系统管理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

3Linux 磁盘与档案系统管理.docx

1、3Linux 磁盘与档案系统管理Linux 磁盘与档案系统管理 1认识 EXT2 档案系统 1硬盘物理组成 1磁盘分割 ( Partition ) 2档案系统 3Linux 的 EXT2 档案系统( inode ) 4EXT2/EXT3 档案的存取与日志式档案系统的功能 8数据的不一致 (Inconsistent) 状态 11Linux 档案系统的运作 12挂载点的意义 (mount point) 13其它 Linux 支持的档案系统 13档案系统的简单操作 14磁盘与目录的容量 14df 14du 17连结档的介绍: ln 18# Hard Link (硬式连结或实际连结) 19# Symb

2、olic Link (符号连结,亦即是快捷方式) 20关于目录的 link 数量 22磁盘的分割、格式化、检验与挂载 23磁盘分割: fdisk 24# 删除磁盘分割槽 27新增磁盘分割槽 28# 操作环境的说明 30# 注意事项: 31磁盘格式化 31mkbootdisk (制作软盘开机片) 33fdformat (进行软盘低阶格式化) 33磁盘检验: fsck, badblocks 33fsck 34badblocks 35sync 35磁盘挂载与卸载 36umount (将装置档案卸载) 39磁盘参数修订 39mknod 39e2label 40tune2fs 41# hdparm 41

3、设定开机挂载 43各式磁盘挂载与 中文编码挂载还有 USB 随身碟 44挂载软盘 44挂载 Windows 磁盘 44挂载 USB 随身碟 45开机挂载 /etc/fstab 及 /etc/mtab 45特殊装置 loop 挂载 49建立大型档案 49格式化 49挂载 50虚拟内存之建置 50建立虚拟内存装置 51建立虚拟内存档案 51虚拟内存的限制 53本章习题练习: 53Linux 磁盘与档案系统管理我们在前面的档案权限介绍的章节当中,提到很多的权限与属性的观念,那么接下来要了解的是, 这些属性是记录在硬盘的那个地方?这里就要特别了解到 Linux 档案系统( filesystem )是如

4、何记录档案, 与档案是如何被读取的啰!而要了解整个档案系统的观念,就不能不知道硬盘的组成组件! 所以,在这个章节当中,我们由最基础的硬盘组成组件介绍起,并介绍 inode 与连结文件等基本知识, 以及如何利用开机即可挂载的方式来使我们的各个 partition 可以在开机时就已经进行好挂载的动作喔!认识 EXT2 档案系统既然这个章节主要在探讨 Linux 的磁盘档案系统,所以我们当然就需要先来了解一下硬盘是个什么东西啦! 首先,我们就来看一看硬盘的物理组成,了解了物理组成之后,再来说明一下怎么样进行硬盘的分割 (partition) 吧!硬盘物理组成就硬盘的物理组件来说,硬盘其实是由许许多多

5、的圆形硬盘盘所组成的, 依据硬盘盘能够容纳的数据量,而有所谓的单碟 (一块硬盘里面只有一个硬盘盘) 或者是多碟 (一块硬盘里面含有多个硬盘盘)的硬盘。在这里我们以单一个硬盘盘来说明,硬盘盘可由底下的图形来示意:图二、磁柱示意图图一、硬盘盘示意图首先,硬盘里面一定会有所谓的磁头 ( Head ) 在进行该硬盘盘上面的读写动作,而磁头是固定在机械手臂上面的,机械手臂上有多个磁头可以进行读取的动作。 而当磁头固定不动 (假设机械手臂不动) ,硬盘盘转一圈所画出来的圆就是所谓的磁道( Track );而如同我们前面刚刚提到的,一块硬盘里面可能具有多个硬盘盘, 所有硬盘盘上面相同半径的那一个磁道就组成了

6、所谓的磁柱( Cylinder )。例如上图二所示意,在两个硬盘盘上面的同一个磁道就是一个磁柱啦! 这个磁柱也是磁盘分割( partition )时的最小单位了; 另外,由圆心向外划直线,则可将磁道再细分为一个一个的扇区( Sector ),这个扇区就是硬盘盘上面的最小储存物理量了! 通常一个 sector 的大小约为 512 Bytes 。以上就是整个硬盘的基本组件。在计算整个硬盘的储存量时,简单的计算公式就是:Cylinder x Head x Sector x 512 Bytes。另外,硬盘在读取时,主要是硬盘盘会转动, 利用机械手臂将磁头移动到正确的数据位置(单方向的前后移动),然后将

7、数据依序读出。 在这个操作的过程当中,由于机械手臂上的磁头与硬盘盘的接触是很细微的空间, 如果有抖动或者是脏污在磁头与硬盘盘之间时,就会造成数据的损毁或者是实体硬盘整个损毁因此,正确的使用计算机的方式,应该是在计算机通电之后,就绝对不要移动主机,并免抖动到硬盘, 而导致整个硬盘数据发生问题啊!另外,也不要随便将插头拔掉就以为是顺利关机! 因为机械手臂必须要归回原位,所以使用操作系统的正常关机方式,才能够有比较好的硬盘保养啊! 因为他会让硬盘的机械手臂归回原位啊!磁盘分割 ( Partition )在了解了硬盘的物理组件之后,再接着下来介绍的就是硬盘的分割( Partition )啰! 为什么要

8、进行硬盘分割啊?!因为我们必须要告诉操作系统: 我这块硬盘可以存取的区域是由 A 磁柱到 B 磁柱,如此一来, 操作系统才能够控制硬盘磁头去 A-B 范围内的磁柱存取数据;如果没有告诉操作系统这个信息, 那么操作系统就无法利用我们的硬盘来进行数据的存取了, 因为操作系统将无法知道他要去哪里读取数据啊!这就是磁盘分割( Partition )的重点了: 也就是记录每一个分割区( Partition )的起始与结束磁柱!好了,那么这个分割区的起始与结束磁柱的数据放在哪里呢?!那就是我们在 Linux 安装与多重开机技巧 那个章节提到的 主要开机扇区( Master Boot Recorder, M

9、BR )啰!事实上, MBR 就是在一块硬盘的第零轨上面,这也是计算机开机之后要去利用该硬盘时, 必须要读取的第一个区域!在这个区域内记录的就是硬盘里面的所有分割信息, 以及开机的时候可以进行开机管理程序的写入的处所啊!所以,当一个硬盘的 MBR 坏掉时,由于分割的数据不见了,呵呵,那么这个硬盘也就几乎可以说是寿终正寝了, 因为操作系统不知道该去哪个磁柱上读取数据啊那么 MBR 有什么限制呢?他最大的限制来自于他的大小不够大到储存所有分割与开机管理程序的信息, 因此,MBR 仅提供最多四个 partition 的记忆,这就是所谓的 Primary (P)与 Extended (E) 的 par

10、tition 最多只能有四个的原因了。所以说,如果你预计分割超过 4 个 partition 的话,那么势必需要使用 3P + 1E ,并且将所有的剩余空间都拨给 Extended 才行( 记得呦! Extended 最多只能有一个 ),否则只要 3P + E 之后还有剩下的空间, 那么那些容量将成为废物而浪费了,所以结论就是 如果您要分割硬盘时,并且已经预计规划使用掉 MBR 所提供的 4 个 partition ( 3P + E 或 4P )那么磁盘的全部容量需要使用光,否则剩下的容量也不能再被使用。 不过,如果您仅是分割出 1P + 1E 的话,那么剩下的空间就还能再分割两个 prima

11、ry partition !档案系统在告知系统我的 partition 所在的起始与结束磁柱之后,再来则是需要将 partition 格式化为我的操作系统认识的档案系统( Filesystem )啰!因为每个操作系统认识的 filesystem 并不相同!例如 Windows 操作系统在预设状态下就无法认识 Linux 的档案系统 ( 这里指 Linux 的标准档案系统 ext2 )。所以当然要针对我们的操作系统来格式化 partition 啰!我们可以说,每一个 partition 就是一个 Filesystem ,那么一个 partition 是否可以具有两个 Filesystem 呢?!

12、理论上应该是不行的!因为每个档案系统都有其独特的支持方式,例如 Linux 的 ext3 就无法被 Windows 系统所读取!而你将一个 partition 格式化的时候,总不能格式化为 ext3 也同时格式化为 fat32 吧?!那是不可能的啊!不论是哪一种 filesystem ,数据总是需要储存的吧!既然硬盘是用来储存数据的,想当然尔, 数据就必须写入硬盘啦!刚刚我们提到硬盘的最小储存单位是 sector ,不过数据所储存的最小单位并不是 sector 喔,因为用 sector 来储存太没有效率了。怎么说呢?因为一个 sector 只有 512 Bytes ,而磁头是一个一个 sect

13、or 的读取,也就是说,如果我的档案有 10 MBytes ,那么为了读这个档案, 我的磁头必须要进行读取 (I/O) 20480 次!为了克服这个效率上的困扰,所以就有逻辑区块( Block )的产生了! 逻辑区块是在 partition 进行 filesystem 的格式化时, 所指定的最小储存单位,这个最小储存单位当然是架构在 sector 的大小上面( 因为 sector 为硬盘的最小物理储存单位啊! ),所以啦, Block 的大小为 sector 的 2 的次方倍数。此时,磁头一次可以读取一个 block ,如果假设我们在格式化的时候,指定 Block 为 4 KBytes ( 亦

14、即由连续的八个 sector 所构成一个 block ),那么同样一个 10 MBytes 的档案, 磁头要读取的次数则大幅降为 2560 次,这个时候可就大大的增加档案的读取效能啦!不过,Block 单位的规划并不是越大越好喔!怎么说呢?因为一个 Block 最多仅能容纳一个档案 (这里指 Linux 的 ext2 档案系统)!这有什么问题呢?举例来说好了,假如您的 Block 规划为 4 KBytes ,而您有一个档案大小为 0.1 KBytes ,这个小档案将占用掉一个 Block 的空间,也就是说,该 Block 虽然可以容纳 4 Kbytes 的容量,然而由于档案只占用了 0.1 K

15、bytes ,所以,实际上剩下的 3.9 KBytes 是不能再被使用了,所以,在考虑 Block 的规划时,需要同时考虑到: * 档案读取的效能 * 档案大小可能造成的硬盘空间浪费因此,在规划您的磁盘时,需要留意到您主机的用途来进行规划较佳!例如 BBS 主机由于文章较短, 也就是说档案较小,那么 Block 小一点的好;而如果您的主机主要用在储存大容量的档案, 那么考虑到效能,当然 Block 理论上,规划的大一点会比较妥当啦!Superblock:如同前面说的,当我们在进行磁盘分割( partition )时,每个磁盘分割槽( partition )就是一个档案系统( filesyste

16、m ), 而每个档案系统开始的位置的那个 block 就称为 superblock ,superblock 的作用是储存像是档案系统的大小、空的和填满的区块,以及他各自的总数和其它诸如此类的信息等等, 这也就是说,当您要使用这一个磁盘分割槽( 或者说是档案系统 )来进行数据存取的时候,第一个要经过的就是 superblock 这个区块了,所以啰, superblock 坏了,您的这个磁盘槽大概也就回天乏术了!Linux 的 EXT2 档案系统( inode )看完了上面的说明,您应该对于硬盘有一定程度的认识了!好了,那么接下来就是要谈一谈 Linux 的档案系统( Filesystem )啰!

17、我们这里以 Linux 最标准的 ext2 这个档案系统来作为说明。还记得我们在 Linux 档案属性与目录配置 那个章节提到的,在 Linux 系统当中,每个档案不止有档案的内容数据,还包括档案的种种属性,例如:所属群组、 所属使用者、能否执行、档案建立时间、档案特殊属性等等。由于 Linux 操作系统是一个多人多任务的环境,为了要保护每个使用者所拥有数据的隐密性, 所以具有多样化的档案属性是在所难免的!在标准的 ext2 档案系统当中,我们将每个档案的内容分为两个部分来储存,一个是档案的属性,另一个则是档案的内容。为了应付这两个不同的咚咚,所以 ext2 规划出 inode 与 Block

18、 来分别储存档案的属性( 放在 inode 当中 )与档案的内容( 放置在 Block area 当中 )。当我们要将一个 partition 格式化( format )为 ext2 时,就必须要指定 inode 与 Block 的大小才行,也就是说,当 partition 被格式化为 ext2 的档案系统时,他一定会有 inode table 与 block area 这两个区域。Block 已经在前面说过了,他是数据储存的最小单位。那么 inode 是什么?!简单的说, Block 是记录档案内容数据的区域,至于 inode 则是记录该档案的相关属性,以及档案内容放置在哪一个 Block

19、之内的信息。 简单的说, inode 除了记录档案的属性外,同时还必须要具有指向( pointer )的功能,亦即指向档案内容放置的区块之中,好让操作系统可以正确的去取得档案的内容啊! 底下几个是 inode 记录的信息(当然不止这些): * 该档案的拥有者与群组(owner/group); * 该档案的存取模式(read/write/excute); * 该档案的类型(type); * 该档案建立或状态改变的时间(ctime)、最近一次的读取时间(atime)、最近修改的时间(mtime); * 该档案的容量; * 定义档案特性的旗标(flag),如 SetUID.; * 该档案真正内容的指

20、向 (pointer);我们在前一章 Linux 档案与目录管理 当中提到过利用 ls 查询档案所记载的时间,就是 atime / ctime / mtime 三种时间。这三种时间的意义我们已经在前一章的 touch 指令介绍时提过,这三种时间就是记录在 inode 里面的啦 如果回到前一章,您会发现,我们可以利用 ls 的相关功能来查询到时间喔!而预设的显示时间是 mtime 。rootlinux # ls -la -time=atime PATH那个 PATH 是您所想要查询的档案或目录名称。利用上面的 ls 相关参数,就可以取得您想要知道的档案相关的三种时间啰 至于一个 inode 的大

21、小为 128 bytes 这么大 (可以使用底下要介绍的 dumpe2fs 来查阅 inode 的大小喔!) !好了,那么我的 Linux 系统到底是如何读取一个档案的内容呢?底下我们分别针对目录与档案来说明: * 目录: 当我们在 Linux 下的 ext2 档案系统建立一个目录时, ext2 会分配一个 inode 与至少一块 Block 给该目录。其中,inode 记录该目录的相关属性,并指向分配到的那块 Block ;而 Block 则是记录在这个目录下的相关连的档案(或目录)的关连性! * 档案: 当我们在 Linux 下的 ext2 建立一个一般档案时, ext2 会分配至少一个

22、inode 与相对于该档案大小的 Block 数量给该档案。例如:假设我的一个 Block 为 4 Kbytes ,而我要建立一个 100 KBytes 的档案,那么 linux 将分配一个 inode 与 25 个 Block 来储存该档案!要注意的是, inode 本身并不纪录文件名,而是记录档案的相关属性,至于文件名则是记录在目录所属的 block 区域! 那么档案与目录的关系又是如何呢?就如同上面的目录提到的,档案的相关连结会记录在目录的 block 数据区域, 所以当我们要读取一个档案的内容时,我们的 Linux 会先由根目录 / 取得该档案的上层目录所在 inode , 再由该目录

23、所记录的档案关连性 (在该目录所属的 block 区域) 取得该档案的 inode , 最后在经由 inode 内提供的 block 指向,而取得最终的档案内容。我们以 /etc/crontab 这个档案的读取为例, 他的内容数据是这样取得的:图三、读取 /etc/crontab 的简易流程示意。一块 partition 在 ext2 底下会被格式化为 inode table 与 block area 两个区域, 所以在图三里面,我们将 partition 以长条的方式来示意,会比较容易理解的啦!而读取 /etc/crontab 的流程为: 1. 操作系统根据根目录( / )的相关资料可取得

24、/etc 这个目录所在的 inode ,并前往读取 /etc 这个目录的所有相关属性; 2. 根据 /etc 的 inode 的资料,可以取得 /etc 这个目录底下所有档案的关连数据是放置在哪一个 Block 当中,并前往该 block 读取档案的关连性内容; 3. 由上个步骤的 Block 当中,可以知道 crontab 这个档案的 inode 所在地,并前往该 inode ; 4. 由上个步骤的 inode 当中,可以取得 crontab 这个档案的所有属性,并且可前往由 inode 所指向的 Block 区域,顺利的取得 crontab 的档案内容。整个读取的流程大致上就是这样,如果您

25、想要实作一下以了解整个流程的话,可以这样试做看看:1. 察看一下根目录所记载的所有档案关连性数据rootlinux # ls -lia / 2 drwxr-xr-x 24 root root 4096 Jul 16 23:45 . 2 drwxr-xr-x 24 root root 4096 Jul 16 23:45 . 719489 drwxr-xr-x 83 root root 12288 Jul 21 04:02 etc 523265 drwxr-xr-x 24 root root 4096 Jun 25 20:16 var# 注意看一下,在上面的 . 与 . 都是连结到 inode 号

26、码为 2 的那个 inode ,# 也就是说, / 与其上层目录 . 都是指向同一个 inode number 啊!两者是相同的。# 而在根目录所记载的档案关连性 (在 block 内) 得到 /etc 的 inode number # 为 719489 那个 inode number 喔!2. 察看一下 /etc/ 内的档案关连性的数据rootlinux # ls -liad /etc/crontab /etc/.719489 drwxr-xr-x 83 root root 12288 Jul 21 04:02 /etc/.723496 -rw-r-r- 1 root root 663 Ju

27、l 4 12:03 /etc/crontab# 瞧!此时就能够将 /etc/crontab 找到关连性啰!所以您知道,目录的最大功能就是在提供档案的关连性,在关连性里面, 当然最主要的就是档名与 inode 的对应数据啰!另外,关于 EXT2 档案系统,这里有几点小事情要提醒一下: * ext2 与 ext3 档案在建立时 (format) 就已经设定好固定的 inode 数与 block 数目了; * 格式化 Linux 的 ext2 档案系统,可以使用 mke2fs 这个程序来执行! * ext2 允许的 block size 为 1024, 2048 及 4096 bytes; * 一个

28、 partition (filesystem) 所能容许的最大档案数,与 inode 的数量有关, 因为一个档案至少要占用一个 inode 啊! * 在目录底下的档案数如果太多而导致一个 Block 无法容纳的下所有的关连性数据时,Linux 会给予该目录多一个 Block 来继续记录关连数据; * 通常 inode 数量的多寡设定为 (partition 的容量) 除以 (一个 inode 预计想要控制的容量)。 举例来说,若我的 block 规划为 4Kbytes,假设我的一个 inode 会控制两个 block ,亦即是假设我的一个档案大致的容量在 8Kbytes 左右时,假设我的这个

29、partition 容量为 1GBytes, 则 inode 数量共有:( 1G * 1024M/G * 1024K/M ) / ( 8K ) = 131072 个。而一个 inode 占用 128 bytes 的空间,因此格式化时就会有 ( 131072个 * 128bytes/个 ) = 16777216 byes = 16384 Kbytes 的 inode table 。也就是说,这一个 1GB 的 partition 在还没有储存任何数据前, 就已经少了 16MBytes 的容量啊! * 因为一个 inode 只能记录一个档案的属性,所以 inode 数量比 block 多是没有意义

30、的! 举上面的例子来说,我的 Block 规划为 4 Kbytes ,所以 1GB 大概就有 262144 个 4Kbytes 的 block ,如果一个 block 对应一个 inode 的话,那么当我的 inode 数量大于 262144 时,多的 inode 将没有任何用处,徒然浪费硬盘的空间而已!另外一层想法,如果我的档案容量都很大, 那么一个档案占用一个 inode 以及数个 block ,当然 inode 数量就可以规划的少很多啦! * 当 block 大小越小,而 inode 数量越多,则可利用的空间越多,但是大档案写入的效率较差; 这种情况适合档案数量多,但是档案容量小的系统,

31、例如 BBS 或者是新闻群组( News )这方面服务的系统; * 当 Block 大小越大,而 inode 数量越少时,大档案写入的效率较佳,但是可能浪费的硬盘空间较多; 这种状况则比较适合档案容量较大的系统!简单的归纳一下, ext2 有几个特色: * Blocks 与 inodes 在一开始格式化时 (format) 就已经固定了; * 一个 partition 能够容纳的档案数与 inode 有关; * 一般来说,每 4Kbytes 的硬盘空间分配一个 inode ; * 一个 inode 的大小为 128 bytes; * Block 为固定大小,目前支持 1024/2048/409

32、6 bytes 等; * Block 越大,则损耗的硬盘空间也越多。 * 关于单一档案: 若 block size=1024,最大容量为 16GB,若 block size=4096,容量最大为 2TB; * 关于整个 partition : 若 block size=1024,则容量达 2TB,若 block size=4096,则容量达 32TB。 * 文件名最长达 255 字符,完整文件名长达 4096 字符。 另外,关于 partition 的使用效率上,当您的一个 partition 规划的很大时,例如 100GB 这么大, 由于硬盘上面的数据总是来来去去的,所以,整个 partition 上面的档案通常无法连续写在一起, 而是填入式的将数据填入没有被使用的 block 当中。如果档案写入的 b

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1