当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

Linux 管理员手册(3)--磁盘和其他存贮介质的使用


   安装和升级系统时,需要对硬盘做很多工作。必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间。
  
    本章说明所有这些初始化工作。通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘)。如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回到这一章。
  
  管理磁盘的基本任务有:
  
    格式化磁盘。这为磁盘进入使用做一些工作,比如检查坏扇区。(现在多数硬盘无须格式化。)
  
    给硬盘分区,如果想用于互相不干扰的几件事。分区的一个原因是要在一个硬盘上存不同的操作系统。另一个原因是将用户文件和系统文件分开,以简化备份并在系统崩溃时有助于保护系统文件。
  
    在每个磁盘或分区上建立合适类型的文件系统,然后文件就可以在其上产生和存取。在你建立文件系统前,磁盘对Linux没有意义。
  
    将不同的文件系统安装起来形成一个单独的树结构,按需要可以自动或手工完成。 (手工安装的文件系统通常还要手工unmount)
  
    5章包括虚拟内存和磁盘cache的信息,使用磁盘应该知道这些。
  
    本章说明对硬盘、软盘、CDROM和磁带机应该知道什么。
  
  2种设备
  
    UNIX及Linux,识别2类设备:随机存取的块设备(如磁盘)和字符设备(如磁带和串行线),有些是串行的,有些是随机存取的。文件系统支持的每种看来是个设备文件。当读写设备文件时,数据与设备联系。这样没有必要为存取设备编制特别的程序(程序不直接获取中断或读取串口),例如,发送文件到打印机,只需:
  
    $ cat filename > /dev/lp1
    $
  
    文件内容就被打印了(当然,文件必须是打印机能理解的格式)。当然,因为不应该让多人同时cat文件到同一打印机,一般用特定的程序发送文件去打印(通常是lpr )。这个程序能确保同时只有一个文件被打印,并自动在完成后发送下一个。多数设备有类似需要。实际上,根本很少需要关心设备文件。
  
    因为设备被视为文件系统中的文件(在/dev 目录中),很容易看到存在哪些设备文件,使用ls 或其他的适当的命令即可。在ls -l 的输出中,第一列包含文件类型和权限。例如,查看我系统上的一个串行设备:
  
    $ ls -l /dev/cua0
    crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0
    $
  
    第一列第一个字符,即crw-rw-rw-中的c告诉用户文件的种类,这是一个字符设备。一般文件的第一个字符是"-",目录是"d",块设备是"b";更多的信息见ls man页。
  
    注意即使设备没有安装,一般所有设备文件都存在。因此有/dev/sda 文件并不意味着你真的有个SCSI硬盘。有所有的设备文件使安装程序更简单,也易于增加新硬件(无须再为产生新设备的设备文件找出正确的参数)。
  硬盘
  
    本节介绍有关硬盘的术语。如果你已经知道这些项目和内容,可以跳过本节。
  
    硬盘包括一到数片盘片platters, 其一个或两个面surfaces涂有磁性材料用于记录数据。每面有一个读写头read-write head用于读写数据。盘片有一个共同的轴,典型的旋转速度是每分钟3600转,高性能的硬盘转速可能更高。磁头可沿着盘片的半径移动,磁头移动加上盘片旋转可以使词头存取磁盘表面的任何一个位置。
  
    处理器(CPU)和实际磁盘通过磁盘控制器disk controller通讯。这使计算机其他部分不必知道如何使用驱动器,因为不同磁盘的控制器可以做成对计算机其他部分相同的接口。这样,计算机只要说"嗨,磁盘,给我我要的东西",而不是用一串长而复杂的电信号来移动磁头到正确的位置,并等正确的位置到了磁头下后再做那些不愉快的工作。 (实际上,到控制器的接口仍然很复杂,但比没有好多了。) 控制器还可以做一些其他的事,比如缓冲,或自动坏扇区替换等。用电信号控制操作机械部件,
  
    以上只是理解硬件所需的。还有其他好多工作,比如马达旋转磁盘、移动磁头,但这都与理解硬盘工作原理无关。
  
    磁盘表面通常被分为同心圆环,叫磁道tracks,磁道又被分为扇区sectors。用这样分来将磁盘定位,用于为文件定位磁盘空间。要在硬盘上找到给定的位置,可能?quot;3面5道7扇区"。通常所有磁道有相同的扇区数,但也有硬盘在外圈磁道放较多的扇区(所有扇区用同样大小的物理空间,这样在较长的外圈磁道可以容纳更多的数据)。一般一个扇区容纳512字节数据。磁盘不能处理比一个扇区更小的数据量。
  
    每个面以相同的方式分为磁道和扇区。这意味着当一个磁头在某个磁道时,其他磁头也在相应的位置,所有相同位置的磁道组成柱面cylinder。磁头从一个磁道(柱面)移动到另一个需要花时间,所以将经常要在一起存取的数据(如一个文件)放在一个柱面里。这改善了性能。当然不可能完全作到,文件被放在几个相分离的位置叫碎片fragmented。
  
    磁盘的面(或头,实际是一样的)、柱面、扇区数各不相同,硬盘这些数目叫硬盘参数geometry。硬盘参数通常存在一个特定的、由电池供电的存储区中,叫CMOS RAM,操作系统在引导启动或驱动器初始化时可以从那里得到硬盘参数。
  
    不幸的是,BIOS 有一个设计限制,就是不能在CMOS RAM中定义大于1024的磁道数,这对大硬盘来说就太小了。为了克服这个问题,硬盘控制器在磁盘参数上做了一个欺骗,用地址转换translates the addresses使计算机接受。例如,一个硬盘可能有8个磁头,2048个磁道,每磁道35个扇区。其控制器可以对计算机谎称它有16个磁头,1024个磁道,每磁道35个扇区,这样就没有超过磁道数的限制,地址转换将磁头数减半,磁道数加倍后传给硬盘。实际的算法可能更复杂,因为数量可能不象我们在这里假设的这么好(但这不影响我们理解原理)。这个转换在操作系统来看产生了错觉,并可能影响操作系统对把所有数据存在相同柱面的企图受到影响。
  
    转换只是IDE硬盘的问题。SCSI硬盘使用连续的扇区号(即控制器将连续的扇区好转换成磁头、柱面、扇区的三参数组),对CPU与控制器的通信使用完全不同的方法,因此不会有这个问题。注意,计算机可能根本不知道一个SCSI硬盘的实际参数。
  
    由于Linux经常不知道一个硬盘的真正参数,其文件系统也不试图将文件存在一个柱面里。而是争取给一个文件分配连续编号的山区,这样能得到类似的性能。对于控制器上有cashe或控制器能自动预取的硬盘,情况将更复杂。
  
    每个硬盘表现为一个单独的设备文件。通常只能有2-4个IDE硬盘。这就是 /dev/hda , /dev/hdb , /dev/hdc , 和 /dev/hdd 。 SCSI是 /dev/sda , /dev/sdb , 等等。其他硬盘类型有类似的命名约定,更多的信息见[Anv]。注意硬盘的设备文件给出整个硬盘的存取,而不是分区(下面讨论的),因此如果不小心可能搞乱分区或数据。硬盘的设备文件只在存取主引导扇(也将在下面讨论)时使用。
  
  软盘
  
    软盘的一面或两面涂有和硬盘类似的磁性介质。软盘自己没有读写头,读写头在驱动器上。软盘相当于硬盘的一张盘片,但可移动,一个驱动器可以存取不同的软盘,而硬盘则是一个独立的单元。
  
    如同硬盘,一张软盘也分为磁道和扇区(软盘2面上的相同的磁道组成柱面),但数量要比硬盘少得多。
  
    软驱通常可以使用几中不同的盘片,例如,一个3.5'软驱可以使用720KB和1.44MB的软盘。因为软驱操作有些不同,而操作系统必须知道软盘的容量,所以软驱有许多设备文件,每个都与软驱和软盘种类有关。因此,/dev/fd0H1440 是第一个软驱(fd0),必须是3.5'软驱,使用3.5'高密度软盘(H),容量是1440KB(1440),即普通的3.5'HD软盘。软盘设备的命名约定见[Anv]。
  
    软驱的名字是复杂的,因此Linux有一个特定的软驱设备类型,能自动检测软驱中软盘的种类。它使用不同的软盘类型试图读取新插入的软盘的第一个扇区,直到找到正确的一个。这自然要求软盘是已经格式化过的。自动设备叫/dev/fd0 、/dev/fd1 等。
  
    存取软盘的自动设备的参数可用程序setfdprm 设定。这可使你使用不是通常容量的软盘,例如有非标准扇区数的软盘,或自动检测由于某种原因失败或适当的设备文件丢失。
  
    Linux除了所有标准的,还能处理许多非标准的软盘格式。这有时需要特殊的格式化程序。我们现在先跳过这些软盘格式,同时你可以查看/etc/fdprm 文件。它定义了setfdprm 识别的设定。
  
    操作系统必须知道软驱何时换了软盘,例如,以免使用上一张软盘的cache数据。不幸的是,当用于此的信号线断了或不好时,当在MSDOS中使用时,这并不总有效。如果你曾遇到过软驱的这种怪异的问题,可能是这个原因。解决这个问题的唯一方法是修理软驱。
  
  CD-ROM
  
    CD-ROM驱动器使用一个光学可读的塑料涂布的盘片。信息记录在盘片表面 的从中心的边沿的螺旋型小坑上。驱动器发出一束激光来读盘。当激光射到小坑上,激光以一种方式反射;当它射到光滑表面上,它以另一种方式反射。这很容易地编码成bit,组成信息。其他很容易,不过是机械。
  
    CD-ROM驱动器比硬盘慢。典型的硬盘的平均寻道(seek)时间小于15毫秒,而快速的CD-ROM驱动器要花零点几秒。实际数据传输率则相当快,在数百KB/s。速度慢使CDROM驱动器不能代替硬盘使用 (有些Linux distributions提供"live" CD-ROM文件系统,使之不必拷贝文件到硬盘,使安装简单并节约了许多硬盘空间),虽然是可能的。要安装新软件,CD-ROM很好,因为在安装时速度并非最重要的。
  
    有多种方法在CDROM上安排数据。最流
相关内容
赞助商链接