linux 磁盘与文件系统管理

上传人:第*** 文档编号:32687945 上传时间:2018-02-12 格式:DOC 页数:15 大小:150KB
返回 下载 相关 举报
linux 磁盘与文件系统管理_第1页
第1页 / 共15页
linux 磁盘与文件系统管理_第2页
第2页 / 共15页
linux 磁盘与文件系统管理_第3页
第3页 / 共15页
linux 磁盘与文件系统管理_第4页
第4页 / 共15页
linux 磁盘与文件系统管理_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《linux 磁盘与文件系统管理》由会员分享,可在线阅读,更多相关《linux 磁盘与文件系统管理(15页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 16 页- 1 -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 的规划时,需要同时考虑到: 第 2 页 共 16 页- 2 - 文件读取的效能 文件大小可能造成的硬盘空间浪费Linux 的 EXT2 文件系统( inode ):inode 译成中文就是

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

6、文件的内容( 放置在 Block area 当中 )。当我们要将一个 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 来储存该文件!第 3 页 共 16 页- 3 -要注意的是, 节点 inode 本身并不纪录文件名,而是记录文件的相关属性,至于文件名则是记录在目录所属的 block 区域! 那么文件与目录的关系又是如何呢?就如同上面的目录提

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

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

10、及如何查询目前的 inodes 数目?底下我们就来谈一谈主要的两个指令: df rootlinux # df -ahikHTm 目录或文件名参数:-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k :以 KBytes 的容量显示各文件系统;-m :以 MBytes 的容量显示各文件系统;-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;第 4 页 共 16 页- 4 -H :以 M=1000K 取代 M=1024K 的进位方式;-T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i :不用

11、硬盘容量,而以 inode 的数量来显示范例:范例一:将系统内所有的 partition 列出来!rootlinux # 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)

12、 都以 Kbytes 的容量来列出来!至于那个 /dev/shm 是与内存有关的挂载,先不要理他!范例二:将容量结果以易读的容量格式显示出来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 #

13、df -h /etcFilesystem Size Used Avail Use% Mounted on/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/de

14、v/hda1 1.5M 141K 1.4M 10% /dev/shm 48K 1 48K 1% /dev/shm/dev/hda5 2.4M 67 2.4M 1% /home du rootlinux # du -ahskm 文件或目录名称参数:第 5 页 共 16 页- 5 -a :列出所有的文件与目录容量,因为预设仅统计目录底下的文件量而已。-h :以人们较易读的容量格式 (G/M) 显示;-s :列出总量而已,而不列出每个各别的目录占用容量;-k :以 KBytes 列出容量显示;-m :以 MBytes 列出容量显示;范例:范例一:列出目前目录下的所有文件容量rootlinux # d

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号