第4章 用户界面和硬件管理

早期的Linux操作系统采用字符界面,通过大量的命令及参数完成用户需要的操作。X Windowsystem(X窗口系统)的出现使得Linux开始走向图形用户界面。本章主要讲述Red Hat Linux 9下各种常见的用户界面的设置,各种类型的软件安装和卸载方式,以及常见硬件的检测和配置。

4.1 设置用户界面

X Windowsystem是一种图形化的Linux操作系统,其支持GU(I Graphic User Interface)环境。Linux的桌面环境,除X Window窗口管理程序外,还包含着完整的桌面应用程序套件。Linux最常见的桌面环境有KDE、GNOME、CDE、XFce等。其中桌面系统CDE(Common Desktop Environment)是商业软件,常用于Sun、HP和Alpha机器的桌面系统;Xfce界面模仿CDE,比KDE和GNOME提供的功能少,但需要内存也少;KDE(K Desktop Environment)和GNOME(GNU Network Object Model Environment)是Linux最流行的桌面环境,同时也集成了很多强大的应用工具,以下简单介绍KDE桌面系统和GNOME桌面系统。

在Red Hat Linux 9中,可以按如下步骤更改桌面系统:

(1)单击【启动程序】按钮,Linux出现【启动程序】菜单;

(2)单击【系统工具】|【更多系统工具】|【Switch Desktop Tool】菜单项,Linux出现更改桌面系统窗口。

操作过程中单击的菜单项如图4-1所示,【更改桌面系统窗口】如图4-2所示。在其中选择所需要的桌面系统即可更改桌面系统。

图4-1 切换当前桌面系统

图4-2 选择桌面系统

4.1.1 KDE桌面系统组成

KDE是为Linux系统设计开发的开放源码的图形桌面操作环境。KDE桌面如图4-3所示。

图4-3 KDE桌面

系统默认的KDE的桌面包括:

● 启动程序菜单:单击左下角的红帽标志后,可显示KDE的启动程序菜单,由此启动应用程序或注销当前的桌面系统;

● 控制面板:屏幕底部的图标,包括【Mozilla浏览器】、【Evolution电子邮件程序】等;

● 页面调度器:屏幕底部的4个小方块,KDE支持任意数量的【虚拟桌面】;

● 工作栏:默认在桌面上显示【回收站】、【Floppy】、【从这里开始】和【起点】;

● KDE帮助中心:在【KDE帮助窗口】中,用户可通过联机帮助学习Linux;

● KDE控制中心(KDE ControlCenter):在【KDE控制中心】可以设置大部分的配置内容,包括区域和辅助功能、外观和主题、声音和多媒体、外设和系统管理等;

● Konqueror浏览器:它不仅是Web浏览器,还可作为文件管理器。

另外,KDE还提供了许多图形界面应用程序,如系统管理程序、实用工具、游戏、图像处理程序、网络程序、多媒体程序和KDE开发工具等。

4.1.2 GNOME桌面系统

GNOME(GNU Network ObjectModel Environment)类似KDE桌面系统,也拥有一个友好的用户界面,并且提供了许多实用工具和应用程序。由于Red Hat Linux从版本9开始为GNOME和KDE创建了主题,因此两个桌面环境在外观和操作上基本都是一致的。GNOME桌面如图4-4所示。

图4-4 GNOME桌面

默认的GNOME桌面包括以下几部分。

● GNOME控制中心(GNOME Control Center):选项即进入GNOME的控制中心窗口,用户可在此处更改有关【屏幕保护程序】、【背景】、【字体】、【主题】和【首选应用程序】等桌面环境的选项。按如下步骤可以进入GNOME控制中心窗口:

(1)单击【启动程序】按钮,Linux出现【启动程序】菜单;

(2)单击【首选项】|【控制中心】菜单项,Linux出现【控制中心】窗口。

● 文件管理器Nautilus:单击桌面上的【root的主目录】的图标,即可打开文件管理的窗口,Nautilus与KDE的Koqueror相似,但不具有Web浏览器功能。

● 登录屏幕设置:在【登录屏幕设置】窗口中,选择【图形欢迎程序】选项,即可更改登录界面。按照如下步骤可以进入【登录屏幕设置】窗口:单击【启动程序】|【系统设置】|【登录屏幕设置】菜单项,出现【登录屏幕设置】窗口。

● 硬件浏览器:详细列出机器硬件信息,按照如下步骤可以进入【登录屏幕设置】窗口:单击【启动程序】|【系统工具】|【硬件浏览器】菜单项,出现【硬件浏览器】窗口。

GNOME的基本特性与KDE基本相同,桌面系统也只有稍微区别。下面以Red Hat Linux 9的GNOME桌面系统为例,说明Linux常用的用户界面设置。KDE桌面系统下用户界面设置与此类似。

4.1.3 设置文件浏览界面

设置文件浏览界面可以使文件浏览界面更适合用户个性化需要。用户可以很方便地更改文件浏览界面,甚至可以自己编写个性化界面设置的程序来完成界面设置。

1.背景和颜色

设置文件浏览器Nautilus的背景和颜色。按如下步骤可以进入【登录屏幕设置】窗口:

(1)双击桌面上【主目录】图标,Linux出现【文件浏览器Nautilus】窗口;

(2)单击【编辑】|【背景和徽标】菜单项,Linux出现【背景和徽标】窗口。

图4-5 显示背景和徽标设置窗口及Nautilus默认背景和颜色。若欲以某个图案作为Nautilus的背景,可以在【背景和徽标】窗口中单击【图案】选项卡,然后拖动某个图案到Nautilus窗口即可。图4-6显示Nautilus背景图案为“伪装”的效果。Red Hat Linux 9也可以使用某种颜色作为Nautilus的背景。

图4-5 背景和徽标设置之前

图4-6 设置背景图案为“伪装”

徽标是用来标志Nautilus各种对象,例如图4-6中【Desktop】文件夹就添加了一个“认证”的徽标。

2.侧栏

用于在Nautilus显示或隐藏侧栏。执行上述操作打开Nautilus窗口,单击窗口中【查看】菜单,窗口出现【查看】下拉菜单,单击【侧栏】菜单项,即可实现侧栏的显示或隐藏。快捷键F9亦可完成相同的功能。用户还可以选择侧栏中显示的内容。侧栏中选择【信息】即可在侧栏中显示当前对象的属性信息,如文件大小,建立时间等;选择【历史】即可在侧栏中显示浏览历史记录;选择【徽标】将在侧栏显示所有徽标;选择【树】将在侧栏显示操作系统目录树结构;选择【注释】即可显示当前对象的注释信息,亦可对当前对象添加或修改注释。图4-7给出了侧栏中显示目录树的显示结果。

图4-7 侧栏中显示系统目录树

3.显示方式

用于控制Nautilus中对象的显示方式。常用的显示方式有两种:View as List和View as Icon。图4-7给出了View as Icon的显示结果,图4-8给出了View as List的显示结果。在Nautilus窗口工具栏下面有一个下拉菜单用于调整Nautilus的显示方式。

图4-8 View as List的显示结果

4.显示大小

用于调整Nautilus中对象的图标大小。在执行前述操作打开的Nautilus窗口中,单击【查看】菜单,窗口将出现【查看】下拉菜单,单击【放大】菜单项可以将Nautilus中对象的图标放大,单击【缩小】菜单项可以将Nautilus中对象的图标缩小,亦可以使用“+”工具按钮实现对象图标的放大,使用“-”工具按钮实现对象图标的缩小。“+”工具按钮和“-”工具按钮中间显示图标的显示比例。用[Ctrl++]组合键和[Ctrl+-]组合键亦可分别实现图标的放大和缩小。从图4-5到图4-7显示了图标按100%比例的显示结果,图4-8显示了图标按75%比例的显示结果。

4.1.4 控制中心

用户的许多设置都可以在控制中心完成。用户可以按照如下步骤进入【控制中心】窗口:单击【启动程序】|【首选项】|【控制中心】菜单项,将进入控制中心。在这里可以完成以下的各种配置。

● 关于您自己:在执行前述操作打开的【控制中心】窗口中,双击【关于您你自己】图标即可打开【关于您自己】配置窗口,用于配置用户的基本信息。包括办公室地址、办公室电话、家庭电话和登录shell,【关于您自己】配置窗口如图4-9所示。

图4-9 【关于您自己】设置窗口

● 主题:配置用户显示主题。在执行前述操作打开的【控制中心】窗口中,双击【主题】图标即可打开【主题】配置窗口,如图4-10所示。单击其中某个主题,文件浏览器Nautilus就将按照该主题的显示方式显示其对象。选择好主题后单击【关闭】按钮即完成主题的配置。Red Hat Linux 9默认的主题是BlueCurve。图4-1至图4-10所示的Nautilus的显示主题均为BlueCurve。

图4-10 配置窗口的显示主题

● 屏幕保护程序:设置系统屏幕保护程序,其作用和Windows下的屏幕保护程序是完全一样的,在此不再详述。

● 窗口:配置窗口的显示模式。在执行上述操作打开的【控制中心】窗口中,双击【窗口】图标即可打开【窗口】配置窗口,如图4-11所示。选中“鼠标移动到窗口之上时选中该窗口”复选框表示当用户鼠标移动到某个窗口之上时不用单击该窗口即选中该窗口,默认是单击窗口才选中该窗口;“双击标题栏执行此操作”下拉框有两个选项,若选择“最大化”,双击窗口标题栏则最大化该窗口;Red Hat Linux 9默认选择“卷起”,即双击窗口标题栏后将窗体卷起,只显示窗口标题栏。亦可通过此窗口配置移动窗口时需要按下的功能键,并有Ctrl、Alt和Super三个选项。

图4-11 配置窗口的显示模式

● 背景:选择桌面背景。在执行上述操作打开的【控制中心】窗口中,双击【背景】图标即可打开【窗口】配置窗口,如图4-12 所示。在单击【选择图片】,Linux显示选择文件对话框,可以通过该对话框选择一幅图片用做用户桌面背景,还可以设置背景图片的显示选项。

图4-12 配置桌面背景

● 菜单和工具栏:设置菜单和工具栏的显示首选项。在执行上述操作打开的【控制中心】窗口中,双击【菜单和工具栏】图标即可打开【菜单和工具栏】配置窗口,如图4-13所示,通过此窗口可以设置按钮标签的位置,可以选择“标签在图标之右”、“标签在图标之下”、“只有标签”和“只有图标”四种位置。“示例工具栏”显示了用户选择的效果。若选中“工具栏可从界面中分离并移动位置”复选框,则Nautilus窗口中的工具栏可以浮动在窗口的任何位置。若选中“在菜单中显示图标(I)”复选框,含有图标的菜单项将显示其对应图标。“示例菜单栏”给出了菜单的显示效果。

图4-13 配置菜单和工具栏

● 快捷键:用于设置常用的快捷键。在执行前述操作打开的【控制中心】窗口中,双击【快捷键】图标,即可打开【快捷键】配置窗口,如图4-14所示。

图4-14 配置常用的快捷键

快捷键有两种:文本编辑快捷键和桌面快捷键。文本快捷键可以从“Emacs”和“GNOME Default”中选择。Emacs和GNOME各定义了自己的文本快捷键,如复制文本,粘贴文本,删除一行文本等快捷键,用户可以选择喜欢的文本快捷键类型。桌面快捷键有“显示运行对话框”等,用鼠标单击某项快捷键,然后输入一组组合键即完成该项快捷键的设置。

● 其他设置:在控制中心还有很多其他配置选项,例如CD Properties、口令、字体、文件类型和相关程序、登录照片、网络代理等,这里不再详述,读者可以通过实际操作了解其他具体功能。

4.2 检测硬件(实务8)

计算机系统是由软件系统和硬件系统组成的。检测硬件状态对于保障整个系统的稳定是非常重要的。本节将介绍在Linux环境下计算机系统的CPU、硬盘、内存进行检测方法。

4.2.1 检测CPU

中央处理器是Linux主机的核心硬件,其运行状态严重地影响了系统的运行,因此有必要对其状态进行检测。在Linux根目录下有一个名叫proc的子目录。该目录下的文件其实不是存放在磁盘上的物理文件,而只是系统内核的映像,所以一般将该目录的文件系统叫做PROC文件系统。PROC文件系统以文件系统的方式为访问系统内核数据提供接口。用户和应用程序都可以通过PROC文件系统动态地得到系统的信息,并可以改变内核的某些参数。CPU的信息存放在“cpuinfo”文件中,笔者在自己系统中使用cat命令查看结果如下:

      #cat /proc/cpuinfo                  //cat命令用于查看文件内容
      processor      : 0                  //CPU序号,表明第0号CPU
      vendor_id      : GenuineIntel       //CPU生产厂商
      cpu family     : 6
      model          : 15
      model name     : Intel(R) Core(TM)2 Duo CPU    T5250  @ 1.50GHz
      stepping       : 8
      cpu MHz        : 1500.082           //CPU主频
      cache size      : 0 KB
      fdiv_bug       : no
      hlt_bug        : no
      f00f_bug       : no
      coma_bug       : no
      fpu            : yes
      fpu_exception   : yes
      cpuid level    : 10
      wp             : yes
      flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
  cmov
      pat pse36 clflush dts acpi mmx fxsr sse sse2 ss
      bogomips       : 3001.54

以上cat命令只是显示CPU的基本情况,下面介绍使用软件实时检测CPU状态,该软件就是mbmon。首先到网上下载该软件,下载地址为:http://www.nt.phys.kyushu-u.ac.jp/shimizu/ download/xmbmon203.tar.gz。Readme文件的选择地址为:http://www.nt.phys. kyushu-u.ac.jp/shimizu/download/README-xmbmon203.html。先查看一下软件是否支持主板芯片,如果支持主板芯片,接下来就可以安装软件。

      #gunzip xmbmon203.tar.gz        //解压缩文件
      #tar xmbmon203.tar              //对文件解包
      #cd xmbmon203                   //更换到其源代码目录
      #./configure                    //配置系统
      #make                           //连接,生成可执行文件
      #make install                   //安装到系统目录

运行软件mbmon可以在命令行和X Window下工作,只要在命令行执行以下命令:

      #./mbmon
      Temp. = 42.1,33.0,24.2; Rot.= 5357,0,0
      Vcore = 1.78,3.11; Volt. = 3.41,4.93,12.19,0.00,0.00

上面显示了中央处理器温度为42.1℃,电源温度为33.0℃,主板温度为24.2℃;CPU风扇转速为5357r/min;CPU核心电压为1.78V,输入电压为12.19V、3.41V,4.93V。默认情况下,以上内容五秒钟更新一次记录。

4.2.2 检测硬盘

硬盘物理坏道是硬盘的所有Linux硬件故障中最让人头痛的。硬盘若出现坏道,轻则使系统频频死机,重则让硬盘上所有数据化为乌有。现在出厂的硬盘(1993年以后)基本上都支持SMART技术(Self Monitoring Analysis and Reporting Technology,自动检测分析及报告技术)。SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测。

Smartmontools是一个硬盘检测工具,主页为http://smartmontools.sourceforge.net,现在已经有多个操作系统下的版本。Linux下的RPM执行文件可以到以下地址下载:http://jaist.dl. sourceforge.net/sourceforge/smartsuite/smartsuite-2.1-2.i386.rpm。

将smartsuite-2.1-2.i386.rpm文件下载到本地硬盘后即可用下面的命令安装该软件:

      #rpm -ivh /smartmontools-5.1-18.i386.rpm

安装完成后会在/usr/local目录下产生可执行程序smartctl,执行带参数-i的smartctl命令可以检测硬盘和主板是否支持SMART技术。如果硬盘不支持SMART技术,执行命令后系统将显示“Device does not support S.M.A.R.T.”,否则将显示硬盘的一些类似如下的重要信息:

      #smartctl -i /dev/hda7
      smartctl version 5.1-11 Copyright (C) 2004-3 Bruce Allen
      Home page is http://smartmontools.sourceforge.net/
      //以下是硬盘参数信息部分
      === START OF INFORMATION SECTION ===
      Device Model:     ST340810A //设备模型
      Serial Number:    3FB24J16  //序列号
      Firmware Version: 3.39      //固件版本号
      Device is:       Not in smartctl database [for details use: -P showall]
      ATA Version is:   6
      ATA Standard is:  Exact ATA specification draft version not indicated
      Local Time is:    Tue Jun  7 20:39:322005 CST
      SMART support is: Available - device has SMART capability.
      SMART support is: Enabled

带-A参数的smartctl命令,显示的是检测到的硬盘数据部分,显示结果如下:

      #smartctl -A /dev/hda7
      smartctl version 5.1-11 Copyright (C) 2004-3 Bruce Allen
      Home page is http://smartmontools.sourceforge.net/
      //以下是SMART读取到的硬盘数据部分
      === START OF READ SMART DATA SECTION ===
      SMART Attributes Data Structure revision number: 16
      Vendor Specific SMART Attributes with Thresholds:
      ID# ATTRIBUTE_NAME  FLAG VALUE WORST THRESH TYPE  WHEN_FAILED RAW_VALUE
      1 Raw_Read_Error_Rate   0x000f   065   057   025   Pre-fail  -   118060682
      3 Spin_Up_Time          0x0003   098   098   000   Pre-fail  -   0
      4 Start_Stop_Count      0x0032   100   100   020   Old_age   -   903  5
      5 Reallocated_Sector_Ct 0x0033   100   100   036   Pre-fail  -   0
      7 Seek_Error_Rate           0x000f 068  060030  Pre-fail-   47303788041
      9 Power_On_Hours            0x0032096  096000  Old_age  -  4001
      10 Spin_Retry_Count         0x0013100  099097  Pre-fail-   0
      12  Power_Cycle_Count       0x0032099  099020  Old_age  -  1291
      194 Temperature_Celsius     0x0022042  050000  Old_age  -  42
      195 Hardware_ECC_Recovered 0x001a 100   253000  Old_age  -  0
      197 Current_Pending_Sector 0x0012100   100000  Old_age  -  0
      198 Offline_Uncorrectable   0x0010100  100000  Old_age  -  0
      199 UDMA_CRC_Error_Count    0x003e 200  200000  Old_age  -  0
      200 Multi_Zone_Error_Rate   0x0000100  253000  Old_age  -  0
      202 Unknown_Attribute       0x0032100  253000  Old_age  -  0

其中用ID#标记的1到202的各行代表硬盘的不同物理性能,如Raw_Read_Error_Rate(硬盘的原始数据出错率)。各列分别表示硬盘的某个逻辑状态,FLAG是标记,VALUE(标准数值)应当小于或等于THRESH(门槛值),WHEN_FAILED代表错误信息。WHEN_FAILED属性列在各行均显示为“-”表明硬盘没有出过故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有较多的坏磁道。

4.2.3 检测内存

人们通常认为:内存出错损坏的可能性不大,即使如果内存坏了,那么系统将不可能通过主板BIOS的开机自检程序。但是事实上主板BIOS的自检程序功能很少,而且只是检测容量速度而已,许多内存错误并不能检测出来。下面就介绍一下Linux中内存检测的方法。

● 用Linux命令检测。在命令行使用“free”命令可以监控内存使用情况,笔者在自己的系统下运行free命令,显示结果如下:

      #free
                total      used       free    shared   buffers    cached
      Mem:       255264    201868     53396         0     14492     81160
      -/+ buffers/cache:    106216    149048
      Swap:     1116508         0   1116508

● 用vmstat命令监视虚拟内存使用情况

      #vmstat
      procs                   memory     swap      io   system     cpu
      r  b  w   swpd  free   buff   cache  si  so  bi   bo in   cs  us  sy  id
      0  0  0     0   53396  14576  81180  0   0   62   25112 224 1    2   97

vmstat命令是一个通用监控程序,是Virtual Meomory Statistics(虚拟内存统计)的缩写。如果使用Vmstat命令的时候没有使用它的任何命令行参数,则将得到一个一次性的报告。Vmstat命令报告的主要的活动类型有进程、内存、交换分区、来自块设备(硬盘驱动器)的输入输出量、系统中断频率、中央处理单元分配给用户系统和空闲时间分别占用比例等。

● 使用工具软件检测

Memtest86是一款免费的内存测试软件,测试准确度比较高,内存的隐性问题也能检查出来。可以到http://www.memtest86.com/页面下载它的最新3.2版本。

(1)软件安装:

      #tar xzvf memtest86-3.2.tar.gz
      #cd memtest86-2.5
      #make

(2)将一张3.5英寸空白磁盘插入到软盘驱动器,并输入如下命令:

      #make install

另外也可以下载http://www.memtest86.com/memtest86-3.2.iso.gz文件,将解压后的ISO文件,刻录到光盘,再启动计算机。重新启动计算机,在BIOS中设定用软驱或者光驱启动即可系统启动后软件将显示当前系统的CPU型号、主频、一级缓存和二级缓存的大小、物理内存容量、速度、主板芯片组类型以及测试进度等信息。

4.3 配置硬件(实务9)

作为桌面软件,Linux的硬件配置一直是一件麻烦的事情,而且Linux支持的硬件数量有限,其配置过程也比较烦琐。现在许多厂商和组织积极参加Linux下驱动程序的开发工作,许多硬件配置过程也开始变得简单。

4.3.1 配置声卡

这里介绍一套Linux下的万能声卡驱动程序包ALSA(Advanced Linux Sound Architecture)。ALSA是GNU下的软件之一,可以支持大多数流行的声卡。其采用模块化架构,支持全双工、数字音频等声卡特性。ALSA要求Linux内核版本在2.2.x之上。想获得ALSA的更多信息请浏览其网页:http://www.alsa-project.org。

● 支持的声卡类型:ALSA现在的最新版本为1.0.9a,其支持的声卡比较多,下面列出其支持的部分声卡。ALSA支持的全部声卡可以访问其网站获得。如果用户声卡不在其支持的范围内,用户也许将不能使用该驱动程序。

      ID: SoundCard chipset/type  //ID表示声卡芯片组类型
      SC: SoundCard name           //SC声卡名称
      IF: Supported interfaces(MIXER,PCM,SYNTH,SYNTH_MIDI,SEQ,OPL,MIDI,EMUL,
      HWDEP)                      //IF声卡支持接口
      MA: Maintainer               //维护者
      CO: Coder                    //CO表示编码人
      ID: AMD InterWave
      SC: Gravis UltraSound Plug & Play
      SC: Dynasonic 4-D
      SC: STB Sound Rage 32
      SC: UltraSound 34-Pro (STB)
      SC: MED3210
      IF: MIXER,PCM,MIDI,SYNTH
      MA: Jaroslav Kysela <perex@suse.cz>
      ID: Gravis UltraSound MAX
      IF: MIXER,PCM,MIDI,SYNTH
      MA: Jaroslav Kysela <perex@suse.cz>
      ID: Gravis UltraSound Extreme
      SC: Synergy ViperMax
      IF: MIXER,PCM,MIDI,SYNTH
      MA: Jaroslav Kysela <perex@suse.cz>
      ID: Gravis UltraSound Classic/ACE
      IF: MIXER,PCM,SYNTH
      MA: Jaroslav Kysela <perex@suse.cz>
      ID: ESS AudioDrive ESx688
      IF: MIXER,PCM,MIDI(1688)
      MA: Jaroslav Kysela <perex@suse.cz>
      ID: SoundBlaster 1.0/2.0/Pro
      IF: MIXER (Pro only),PCM,MIDI
      CO: Jaroslav Kysela <perex@suse.cz>
      MA: Chris Butler <chrisb@sandy.force9.co.uk>
      ......

● 软件的下载:ALSA声卡驱动程序最新的版本是1.0.9a版,其文件名为alsa-driver-1.0.9 a.tar.bz2。在ftp://ftp.alsa-project.org的/pub/driver/目录下载名为alsa-driver-1.0.9a.tar.bz2 的文件。除了要下载驱动程序文件外,一般还需要下载lib文件和utils文件,其文件名分别为alsa-lib-1.0.9.tar.bz2和alsa-utils-1.0.9.tar.bz2,其下 载 地 址 分 别 为:ftp://ftp.alsa- project.org/pub/lib/alsa-lib-1.0.9.tar.bz2 和ftp://ftp.alsa-project. org/pub/utils/alsa-utils-1.0.9. tar.bz2。

● 将这三个文件复制到同一个目录下。

● 软件的安装:将上述三个文件复制到同一个目录后,首先对其进行解压缩,然后分别对其进行安装,详细安装过程如下所示。

      #bzip2-dv alsa-driver-1.0.9a.tar.bz2   //对文件解压缩
      #tar vfx alsa-driver-1.0.9a.tar         //将tar文件解包
      #cd alsa-driver-1.0.9a                  //进入相应的子目录alsa-driver-1.0.9a
      #./configure                            //配置系统
      #make install                           //编译程序
      #./snddevices                           //脚本程序创建有关声卡设备
      #bzip2-dv  alsa-lib-1.0.9a.tar.bz2     //解压缩文件
      #tar vfx alsa-lib-1.0.9a.tar.bz2        //将文件解包
      #cd alsa-lib-1.0.9a                     //进入相应的子目录alsa-lib-1.0.9a
      #./configure                            //配置系统
      #make install                           //编译程序
      #cd alsa-utils-1.0.9a                   //进入相应的子目录alsa-utils-1.0.9a
      #./configure                            //配置系统
      #make install                           //编译程序

● 软件的配置:在/etc目录下建立modules.conf文件,使用任何一种文本编辑器,打开此文件,加入下列内容:

      #ALSA portion
      //ALSA使用的主设备号码
      alias char-major-116 snd
      //snd-card-0是系统里面第一个声卡设备,如果系统有两个以上声卡,可以使用snd-card-1、
      //snd-card-2等方法映射
      //snd-card-ymfpci是声卡设备名称.
      //OSS /free portion----因为ALSA需要内核中OSS SoundCore和其他设备的支持
      alias snd-card-0 snd-card-ymfpci
      //系统中soundcore的主设备号码
      alias char-major-14 soundcore
      //第一个声卡对应的插槽,下面是声卡驱动模块,sound-service-0指第一块声卡,
      //如果系统里面只有一块,原封不动复制即可。否则按照此格式加入其他声卡驱动模块
      alias sound-slot-0 snd-card-0
      alias sound-service-0-0 snd-mixer-oss
      alias sound-service-0-1 snd-seq-oss
      alias sound-service-0-3 snd-pcm-oss
      alias sound-service-0-8 snd-seq-oss
      alias sound-service-0-12 snd-pcm-oss

● 系统测试和声卡设备调整:主要包括如下几个方面:

(1)测试模块是否正常加载:输入命令:modprobe snd-card-ymfpci。如果系统直接进入提示符状态,表明加载正常;

(2)调节音量:输入命令amixer,给出部分显示结果如下:

      Capabilities: volume
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 16383
      Front-Left: 0 [0%] [on] [---]
      Front-Right: 0 [0%] [on] [---]
      Group ’ADC Record’,0
      Capabilities: volume
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 16383
      Front-Left: 0 [0%] [on] [---]
      Front-Right: 0 [0%] [on] [---]
      Group ’Capture Volume’,0
      Capabilities: volume
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 16383
      Front-Left: 0 [0%] [on] [---]
      Front-Right: 0 [0%] [on] [---]
      Group ’Input Gain’,0
      Capabilities: volume mute jointly-mute
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 15
      Front-Left: 0 [0%] [mute] [---]
      Front-Right: 0 [0%] [mute] [---]
      Group ’Master Mono’,0
      Capabilities: volume mute capture exclusive-capture
      Capture exclusive group: 1
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 31
      Front-Left: 0 [0%] [mute] [---]
      Front-Right: 0 [0%] [mute] [---]
      Group ’Master’,0
      Capabilities: volume mute jointly-mute capture exclusive-capture
      Capture exclusive group: 1
      Channels: Front-Left Front-Right
      Limits: min = 0,max = 31
      Front-Left: 0 [0%] [mute] [---]
      Front-Right: 0 [0%] [mute] [---]
      Group ’Aux’,0
      ......

这表明声卡驱动默认状态是静音,所以要使用程序调节合适的音量;

(3)保存配置参数:使用alsactl store命令即可保存系统配置。该命令在/etc目录下建立一个配置文件asound.conf,该文件保存了声卡的配置信息。如果对修改后的配置不满意,可以使用alsactl restore命令恢复默认配置。

4.3.2 配置X Window及显示卡

X Window的配置正确与否,会影响到Linux GUI(图形用户界面)的使用。在Linux中,X Window的配置文件是/etc/X11/XF86Config,这个文件的内容很复杂,此处不做详细介绍,只介绍在使用软件配置X Window时应注意的问题。欲使X Window正常工作的关键是使用的X Server与系统显示卡一致。在设置X Window的时候,调用Xconfigurator、XF86Setup或x86config程序可以方便地设置X Window,而没有必要手工修改XF86Config文件。

Xconfigurator是个不错的设置程序。使用Xconfigurator的时候,系统可以自动检测出显示卡的类型,并且一般可以正确设置它;如果程序没有检测到系统显示卡类型,用户可以在显示卡列表中选择自己的显示卡,设置程序就会正确地设置X Server。如显示卡类型没有在列表中出现,那么不妨就使用XF86_SVGA作为X Window的Server,试验一下X Window能否正常工作,因为这个X Server兼容最多类型的显示卡。一般来讲,目前市面上80%以上的显示卡都可以被这个Server支持,包括Geforce 4、TNT系列(要求Xfree86在3.3.6或者以上版本)。如果仍然不能运行,则需要寻找最新的显示卡驱动程序了。

除了设置X Server以外,设置显示器的分辨率对于X Window能否正常工作也至关重要。设置何种分辨率取决于显示器的类型。在设置程序中,如果显示器类型在列表中出现,那么选定它就可以了,如果没有出现,那么可以选择custom项(自定义模式),在随后的显示器列表中选择一款合适的显示器类型就可以了。

以Xconfigurator设置程序为例,在它的列表中,就可以选择分辨率和刷新率,用户可以参照显示器的技术指标来选择正确的项目。如果用户不知道显示器的性能指标,不妨从最低的性能开始试验,直到确定合适的显示器类型为止。在设置了显示器类型后,就可以运行startx程序启动X Window。

如果要在图形界面下更改分辨率和颜色,可以按照如下步骤进入【显示设置】窗口:单击【启动程序】|【系统设置】|【显示】菜单项,Linux出现【显示设置】窗口,如图4-15所示。

图4-15 显示设置窗口【显示(D)】选项卡

在【显示设置】窗口中,单击【显示(D)】选项卡,可以在此处配置系统显示分辨率和色彩深度;单击【高级(A)】选项卡,系统显示结果如图4-16 所示。单击显示器类型右侧【配置】按钮可以配置显示器类型、显示器水平刷新频率、显示器垂直刷新频率等;单击【设置DPI】按钮可以设置显示器物理分辨率,包括显示器宽度和高度等信息;单击视频卡右侧【配置】按钮可以配置显卡类型和显卡驱动程序。

图4-16 显示设置窗口【高级(A)】选项卡

4.3.3 配置网卡

在安装Linux时,如果用户机器有网卡,安装程序将提示用户给出TCP/IP网络的配置参数,如本机的IP地址、默认网关的IP地址、DNS的IP地址等。根据这些配置参数,安装程序会自动地把网卡驱动程序编译到内核中去。网卡的驱动程序是作为模块加载到内核中去的,所有Linux支持的网卡驱动程序都是存放在目录/lib/modules/(Linux版本号)/net/。用户可以通过修改模块配置文件来更换网卡或者增加网卡。

1.修改/etc/conf.modules文件

这个配置文件是加载模块的重要参数文件,下面是一个范例文件:

       #/etc/conf.modules
      alias eth0 eepro100
      alias eth1 eepro100

这个文件是一个装有两块inter 82559系列网卡的Linux系统的conf.modules的内容,alias命令表明以太口(如eth0)所具有的驱动程序的名称,“alias eth0 eepro100”说明在0号以太网口所要加载的驱动程序是eepro100(其目标文件为eepro100.o)。

2.驱动程序加载

修改了/etc/conf.modules文件后,若使用命令“modprobe eth0”的时候,系统将自动地把eepro100.o加载到内核中。对于PCI的网卡来说,由于系统会自动找到网卡的I/O地址和中断号,所以没有必要在conf.modules中使用选项options来指定网卡的I/O地址和中断号。但对于ISA网卡,则必须要在conf.modules中指定硬件的I/O地址或中断号。表明一块NE的ISA网卡的conf.modules文件,如下所示:

       alias eth0 ne
      options ne io=0x300 irq=5

在修改完conf.modules文件之后,还可以使用相关的命令完成其他操作,例如要加载inter的第二块网卡的驱动程序模块,可以使用下面的命令:

      #insmod  /lib/modules/2.2.14/net/eepro100.o

3.查看已加载模块:

在以太口加载模块的同时,还使用命令“lsmod”来查看当前加载的模块信息。

      #lsmod
      Module Size Used by
      eepro10015652 2 (autoclean)

返回结果的含义是当前加载的模块是eepro100,大小是15652个字节,使用者为两个,方式是自动清除。

4.3.4 配置打印机

Red Hat Linux 9为多数打印机型号提供了驱动程序,除非在个别的情况下Red Hat Linux 9没有提供驱动程序外,用户要做的工作也只不过是把打印机连接到Red Hat Linux 9系统上然后使用Red Hat Linux 9提供的工具来配置它。该工具允许用户在Red Hat Linux 9上配置打印机,为维护打印机配置文件、打印假脱机目录和打印过滤器提供协助。打印机配置包括本地打印机配置和网络打印机配置,还包括了一个用来配置本地和远程打印机的图形化工具。通过该图形化工具用户就不必再安装额外的驱动程序和应用程序。打印机配置工具使用渐进的步骤来帮助你配置打印机。本地打印机是指通过并行端口或USB端口连接到用户机器的打印机,网络打印机是指没有直接通过并行端口或USB端口连接到用户机器、而是连接到网络上的另外一台机器上的打印机。

单击【启动程序】|【系统工具】|单击【Printer Manager】菜单项,Linux出现【打印机配置】窗口。

1.配置本地打印机

(1)在【打印机配置】窗口中单击【新建】工具按钮,Linux出现【添加一个新打印机队列】窗口,如图4-17所示。单击【前进】按钮进入下一个画面。

图4-17 添加一个新打印机队列窗口

(2)系统显示【队列名称】窗口,如图4-18所示。可以在【名称】文本框中输入打印机名称,在【简短描述】文本框中输入打印机描述信息,方便用户记忆。

图4-18 队列命名窗口

(3)此处欲安装本地打印机,所以选择【本地连接】队列类型,如图4-19所示。单击【前进】按钮进入下一个画面。

图4-19 队列类型窗口

(4)选择打印机生产厂商及型号,如图4-20所示,单击【前进】按钮进入下一个画面。

图4-20 选择打印机生产厂商及型号

(5)创建新打印机结束,如图4-21所示。

图4-21 结束并创建新打印机队列

(6)系统询问是否打印测试页,如图4-22所示。如需要打印测试页,单击【是(Y)】按钮,如不想打印则单击【否(N)】按钮。

图4-22 是否打印测试页

2.配置网络打印机

配置网络打印机和配置本地打印机的过程基本类似,只要将配置本地打印机步骤3选择合适的联网打印机并指定相应的打印服务器地址即可。Linux下可以与各种系统的打印服务器相连,常见的有“联网的CUPS”打印机,“联网的UNIX”打印机,“联网的Windows”打印机,“联网的Novell”打印机和“联网的JetDirect”打印机等。用户可以根据自己的打印服务器操作系统选择相应类型,并且指定服务器地址,如图4-23所示。

图4-23 选择队列类型选择联网类型

3.共享打印机

用户还可以将本地打印机共享,供网络上其他用户使用。在前述打开的【打印机配置】窗口中,单击【行动】菜单,系统出现【行动】下拉菜单,选择【共享】子菜单,系统打开【共享属性】窗口,如图4-24所示。单击【该队列对其他用户可用】复选框,即可以编辑允许共享的主机。

图4-24 共享打印机属性设置窗口

4.测试打印机

本节以本地打印为例,使用上述配置好的打印机(打印机名称为printer,如图4-18所示)测试文档打印过程,网络打印与该过程类似。具体操作步骤如下。

(1)在Linux系统下打开一个OpenOffice Writer文档(相当于Windows下的Microsoft Word文档),如图4-25所示,单击【文件(F)】|【打印(P)】菜单项,系统弹出【打印】对话框。

图4-25 打印OpenOffic Writer文档

(2)在如图4-26所示【打印】对话框中选择打印机名称、打印区域以及打印份数等打印参数,选定后单击【确定】按钮即可开始打印。

图4-26 选择打印参数

4.4 管理磁盘存储器(实务10)

磁盘存储器是Linux系统中一项非常重要的资源,如何对其进行有效的管理直接关系到整个系统的性能问题。本节将介绍Linux系统如何对磁盘进行管理以及磁盘的优化问题。

4.4.1 掌握存储设备的命名

Linux的命名设计比其他操作系统更灵活,它对存储设备的管理如同对文件的管理一样方便、高效。Linux通过字母和数字的组合来标识硬盘分区,如hda1,其具体含义是:分区名的前两个字母表明分区所在设备的类型,例如hd指IDE硬盘,sd指SCSI硬盘;第三个字母表明分区在哪个设备,按a,b,c,d的顺序排列,如hda是IDE 1口的主硬盘,则IDE 2口的主硬盘就应该是hdb了;最后的数字是在该设备上的分区顺序,前四个分区(主分区或扩展分区)用数字1到4表示,从5开始表示逻辑分区,例如:hda3表示第一个IDE硬盘上的第三个主分区或扩展分区。

硬盘的基本命名方式如表4-1所示。

表4-1 硬盘命名方式示意表

上述主要是针对硬盘驱动器的分区,在Linux系统中,也存在着软盘设备,只不过近年来由于USB设备的普遍使用,使得软盘设备的使用大为减少。系统通常使用/dev/fd来表示第一个软盘设备,如/dev/fd0表示第一个软盘分区,其他表示与上述硬盘设备的命令类似。

4.4.2 管理磁盘空间

在Linux系统中,磁盘存储空间与CPU资源一样非常宝贵;因而,如何有效地对存储空间加以使用和管理是一项非常重要的技术。Linux系统提供了一组有关磁盘空间管理的命令,能够随时监视磁盘空间的使用情况,用户可以通过使用这些命令来获知磁盘空间的信息,从而采取各种手段(如清除垃圾文件等)来释放空间,达到合理利用磁盘空间的目的。

1.使用df命令检查文件系统磁盘占用情况

该命令的功能是检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。

该命令的使用形式为:df [选项]。

该命令各个选项的含义如下:

● -a:显示所有文件系统的磁盘使用情况,包括0 块(block)的文件系统,如/proc文件系统;

● -k:以k字节为单位显示;

● -i:显示i节点信息,而不是磁盘块;

● -t:显示各指定类型的文件系统的磁盘空间使用情况;

● -x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反);

● -T:显示文件系统类型。

下面给出使用该命令的例子:

      //列出各文件系统的磁盘空间使用情况
      #df
      Filesystem          1k-blocks     Used   Available Use% Mounted on
      /dev/hda5             381139    332921    28540   93% /
      /dev/hda1              46636     6871    37357  16% /boot
      /dev/hda3           10041144   6632528   2898556  70% /home
      none                 127372       0   127372   0% /dev/shm
      /dev/hda2           27474876  24130460   1948772  93% /usr
      /dev/hda6             256667   232729    10686  96% /var

df命令输出清单的第1列代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3、4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪,第3、4列块数之和不等于第2列中的块数。这是因为默认的每个分区都留了少量空间供系统管理员使用的缘故。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use%列表示普通用户空间使用的百分比,若这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。

      //列出各文件系统的i节点使用情况。
      #df -ia
      Filesystem              Inodes     IUsed    IFree       IUse%   Mounted on
      /dev/hda5               98392      23919    74473       25%     /
      none                    0          0        0           -       /proc
      /dev/hda1               12048      38       12010       1%      /boot
      none                    0          0        0           -       /dev/pts
      /dev/hda3               1275456    355008   920448      28%     /home
      none                    31843      1        31842       1%      /dev/shm
      /dev/hda2               3489792    133637   3356155     4%      /usr
      /dev/hda6               6264       9876     56388       15%     /var
      //列出文件系统的类型。
      #df -T
      Filesystem     Type     1k-blocks  Used     Available   Use%    Mounted on
      /dev/hda5      ext3     381139     332921   28540       93%     /
      /dev/hda1      ext3     46636      6871     37357       16%     /boot
      /dev/hda3      ext3     10041144   6632528  2898556     70%     /home
      none           tmpfs    127372     0        127372      0%      /dev/shm
      /dev/hda2      ext3     27474876   241304601948772     93%     /usr
      /dev/hda6      ext3     256667     232729   10686       96%     /var2

2.使用du命令检查磁盘空间使用情况

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。

该命令的实用形式为:du [选项] [Names]。

该命令的各个选项含义如下:

● -s:对每个Names参数只给出占用的数据块总数;

● -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names的每一个目录及其各个子目录所占的磁盘块数;

● -b:以字节为单位列出磁盘空间使用情况(系统默认以K字节为单位);

● -k:以1024字节为单位列出磁盘空间使用情况;

● -c:最后再加上一个总计(系统默认设置);

● -l:计算所有的文件大小,对硬链接文件,则计算多次;

● -x:跳过在不同文件系统上的目录不予统计。

下面举例说明du命令的使用:

        //查看/mnt目录占用磁盘空间的情况
        #du -abk /mnt
        1      /mnt/cdrom
        1      /mnt/floppy
        3      /mnt
        //列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间
        #du
        3684   ./log
        84     ./libnids-1.17/doc
        720    ./libnids-1.17/src
        32     ./libnids-1.17/samples
        1064   ./libnids-1.17
        4944   .

输出清单中的第1列是以块为单位计的磁盘空间容量,第2列列出目录中使用这些空间的目录名称。

这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:

        #du -s /mnt
        3      /mnt
        //列出所有文件和目录所占的空间(使用a选项),并以字节为单位(使用b选项)来计算大小
        #du -ab /root/mail
        6144   mail/sent-mail
        1024   mail/saved-messages
        8192   mail

3.使用磁盘配额管理

磁盘是重要的存储资源,对于Linux这种多用户的操作系统来说尤为宝贵。如果某些用户过多地占有磁盘,那么其他用户的存储资源就难以得到保证,甚至对整个Linux系统的性能产生负面影响。因而,用户使用磁盘配额管理是非常必要的。

在Red Hat Linux 9中使用配额管理,需要使用该系统提供的软件包quota。在默认情况下,Red Hat Linux 9会安装和激活quota rpm包。用户可以运行如下命令来进行确认:

        #rpm -q quota

在Linux系统中,磁盘配额管理有两种方式:一种是针对特定用户进行配额管理;另一种是针对特定用户组进行管理。一般来说,实现配额管理需要如下六个基本步骤:

(1)修改/etc/fstab配置文件,对所选文件系统激活配额选项;

(2)重新装载文件系统,使改变生效;

(3)在该文件系统开头建立aquota.user或者aquota.grup文件;

(4)扫描相应文件系统,用quotacheck命令将步骤(3)建立的文件进行格式化,生成基本的配额文件;

(5)用edquota命令,对特定用户/用户组采用配额限制;

(6)最后,用quotaon命令激活配额。

下面,我们以对系统中的用户liyang及用户组test为例,详细介绍实现磁盘配额的全过程:

(1)修改/etc/fstab

        #vi /etc/fstab
        //在LABEL=/ / ext3 defaults 1 1 行激活磁盘配额,并保存,结果如下所示:
        //LABEL=/ / ext3 defaults,usrquota,grpquota 1 1

(2)重新装载文件系统,使改变生效

      #mount -o remount /

(3)建立aquota.user和aquota.grp文件

      #touch aquota.user
      #touch aquota.grp

(4)生成相应的配额文件

      #quotacheck -mc /

(5)对特定用户/用户组采用配额限制

      //对用户liyang采用配额限制
      #edquota liyang
      //对用户组test采用配额限制
      #edquota -g test

(6)用quotaon命令激活配额

      #quotaon /

注意

如果要给不同的用户或者组成批地复制相同的磁盘配额,可以使用如下的命令方式:

                  #edquota -p user1 user2 ……
                  #edquota -g -p group1 group2 ……

4.4.3 使用Fdisk工具进行磁盘分区

如同Windows一样,Linux自带的一个功能比较强大的磁盘分区工具也是Fdisk,用它可以划分磁盘分区。下面给出使用Fdisk命令进行磁盘分区的操作步骤:

      #fdisk /dev/had             //使用/dev/had作为默认的分区设备
      Command (m for help): 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 saving changes
        s   create a new empty Sun disklabel
        t   change a partition's system id
        u   change display/entry units
        v   verify the partition table
        w   write table to disk and exit
        x   extra functionality (experts only)

用户通过提示输入“m”,可以显示Fdisk命令各个参数的说明。

Fdisk有很多参数,而经常使用的只有几个。读者只需要熟练掌握这几个参数就可以顺利地运用Fdisk对Linux的硬盘进行分区。Fdisk命令参数的具体含义如表4-2所示。

表4-2 Fdisk命令参数的含义

在Linux分区过程,一般是先通过p参数来显示硬盘分区表信息,然后根据信息确定将来的分区。如下所示:

      Disk /dev/sda: 4294 MB, 4294967296 bytes
      255 heads, 63 sectors/track, 522 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes
        Device Boot   Start       End   Blocks    Id  System
      /dev/hda1   *       41      522   3871665   83  Linux
      /dev/hda2           1       40    321268+  82  Linux swap
      Partition table entries are not in disk order
      Command (m for help):

如果想完全改变硬盘的分区格式,就可以通过d参数一个一个地删除存在的硬盘分区。删除完毕,就可以通过n参数来增加新的分区。当按下“n”后,可以看到如下所示:

      Command (m for help): n
      Command action
        e   extended
        p   primary partition (1-4)
        p
        Partiton number(1-4):1
        First cylinder(1-1023):1
        Last cylinder or + size or +sizeK or + sizeM(1-1023):+258M

这里要选择新建的分区类型,是主分区还是扩展分区;并选择p或是e,然后是设置分区的大小。需要提醒注意的是,如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区。

在增加分区的时候,其类型都是默认的Linux Native,如果要把其中的某些分区改变为其他类型,例如Linux Swap或FAT32等,可以通过命令t来改变,当按下“t”改变分区类型的时候,系统会提示要改变哪个分区、以及改变为什么类型(如果想知道系统所支持的分区类型,输入l),如下所示:

      Command (m for help): t
      Partition number (1-4): 1
      Hex code (type L to list codes): 82
      Changed system type of partition 1 to 82 (Linux swap)

改变完了分区类型,就可以按下“w”,保存并退出。如果不想保存,那么可以选择“q”直接退出,如下所示:

      Command (m for help):w

通过如上的操作,就可以按照需要成功地划分磁盘分区了。

4.4.4 优化Linux系统硬盘

在Windows系统中,磁盘碎片是一个常见的问题,如果不注意,系统性能可能被侵蚀。Linux使用第二扩展文件系统(Ext2),它以一种完全不同的方式处理文件存储,在一定程度上减少了系统的碎片。然而,所有的文件系统随着时间的推移都趋于碎片化。虽然Linux文件系统减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的服务器中,随着时间的流逝,文件碎片化将降低硬盘性能,硬盘性能的下降只有在硬盘读出或写入数据时才能觉察到,所以有必要对Linux的硬盘进行优化,下面是优化Linux系统硬盘性能的一些具体措施。

1.清理垃圾文件

这种方法很简单:清理磁盘驱动器,删除不需要的文件,清除所有需要保存但将不被使用的文件。如果可能的话,清除多余的目录,并减少子目录的数目。这些建议似乎显而易见,然而在系统运行的过程中,每个磁盘上都不可避免地积累了很多的“垃圾”。因而,释放磁盘空间可以帮助系统更好地工作。

2.整理磁盘碎片

Linux整理磁盘碎片的最好方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。当文件被存储时,碎片将被写到连续的块中。这是一个工作量很大的工作,可能对于像/usr之类不经常改变的程序分区是不必要的,但是可以在一个多用户系统的/home分区产生较大的效果。并且,进行这个工作所花费的时间与Windows服务器磁盘碎片整理花费的时间大致相同。

3.调整硬盘参数

使用hdparm工具可以调整IDE硬盘性能,设计时专门考虑了使用UDMA驱动器。在默认情况下,Linux使用是最安全的,但是设置访问IDE驱动器是最慢的。默认模式没有利用UDMA的最快性能。

注意

UDMA(Ultra Direct Memory Access,极端直接内存访问)是一种硬盘技术,它可以让硬盘直接与内存进行数据交换而不必让CPU过多地参与。

使用hdparm工具,通过激活下面的特性可以显著地改善性能:

● 32位支持,默认设置是16位;

● 多部分访问,默认设置是每次中断单部分传送。注意

在使用hdparm之前,要确保对系统已经做了完全的备份。使用hdparm改变IDE参数,如果出错,可能会引起驱动器上全部数据的丢失。

hdparm可以提供关于硬盘的大量信息。打开一个终端窗口,输入下面的命令,获取系统中第一个IDE驱动器的信息(改变设备名获取其他IDE驱动器的信息):

      hdparm -v /dev/had

上面命令显示当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。

Hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个IDE驱动器:

      hdparm -Tt /dev/had

此测试可测量驱动器直接读和高速缓冲存储器读的速度。结果是一个优化的“最好的事例”数字。改变驱动器设置,激活32位传输,输入下面的命令:

      hdparm -c3 /dev/hda

-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是它在很多驱动器下不工作。

大多数新IDE驱动器支持多部分传输,但是Linux默认设置为单部分传输。注意:在一些驱动器上,这个设置激活多部分传输能引起文件系统的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输:

      hdparm -m16 /dev/had

-m16参数激活16部分传输。除了西部数据(Western Digital)的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降。对西部数据驱动器来说,设置为4部分是最合适的。

激活多部分访问能减少30%~50%的CPU负载,同时可以增加数据传输速率50%。使用-m0参数可以取消多部分传输。

另外,hdparm还有许多选项可设置硬盘驱动器,读者可以参考相关的文献进行设置操作。