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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Linux 磁盘与文件系统管理.docx

1、Linux 磁盘与文件系统管理Linux 磁盘与文件系统管理磁盘分割 ( Partition ):在了解了硬盘的物理组件之后,再接着下来介绍的就是硬盘的分割( Partition )! 为什么要进行硬盘分割?因为我们必须要告诉操作系统: 我这块硬盘可以存取的区域是由 A 磁柱到 B 磁柱,如此一来, 操作系统才能够控制硬盘磁头去 A-B 范围内的磁柱存取数据;这就是磁盘分割( Partition )的重点了: 也就是记录每一个分割区( Partition )的起始与结束磁柱!文件系统:在告知系统我的 partition 所在的起始与结束磁柱之后,再来则是需要将 partition 格式化为我的

2、操作系统认识的文件系统( Filesystem )! 不论是哪一种文件系统 ,数据总是需要储存的!既然硬盘是用来储存数据的,想当然数据就必须写入硬盘!刚刚我们提到硬盘的最小储存单位是 扇区 ,不过数据所储存的最小单位并不是扇区,因为用 扇区 来储存太没有效率了。怎么说呢?因为一个 扇区 只有 512 Bytes ,而磁头是一个一个 扇区 的读取,也就是说,如果我的文件有 10 MBytes ,那么为了读这个文件, 我的磁头必须要进行读取 (I/O) 20480 次! 为了克服这个效率上的困扰,所以就有逻辑区块( Block )的产生了! 逻辑区块是在硬盘分割进行 硬盘的分割的格式化时, 所指定

3、的最小储存单位,这个最小储存单位当然是架构在 扇区 的大小上面( 因为 扇区 为硬盘的最小物理储存单位啊! ),所以, 逻辑区块Block 的大小为 扇区 的 2 的次方倍数。此时,磁头一次可以读取一个 block ,如果假设我们在格式化的时候,指定 一个逻辑区块(Block) 为 4 KBytes ( 亦即由连续的八个 扇区 所构成一个 block ),那么同样一个 10 MBytes 的文件, 磁头要读取的次数则大幅降为 2560 次,这个时候可就大大的增加文件的读取效能! 不过,逻辑区块(Block) 单位的规划并不是越大越好!怎么说呢?因为一个 Block 最多仅能容纳一个文件 (这里

4、指 Linux 的 ext2 文件系统)!这有什么问题呢?举例来说好了,假如您的 Block 规划为 4 KBytes ,而您有一个文件大小为 0.1 KBytes ,这个小文件将占用掉一个 Block 的空间,也就是说,该 Block 虽然可以容纳 4 Kbytes 的容量,然而由于文件只占用了 0.1 Kbytes ,所以,实际上剩下的 3.9 KBytes 是不能再被使用了,所以,在考虑 Block 的规划时,需要同时考虑到: 文件读取的效能 文件大小可能造成的硬盘空间浪费Linux 的 EXT2 文件系统( inode ):inode译成中文就是索引节点,它用来存放档案及目录的基本信息

5、,包含时间、档名、使用者及群组等 在 Linux 系统当中,每个文件不止有文件的内容数据,还包括文件的种种属性,例如:所属群组、 所属使用者、能否执行、文件建立时间、文件特殊属性等等。由于 Linux 操作系统是一个多人多任务的环境,为了要保护每个使用者所拥有数据的隐密性, 所以具有多样化的文件属性是在所难免的!在标准的 ext2 文件系统当中,我们将每个文件的内容分为两个部分来储存,一个是文件的属性,另一个则是文件的内容。为了应付这两个不同的,所以 ext2 规划出 inode 与 Block 来分别储存文件的属性( 放在 节点inode 当中 )与文件的内容( 放置在 Block area

6、 当中 )。当我们要将一个 partition 格式化( format )为 ext2 时,就必须要指定 inode 与 Block 的大小才行,也就是说,当 partition 被格式化为 ext2 的文件系统时,他一定会有 inode table 与 block area 这两个区域。 底下我们分别针对目录与文件来说明: 目录:当我们在 Linux 下的 ext2 文件系统建立一个目录时, ext2 会分配一个 inode 与至少一块 Block 给该目录。其中,inode 记录该目录的相关属性,并指向分配到的那块 Block ;而 Block 则是记录在这个目录下的相关连的文件(或目录)

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

8、一个文件的内容时,我们的 Linux 会先由根目录 / 取得该文件的上层目录所在 inode , 再由该目录所记录的文件关连性 (在该目录所属的 block 区域) 取得该文件的 inode , 最后在经由 inode 内提供的 block 指向,而取得最终的文件内容。 挂载点的意义 (mount point):我们上面提到的都是关于文件系统 (filesystem),但是要能够让我们的 Linux 使用的话, 非得挂载 (mount)上我们的 Linux 系统才行,举例来说,我们将硬盘分割为几大部分, 同时主要将 / 与 /home 设定为两个 partition 的挂载点。假设 / 是接在

9、 /dev/hda1 , 而 /home 是接在 /dev/hda2 上面,那么,也就是说,在 /home 底下的所有次目录,使用的都是 /dev/hda2 那个 partition 的资料!而非 /home 的则都是使用 /dev/hda1 的数据! 请注意, 挂载点一定是目录而不是文件! 也就是说,这个挂载点就是进入该 filesystem 的入口!磁盘与目录的容量: 在文字接口底下有什么方法可以查看目前的磁盘最大容量、已经使用掉的容量、 目前所在目录的已使用容量?还有还有,怎么知道目前目录底下使用掉的硬盘容量呢? 以及如何查询目前的 inodes 数目?底下我们就来谈一谈主要的两个指令:

10、 df rootlinux # df -ahikHTm 目录或文件名参数:-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k :以 KBytes 的容量显示各文件系统;-m :以 MBytes 的容量显示各文件系统;-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H :以 M=1000K 取代 M=1024K 的进位方式;-T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i :不用硬盘容量,而以 inode 的数量来显示范例:范例一:将系统内所有的 partition 列出来!roo

11、tlinux # dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/hda1 5952252 3012332 2632680 54% /dev/shm 192836 0 192836 0% /dev/shm/dev/hda5 9492644 221604 8781060 3% /home# 特别注意,在 Linux (FC4) 底下,如果 df 没有加任何参数,那么预设会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 Kbytes 的容量来列出来!至于那个 /dev/shm 是与内存有关的挂载,先不要理他!范例二

12、:将容量结果以易读的容量格式显示出来rootlinux # df -hFilesystem Size Used Avail Use% Mounted on/dev/hda1 5.7G 2.9G 2.6G 54% /dev/shm 189M 0 189M 0% /dev/shm/dev/hda5 9.1G 217M 8.4G 3% /home# 不同于范例一,这里会以 G/M 等容量格式显示出来,比较容易看!范例三:将 /etc 底下的可用的磁盘容量以易读的容量格式显示rootlinux # df -h /etcFilesystem Size Used Avail Use% Mounted on

13、/dev/hda1 5.7G 2.9G 2.6G 54% /# 这个范例比较有趣一点,在 df 后面加上目录或者是文件时, df会自动的分析该目录或文件所在的 partition ,并将该 partition 的容量显示出来, 所以,您就可以知道某个目录底下还有多少容量可以使用了! _范例五:将目前各个 partition 当中可用的 inode 数量列出rootlinux # df -ih Filesystem Inodes IUsed IFree IUse% Mounted on/dev/hda1 1.5M 141K 1.4M 10% /dev/shm 48K 1 48K 1% /dev/

14、shm/dev/hda5 2.4M 67 2.4M 1% /home du rootlinux # du -ahskm 文件或目录名称参数:-a :列出所有的文件与目录容量,因为预设仅统计目录底下的文件量而已。-h :以人们较易读的容量格式 (G/M) 显示;-s :列出总量而已,而不列出每个各别的目录占用容量;-k :以 KBytes 列出容量显示;-m :以 MBytes 列出容量显示;范例:范例一:列出目前目录下的所有文件容量rootlinux # durootvbird # du16 ./.gnome216 ./.ssh.中间省略.292 . # 直接输入 du 没有加任何参数时,则

15、du 会分析目前所在目录 的文件与目录所占用的硬盘空间。但是,实际显示时,仅会显示目录容量,但我的 . 目录有很多文件没有被列出来,所以,全部的目录相加不会等于 . 的容量!范例二:同范例一,但是将文件的容量也列出来rootlinux # du -a12 ./install.log.syslog16 ./.gnome216 ./.ssh76 ./install.log16 ./.bash_history4 ./.bashrc.中间省略.292 .# 加上这个 -a 参数后,就会将目录底下的文件也一起列示出来,# 而不是仅列出文件信息而已!注意 _磁盘分割: fdiskrootlinux # f

16、disk -l 装置名称参数:-l :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。范例:范例:查阅您的第一颗硬盘内的相关信息rootlinux # fdisk /dev/hda = 仔细看,不要加上数字!The number of cylinders for this disk is set to 2494.There is nothing wrong with that, but this is larger than 1024,and could in certain setups

17、 cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)# 在你进入 fdisk 这支程序的工作画面后,如果您的硬盘太大的话,就会出现如上讯息。这个讯息仅是在告知你,因为某些旧版的软件与操作系统并无法支持大于 1024磁柱 (cylinter) 后的扇区使用,不过我们 Linux 是没问题!Command (m for he

18、lp): m = 输入 m 后,就会看到底下这些指令介绍Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without s

19、aving changes s create a new empty Sun disklabel t change a partitions system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)# 这里注意一下,使用 fdisk 这支程序是完全不需要背指令的,因为按下 m 之后 立刻就会有一堆指令说明跑出来了!在上面的指令当中,比较重要的有:# d 删除一个磁盘分割槽、 n 新增

20、一个磁盘分割槽、 p 将目前的磁盘分割槽列出来、q 不储存离开!这个重要! w 写入磁盘分割表后离开!这个危险!Command (m for help): p = 这里可以输出目前磁盘的状态Disk /dev/hda: 20.5 GB, 20520493056 bytes = 硬盘的信息在这底下三行255 heads(磁面), 63 扇区s/track, 2494 cylinders(磁柱)Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hda1 * 1 76

21、5 6144831 83 Linux/dev/hda2 766 1147 3068415 83 Linux/dev/hda3 1148 1274 1020127+ 82 Linux swap/dev/hda4 1275 2494 9799650 5 Extended/dev/hda5 1275 2494 9799618+ 83 Linux# 由上面的信息,您可以知道,我的硬盘是 20GB 的,而 Head/扇区/Cylinder# 的数量为 255/63/2494 ,另外,可以看到上头的 Boot 吗?那个地方代表有开机信息的partition !另外,那个 start 与 end 则是指每一

22、个 partition 的开始与结束的Cylinder (磁柱)号码! # 此外,上头显示的那个 Id 为主要文件格式的代号,你可以按下 l ( L 的小写 ) 就可以知道我们 linux 的 fdisk 认识多少文件系统!至于 Blocks 则以 KBytes 来显示该 partition 的容量的Command (m for help): q# 想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!范例:查阅目前系统内的所有 partition 有哪些?rootlinux # fdisk -lDisk /dev/hda: 20.5 GB, 20520493056 bytes255 hea

23、ds, 63 扇区s/track, 2494 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 83 Linux/dev/hda2 766 1147 3068415 83 Linux/dev/hda3 1148 1274 1020127+ 82 Linux swap/dev/hda4 1275 2494 9799650 5 Extended/dev/hda5 1275 2494 9799618+ 83

24、LinuxDisk /dev/hdb: 30.7 GB, 30735581184 bytes255 heads, 63 扇区s/track, 3736 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hdb1 * 1 3633 29182041 83 Linux# 由于我的这个系统有两颗硬盘,下达 fdisk -l 的话,所有的 partition 都看到了!另外,我可以确定我的 /dev/hdb 还有剩余空间!因为由上面的信息看来,# 我的

25、 /dev/hdb 的磁柱应该可以到 3736 ,但是目前只用到 3633 ,所以,# 就肯定还有剩余空间拉!等一下我们就用这个来测试!这个 fdisk 只有 root 才能执行,我们知道可以利用 fdisk 来查阅硬盘的 partition 信息外,底下再来说一说进入 fdisk 之后的几个常做的工作!Tips:你可以使用 fdisk 在您的硬盘上面胡搞瞎搞的进行实际操作,都不打紧, 但是请万记住,不要按下 w 即可!离开的时候按下 q 就万事无妨! 删除磁盘分割槽 刚刚的 fdisk 结果当中,我知道我的 /dev/hdb 仅有 /dev/hdb1 而已, 那么假设我要将这个 /dev/h

26、db1 删除的话,可以怎么做? 1. fdisk /dev/hdb :先进入 fdisk 画面; 2. p :先看一下扇区的信息,假设要杀掉 /dev/hdb1; 3. d :这个时候会要你选择一个 partition ,就选 1 ! 4. w (or) q :按 w 可储存到磁盘数据表中,并离开 fdisk ;当然, 如果你反悔了,呵呵,直接按下 q 就可以取消刚刚的删除动作了!rootlinux # fdisk /dev/hdb1. 先看看整个结果是如何Command (m for help): pDisk /dev/hdb: 30.7 GB, 30735581184 bytes255 h

27、eads, 63 扇区s/track, 3736 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hdb1 * 1 3633 29182041 83 Linux2. 按下 d 给他删除吧!Command (m for help): dSelected partition 1# 因为我们这个磁盘仅有 1 个 partition ,所以系统会自动帮我们Command (m for help): pDisk /dev/hdb: 30.7 GB, 3

28、0735581184 bytes255 heads, 63 扇区s/track, 3736 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System# 看不见了! partition 就这样不见了!Command (m for help): q# 这里仅是做一个练习而已,所以,按下 q 就能够离开 新增磁盘分割槽 那么如何新增 partition 呢?以刚刚的 /dev/hdb 为例, 我的 /dev/hdb 有一个 /dev/hdb1 ,而且还有剩余空间,那

29、我如何利用? 1. fdisk /dev/hdb :先进入 fdisk 画面中; 2. n:新增一个扇区,这个时候系统会问你, 如果您已经具有 extended (扩展分区)扇区时,那么系统会问您,您要新增的是 Primary (主分区)还是 Logical(逻辑分区) ,而如果您还没有 extended ,那么系统仅会问你要新增 (主分区)Primary 还是 (扩展分区)Extended。除此之外,如果您已经用完了四个 P主 + E扩 的话,那么就仅有(逻辑分区) Logical 可以选择!如果是选择 primary 的话,请按 p ,否则请按 e (extended) 或 l (logi

30、cal)。 3. p :由于选 择为 primary 所以就会按下 p ! 4. 1-4 :primary 只允许四个, 所以这里请按尚未被使用的那一个扇区! 5. w :同样的储存离开!好了,假设想要将我刚刚的 /dev/hdb 剩余空间分为两个分割槽, 一个是 primary ,另一个则是 logical ,且 primary 只要 100MBytes 就够了! 其它的都分给 logical ,那可以这么做!rootlinux # fdisk /dev/hdbCommand (m for help): nCommand action e extended p primary partiti

31、on (1-4)p =就是这里!可以自行决定是 p 还是 e !Partition number (1-4): 4 =编号可以随意!First cylinder (3634-3736, default 3634): =这里按下 Enter 就会使用默认值Using default value 3634Last cylinder or +size or +sizeM or +sizeK (3634-3736, default 3736): +100M# 这个地方有趣了!我们知道 partition 是由 n1 到 n2 的磁柱 (cylinder),# 但是我们对于磁柱的大小不容易掌握!这个时候可以填入 +100M 来让系统自动帮我们找出# 最接近 100M 的那个 (磁柱)cylinder 号码!因为不可能刚好等于 100MBytes !Comman

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

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