在UNIX系统中,文件的存储借助于存储介质,如磁盘,软磁盘,光盘等而得以存储的。因此在UNIX系统中。掌握如何有效地对存储介质加以使用,是一项非常重要的技术。
※如何查看系统中存储空间的使用情况。
※如何在软盘,磁带这类设备上生成文件系统。
存储空间的使用情况
在建立好一个文件系统并使之可用之后。随着用户在其上新建文件、修改文件或者删除文件,该文件系统的空闲inode数、空闲数据块等会相应地减少或者增多。如果文件系统的空闲空间减少到一定的程度,系统响应速度会大幅度下降甚至无法工作。这时,就需要对各文件系统的使用情况进行调查,然后采取相应的对策。
1.文件系统空闲情况的统计
在文件系统中,索引节点数和数据块数是两个至关重要的参数。当某个文件系统索引节点或数据块全部被占满是,将无法在在此文件系统上建立任何文件。这是一件比较可怕的事。为了使用户能方便地了解系统中每个文件系统中还剩下多少可用的索引节点和数据块,系统为我们提供了df命令。
df命令为disk free的缩写。df可以单独使用,也可以带参数。具体使用你可以参考联机帮助。
2.磁盘空间占用情况
在文件系统满了或者我们希望得知某个目录或文件对文件系统存储空间的使用情况时,可以使用du命令。
du命令为disk usage的缩写。在使用这个命令时可以指定一个或多个目录,如:
$ du /home/yxz
2 ??? /home/yxz/Unix.dir
10??? /home/yxz
$
使用上述命令,就能查出系统中某个用户占用了多少磁盘空间(假定用户只能在他的HOME目录下建立文件)。
如果没有指定文件或目录名的情况下,du将显示当前目录占用的磁盘空间的情况。显示出的信息中包含有指定目录下所有的各个子孙目录,磁盘空间的使用情况。若要得知每个子目录及文件的信息,可以加上-a选项。
若只想知道指定的目录占用磁盘空间的总数,可以使用-S选项。
还有一些其它的选项可以参考帮助手册。
用户占用文件系统空间的统计
系统中的每个文件都有相应的拥有者。在某些情况下我们需要知道在某个文件系统上,每个用户各占用多少存储空间。为此可以使用quot命令。
quot是quotient的缩写。它可接受一个文件系统名(块设备文件名)作为参数,然后统计出在该文件系统中建立有文件的各个用户所占用的磁盘块的数目。如:
# quot /dev/dsk/0s4
/dev/dsk/0s4:
82883 ?sybase
?340? vmsys
158 ??yxz
28 ?? oasys
14???root
2??? xyz
3??? yxz
1??? install
注意,此命令只能供超级用户使用。
存储介质上的文件系统
文件系统的物理基础就是系统所使用的各种存储介质,如磁盘、软盘,CD-ROM、磁带,等等。
UNIX对其各种存储设备用一种统一的方法对待,那就是每个物理设备都是文件系统中的文件。当然这种文件比较特殊,被称为设备特殊文件(Device
Special File),这些文件被组织在文件系统树的/dev目录下。
本节将介绍UNIX如何组织各种存储设备;如何对这些设备进行初始化(格式化);以及如何将特定设备上的文件系统“挂接”到系统的文件系统树上,以及如何将其从文件系统树上“摘下来”。
存储介质的组织方式
每一种特性的物理设备在文件系统中都占据有一个相应的节点,即具有一个文件名称。这里介绍UNIX是如何组织硬盘、软盘、磁带、CD-ROM这些常用的存储设备的。
1.硬盘的组织
我们知道,硬盘时一种块设备。也就是说,它每次同其它设备的数据交换均是以一个数据块(通常为512字节)为单位的。这样硬盘的存储空间也就是从0号块到最大块号。例如一个1GB的硬盘上,将会有2M个数据块。其编号将是从0至2的21次方-1。
对一个硬盘,可以对之进行“分区”操作。在硬盘的各个分区中,只有一个分区是“活动的”。也就是说,接通电源后机器将从活动分区中被引导从而进入相应的操作系统状态。
进行硬盘分区的实用程序是名为fdisk。在那里还可以指定活动分区。由于此命令只能供系统管理员使用,所以在此不做介绍。
每个硬盘分区实际上就相当于一个独立的硬盘。所以在下面的叙述中我们就假定没有对硬盘进行分区。
硬盘在使用前要进行格式化操作。这个操作主要是在硬盘上写上有关存取数据和管理用的信息。不同种类的UNIX,格式化操作的具体内部动作是不一样的。用户不用理它,格式化好之后,呈现在用户面前的硬盘才是若干编号连续的存储块。下面的问题是如何对这些存储块进行管理了。
我们可以把整个存储空间分成若干个段。每一段内存储块的编号都是连续的。各段首尾相邻,但任何段都不运允许有交叉。(这一操作类似于硬盘的分区)然后可以为每段存储块指定一个名称,系统将用指定的名称在/dev目录下建立一个文件。此时这个文件所表示的就是该段连续的存储空间了。
在对每一个分段命名后,我们就得到相应的设备文件,此时就可以用此设备文件来在相应的磁盘段上建立文件系统了。
2. 软盘、磁带、CD-ROM的组织方式
上述三种存储设备因为其携带方便,易于保存,并且磁带和CD-ROM还具有存储量大(海量存储)的特点,因而在计算机系统中被广泛使用。在UNIX系统中这些设备也被按文件的组织方式加以组织。
但由于此类设备的多样性以及存取格式、存取方式的不同,使得对此类设备的使用也复杂起来。举例来说,对于软盘就有好多种不同的类型,如3.5英寸,5.25英寸,有高密的,也有低密的,有的软盘上有引导块,有的没有,等等。并且在对它们进行访问的时候,有时不必格式化就可以访问,有些命令则只能访问格式化后的设备。
系统为上述特点进行区分,采取得方法是:对不同存取特征的组合设定不同的设备文件名。在需要按某种特征组合去访问相关介质时,指定相应的设备文件名即可。
对于磁带和CD-ROM等设备,系统对它们的组织方式与软盘类似,也是用不同的名称代表不同的格式的设备。例如在Sun
0S上,用/dev/rmt/?代表1/2英寸磁带设备,而用/dev/rst/?代表scsi磁带。对于CD-ROM,其名称则是/dev/rdsk/c0t6d0s0。在使用磁带和CD-ROM时,如果发现用指定的名称不能正确访问数据,那么可换其它格式试试。如果所有的格式都不能完成任务,那么表明系统不支持所用的设备。
存储介质上文件系统的使用
对于软盘,磁带,和CD-ROM地的使用,一种方法就是先在其上生成某种类型的文件系统,然后将该文件系统安装到文件系统树的某个节点三。这样以后我们就能用常规的文件操作命令,如mkdir,rmdir,cp,mv,rm等在相应的存储介质上建立并且存储文件。
1.介质的格式化
软盘、磁带等存储设备在使用之前都要进行格式化操作(CD-ROM由于其只读的特殊性,无需格式化,也无法对之格式化)。格式化的操作的具体内容随UNIX操作系统的不同而有较大的差异。但总的来说,它们都要在存储介质上的某些存储区域中写入一些操作系统访问该介质所必不可少的管理信息,这之外的那些存储区域才被用来存放用户数据。并且在格式化的过程中,一般还要对存储介质上的存储区域进行校验,看看其中有没有被损坏的地方。
不同系统提供的格式化工具也不尽相同。例如在AT&T UNIX System VR 4.0上的格式化命令为format。
2.介质上文件系统的生成
这里我们所讲述的内容主要也是针对软盘和磁带这些存储介质的。CD-ROM
因为在作好之后,它上面的文件系统实际上也就算是生成了,因此也就不用我们再生成。另外并不是所有的磁带上都可以生成文件系统。
大多数UNIX系统中提供的生成文件系统的命令均为mkfs.mkfs命令要求提供一个裸设备文件名作为参数。并且在命令行中我们还可以指定文件系统的索引节点数和数据块数目。另外债命令行中我们还可以指定所建文件系统的类型。每种UNIX系统支持的文件系统类型的数量也不同,但S5,UFS等这类比较通用的文件系统都还是支持的,读者可以自己看看所用的机器上都支持哪些种类的文件系统。在我们不指定文件系统类型的时候,系统会在指定设备上建立一种缺省的文件系统。
3.文件系统的安装
在一个文件系统建立好之后,还并不能马上就使用它。在使用之前必须先将它“挂接”到系统的文件系统树上某个节点处。这种操作被称为文件系统的安装。具体的细节请看UNIX系统管理的文件系统部分。
4.文件系统的拆卸
具体的细节请看UNIX系统管理的文件系统部分
阅读(668) | 评论(0) | 转发(0) |