- Red Hat Linux 9实务自学手册
- 李洋编著
- 12996字
- 2020-08-26 17:44:43
第2章 Linux安装及运行
管理和使用Linux进行实际应用的前提是对其进行安装并运行。本章将着重介绍使用光盘方式安装Red Hat Linux 9,并使用GRUB(GRand Unified Bootloader)引导器对其进行引导和运行Linux的相关知识。
2.1 自己动手安装Linux(实务1)
2.1.1 了解Linux安装的硬件需求
Linux内核运行对硬件要求很低,在很多嵌入式系统中使用的Linux内核还不到100KB。当然我们使用的Linux服务器版或者桌面版就比较庞大,以Red Hat Linux为例,其9.0版完全安装大概要占用硬盘空间3.5GB,默认安装占用硬盘空间1.3GB左右,推荐使用128MB以上内存,至于其Advanced Server则至少需要256MB内存。如果要在Linux下运行其他程序,如Oracle数据库,那么这些程序可能对系统配置还有额外要求。
2.1.2 熟悉安装方式
下面将以Red Hat Linux 9为例说明Linux的安装方式。一般来说,Red Hat Linux 9可以使用三种安装方式:光盘安装、硬盘安装和网络安装。
● 光盘安装:光盘安装是最理想和最简单的安装方式。2.13节将详细讲述这种安装方式。
● 硬盘安装:如果机器没有光驱,或者没有Red Hat Linux 9安装光盘,那么可以考虑硬盘安装方式。硬盘安装前首先要将安装光盘的ISO镜像文件复制到硬盘的某个目录下(Red Hat Linux 9安装光盘有5个ISO文件,一般安装过程使用前3个ISO文件即可)。解压缩第一个ISO文件(假定解压到e:\ shrike-i386-disc1目录下),接下来就是制作Linux安装软盘,在DOS下安装软盘制作过程如下:
cd e:\shrike-i386-disc1\dosutils //改变当前目录到rawrite所在目录 rawrite //执行rawrite程序 ..\images\boot.img //指定Linux映像文件名 a: //指定安装软盘所在的驱动器
有了安装软盘后,用该软盘做系统启动盘启动机器,即可见到如图2-1所示的界面。按回车键后系统会询问Red Hat Linux 9安装ISO文件所在目录,正确指定该目录后的安装过程和光盘安装过程完全一样。
图2-1 选择安装界面
● 网络安装:Red Hat支持HTTP和FTP两种协议的网络安装。适合于本地机器没有光驱,而知道网上ISO文件所在URL的Linux安装。网络安装也要制作系统安装软盘,并用该软盘启动机器,机器启动后选择图像安装或文本安装均可,在接下来的安装方式中选择“网络安装”,指定安装ISO文件所在的URL,接下来的操作步骤与光盘安装类似。
2.1.3 动手安装
下面以Red Hat Linux 9光盘安装为例,详细讲述Linux的安装过程。
(1)用光盘引导机器:首先用Red Hat的安装光盘引导机器,正确引导后将出现如图2-1所示的界面。直接按回车键将进入图形安装模式,如果想要采用字符安装模式,输入Linux text并回车即可。由于图形安装模式更直观、更简单,这里直接回车进入图形安装模式。
(2)介质检查:选择是否需要介质检查,如图2-2所示。这是事先检查安装光盘文件是否完整,有没有损坏。如果确信光盘没有问题,可以直接单击【Skip】按钮,如果确实想检查可以单击【OK】按钮,但是一般检查的时间却较长。
图2-2 介质检查
(3)开始安装:如图2-3所示,系统显示Red Hat Linux 9安装欢迎信息,直接单击【Next】按钮进入下一个画面。
图2-3 开始安装
(4)选择安装过程中的界面语言:如图2-4所示,选择安装过程中的界面语言。此处笔者选择的是“Chinese Simplified(简体中文)”。单击【Next】按钮进入下一个画面。
图2-4 选择安装过程中的界面语言
(5)选择键盘类型:如图2-5所示,选择系统键盘类型,一般使用US English 103键盘。如果系统使用的不是默认的键盘,请选择其他类型。系统一般都能够识别正确的键盘类型。选择好键盘类型后,单击【下一步】按钮进入下一个画面。
图2-5 选择系统键盘类型
(6)选择鼠标类型:接下来的工作是选择所使用的鼠标类型,如图2-6所示。现在最常用的鼠标有两种接口:一种是老式的PS/2鼠标,通过一个六针微型DIN接口与计算机相连;另一种是现在很流行的USB接口鼠标。系统一般都能够正确识别用户所使用的鼠标。在屏幕最下面有一个【模拟3键】复选框,这是为老式2键鼠标提供的功能。如果选择该复选框,那么同时按下鼠标左键和右键就可以等同于3键鼠标按下中键。选择好鼠标类型后单击【下一步】按钮进入下一个画面。
图2-6 选择鼠标类型
(7)选择安装类型:如图2-7所示,有四种安装类型,个人桌面、工作站、服务器和定制。个人桌面一般适合于家庭使用,工作站一般适合于办公使用,服务器类型一般都会默认安装许多服务器软件,定制则是用户完全自己选择需要安装的软件。
图2-7 选择安装类型
(8)选择分区设置:接下来是选择分区设置。如图2-8所示,用户可以从“自动分区(A)”和“用Disk Druid手工分区(D)”两种方式中选择一个。如果选择“自动分区(A)”,系统将根据用户选定的安装类型来建立分区,建立分区后可以再进行定制分区;如果选择“用Disk Druid手工分区(D)”将进入手工分区界面。一般选择“用Disk Druid手工分区”,单击【下一步】按钮。
图2-8 选择分区设置
(9)定制系统分区:如图2-9所示,系统显示检测到的所有驱动器及其所有分区。用户可以在空闲空间新建分区,也可以选择某个分区进行编辑,还可以删除某些分区。
图2-9 定制系统分区
一般安装Linux至少需要两种分区。一种就是Swap分区,用于虚拟内存的交换分区,由操作系统管理,用户不能使用,其大小一般设置为物理内存大小的2倍比较合适,太小了不能很好地起到虚拟内存的作用,太大了则浪费硬盘空间;另外一种分区就是安装Linux文件系统的分区。Ext2是Linux专用的文件系统,Ext3是Ext2的升级版本,所以一般采用Ext3作为Linux的文件系统。单击【新建】按钮将出现如图2-9的界面。
(10)新建文件分区:如果选择的文件系统类型是“Swap”,那么只需指定其分区大小即可。如果选择的文件系统类型不是“Swap”,还有一个指定挂载点的问题。如图2-10所示,挂载点指定分区将用来保存Linux操作系统目录树中的某个目录,至少应该指定一个挂载点“/”。
图2-10 新建文件分区
(11)配置Linux引导装载程序:Red Hat Linux 9默认使用GRUB作为其引导装载程序,也可以在这里更改引导装载程序。常用的引导装载程序有两种:GRUB和LILO,在以后的章节中将对其进行详细说明。这里使用默认的GRUB作为引导装载程序。也可以通过本界面配置引导程序引导其他操作系统(如Windows等)。如图2-11所示,单击【添加】按钮可以在开机引导装载程序运行时操作系统选择菜单中添加一个操作系统选项。单击【编辑】按钮可以编辑开机引导装载程序运行时操作系统选择菜单的显示结果。单击【删除】按钮可以删除一个已有的操作系统选项。
图2-11 配置Linux引导装载程序
(12)配置网络:系统将自动检测机器中的网络适配卡。如图2-12所示,单击【编辑】按钮可以配置本机IP地址和子网掩码,或者指定为采用DHCP动态获取IP地址。如果不是采用DHCP动态获取IP地址,则还要通过本界面设置网关、主要DNS、次要DNS和第三DNS的IP地址。完成这些操作后单击【下一步】按钮进入下一环节。
图2-12 配置网络
(13)配置系统防火墙:如图2-13所示,可以指定系统是否启用防火墙。如果选择启用防火墙,则还可以选择允许哪些服务通过防火墙,或者哪些网络适配器的所有消息。
图2-13 配置系统防火墙
(14)选择操作系统支持的语言:通过这个界面可以选择操作系统所支持的语言,也可以通过这里指定系统的默认语言。一般建议选择支持简体中文(Chinese P.R China)、香港繁体中文(Chinese HongKong)、台湾繁体中文(Chinese Taiwan)和美国英语(English U.S.A),如图2-14所示。
图2-14 选择操作系统支持的语言
(15)选择用户所在时区:这里一般应该选择“亚洲/上海”,因为我国都使用北京时间。也可以通过这里设置时钟服务器,使得本机时钟保持和所设置的服务器的时钟同步,如图2-15所示。
图2-15 选择用户所在时区
(16)设置root用户密码:如图2-16所示,这里用来设置系统root用户密码。root拥有执行所有程序、查看所有文件和系统配置的权限。如果root密码被人破解,则将对系统造成很大的危害,因此root密码应该设置得复杂一点,最好是数字与字母相结合,而且尽量不要用字典里的词语。
图2-16 设置root用户密码
(17)选择是否接受系统默认软件包:如图2-17所示,如果对系统不是熟悉,或者系统默认软件包就符合需求,用户可以直接接受系统默认软件包;如果要定制软件包,可以选择“定制要安装的软件包集合”并选择需要的软件集合。
图2-17 选择是否接受系统默认软件包
(18)即将开始安装:如图2-18所示,系统提示即将开始安装,并且提示安装日志和安装选项记录所在的文件。
图2-18 即将开始安装
(19)安装软件包:到这里系统已经收集好了用户的各项信息,下面就是安装软件包的过程。依据机器硬件配置和用户选择安装的软件集合大小,这个过程需要的时间会有较大差异,大致需要40分钟到一个小时不等,如图2-19所示。
图2-19 安装软件包
(20)配置图形化界面:如图2-20所示,选择系统显卡类型和显存大小。一般系统可以自动检测到合适的显卡类型和显存大小。如果确信系统能够正确检测到这些配置,可以在这里选择【跳过X配置(S)】单选框。如果没有选择【跳过X配置(S)】,单击【下一步】按钮将开始进行显示器的配置,包括显卡型号、显示器刷新率、分辨率和颜色深度等。
图2-20 配置图形化界面
(21)配置显示器:配置显示器包括显示器的品牌和型号、水平频率和垂直频率。一般系统可以自动检测到合适的显示器配置,如图2-21所示。
图2-21 配置显示器
(22)定制图形化配置:这里配置显示器的分辨率和色彩深度,如图2-22所示。系统一般可以自动检测到合适的色彩深度和屏幕分辨率。建议用户选择图形化登录类型。
图2-22 配置显示器的分辨率和色彩深度
注意
如果图2-21 所示的显示器刷新率和图2-22 所示的显示器分辨率和色彩深度的配置不当,可能导致系统安装完毕后不能正常显示。
(23)安装完成:到这里,系统已经初步安装完毕。如图2-23所示,系统提示取出安装过程中使用的安装介质,提示一些关于Red Hat的网站。单击【退出】按钮机器重新启动后将进入首次使用前的一些其他配置界面。
图2-23 安装完成
(24)首次运行前的欢迎信息:这是首次运行前的欢迎信息,如图2-24所示,直接单击【下一步】按钮即可。
图2-24 首次运行前的欢迎信息
(25)新建普通用户账号:Linux操作系统root权限太大,一般情况下不建议采用root登录系统,所以有必要新建普通用户账号。输入普通用户的用户名、用户全称、口令及确认口令即可新建普通用户账号,如图2-25所示。
图2-25 新建普通用户账号
(26)设置日期和时间:如图2-26所示,可以在这里设置系统时钟,这里选择【启用网络时间协议】单选框,并配置相应时间服务器,启用网络时间协议。用户可以根据具体情况选择是否启用网络时间协议。
图2-26 设置系统时钟
(27)测试声卡:如果系统检测到安装有声卡,系统将显示如图2-27所示界面。如果系统正确检测到声卡,单击【播放测试声音】按钮则可以听到三个测试声音,第一个从右声道播放,第二个从左声道播放,第三个从两个声道同时播放。系统一般都能够正常检测到声卡。
图2-27 测试声卡
(28)选择是否需要注册系统:如图2-28所示,可以选择注册,也可以选择不注册。如果在Red Hat网络注册系统,Red Hat公司将定期向用户发送漏洞报告,并告诉用户如何下载补丁。
图2-28 选择是否需要注册系统
(29)额外安装:如果有其他光盘程序要安装,可以在这里安装;若没有,直接单击【下一步】按钮,如图2-29所示。
图2-29 额外安装
(30)结束设置:如果能够看到如图2-30所示界面,则已经成功完成Linux的安装。
图2-30 安装结束
(31)选择操作系统:如图2-31所示界面,这是用户选择的Linux装载器GRUB。如果用户还安装了其他操作系统,如Windows系列的操作系统,则也会在启动菜单中显示。选择【Red Hat Linux(2.4.20-8)】即进入刚安装好的Red Hat Linux 9。
图2-31 选择操作系统
(32)输入用户名及其密码:如图2-32所示界面,用户可以输入root用户名及其相应密码进入Red Hat Linux 9,也可以输入在安装过程中添加的某个普通用户账号及其相应密码进入系统。
图2-32 输入用户名及其密码
(33)开始使用操作系统:如图2-33所示界面,用户成功登录后,系统即显示Red Hat Linux 9的桌面,用户就可开始使用刚刚安装的操作系统了。
图2-33 开始使用操作系统
2.2 使用GRUB引导Linux(实务2)
2.2.1 了解GRUB
在Red Hat Linux 9装载系统前,必须由一个引导装载程序(boot loader)中的特定指令告诉其去引导系统。这个程序一般是位于系统的主硬盘驱动器上,或是存在于其他知道如何开始Linux内核的媒介驱动器上。如果一个x86系统只安装了Red Hat Linux 9而且只有一个版本的Linux内核,那么通过引导装载程序来引导运行Red Hat Linux 9的过程比较简单。Red Hat Linux 9安装程序允许用户快速方便地配置引导装载程序存放在主硬盘驱动的主引导记录来引导操作系统。然而,为了能从多个Linux内核或其他操作系统引导,那么就有必要了解Red Hat Linux 9提供必要引导选项的方法,以及理解引导的过程与如何去改变。当一个x86机器启动后,系统BIOS开始检测系统参数,如内存的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导的顺序等。通常情况下,BIOS都是被配置成首先检查软驱或光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设备中没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。这些最初的扇区(也就是主引导记录)是从一开始便装载一个预选择操作系统的。
从Red Hat Linux 7.2发行套件开始起,GRUB(GRand Unified Bootloader)就取代LILO(LInux LOader)成为了默认的启动装载程序,该引导器具有强大的多系统内核引导功能,因而Red Hat Linux 9也采用该引导器。GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录位于一个硬盘开始的扇区。该程序允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。
GRUB包含许多特性,使其比其他可用的引导装载程序更加优越:
● 该引导程序在x86机器上提供一个真正基于命令行的、先于操作系统的环境,它在用确定的选项装载操作系统或收集系统信息方面,提供了最大程度的适应性。
● 该引导程序支持逻辑块寻址(LBA)方式。LBA将用于寻找驱动器上文件的地址转换工作置于驱动器的硬件中,它被用在许多IDE和所有的SCSI硬盘中。只要系统BIOS能支持LBA模式(大多数都支持),那么LBA就允许GRUB超越1024个柱面的限制,引导操作系统。
● 其配置能在每次系统引导时被读取。这就避免了用户每次改变引导选项时都要重写一次主引导记录的麻烦。在使用GRUB时,如果配置文件被错误配置并且引导,那它仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行操作系统。除更新系统引导的第一步、第二步,或是菜单配置文件的位置以外,主引导记录是不会被触及的,而这种情况很少发生。
2.2.2 熟练掌握GRUB
1.GRUB运行原理
GRUB的装载和运行原理比较复杂,这里只是简单介绍一下装载GRUB和操作系统的过程,其主要包括以下几个操作步骤:
(1)装载基本的引导装载程序。基本引导装载程序位于主引导扇区中一个非常小的空间,小于512字节。因此,基本引导装载程序所做的唯一的事情就是装载第二引导装载程序,这是因为在主引导扇区中没有足够的空间用于其他东西了。
(2)装载第二引导装载程序。这个第二引导装载程序实际上是引出更高级的功能,以允许用户装载入一个特定的操作系统。在GRUB中,该步骤是通过给用户显示一个菜单或是输入命令来完成的。
(3)装载在一个特定分区上的操作系统,如Linux内核或者是Windows操作系统。一旦GRUB从其命令行或是配置文件中接到开始操作系统的正确指令,就将寻找必要的引导文件,然后把机器的控制权移交给操作系统。
2.GRUB的安装
一般情况下,Red Hat Linux 9的安装默认使用GRUB作为其引导装载程序,也可以在这里更改引导装载程序。如图2-34所示,单击【添加】按钮可以添加一个操作系统选项,使得引导装载程序能在运行时引导相应的操作系统。单击【编辑】按钮可以编辑开机引导装载程序运行时操作系统选择菜单的显示结果。单击【删除】按钮可以删除一个已有的操作系统选项。
图2-34 配置Linux引导装载程序
如果在Red Hat Linux 9的安装过程中,GRUB没有被安装,则需要采用下面的步骤来对其进行安装,并将其设置为默认的引导装载程序:
(1)获取最新可用的GRUB包。在Red Hat Linux 9安装光盘上的GRUB包也可以使用;
(2)在一个shell提示符下,运行命令/sbin/grub-install,在这里是GRUB将要被安装的位置。例如:/sbin/grub-install /dev/had;
(3)重新引导系统。GRUB图形引导装载菜单将出现。
注意
如果LILO已经被安装,并且是当前的系统引导装载程序,那就没有必要为了使用GRUB而删除它。因为,GRUB一旦安装后,将作为系统默认的引导装载程序。
3.GRUB的设备名称
在使用GRUB前,最重要的事情之一就是理解程序是如何引用设备的,如系统硬盘驱动器、分区等。对于配置GRUB实现多操作系统的引导,这方面的信息是非常重要的。
系统的第一个硬盘驱动器被GRUB称为(hd0),在它上面的第一个分区被称为(hd0,0),第二个硬盘驱动器上的第3个分区被称为(hd1,2)。使用GRUB时,文件系统习惯上采用下面的方式命名:
(,)
在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)。依照系统BIOS而确定的设备号,从0开始,基本IDE硬盘被标为0,第二IDE硬盘被标为1。这个排序大体上等同于Linux内核用字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变成了1,依次类推。
注意
GRUB用于设备的命名系统是从0开始,而不是1。这常常是用户可能犯的最普遍的错误。
类似地,分区的编号也是从0开始。虽然大多数的分区可以用数字指定,但是如果系统使用的是BSD分区,那么这些分区还是用字母来指定的,如a或c。
GRUB在命名设备和分区时,使用下面的规则:
● 无论系统使用IDE硬盘还是SCSI硬盘,所有的硬盘都是用hd开始,软盘用fd开头。
● 当指定整个硬盘,不考虑其分区时,简单地将逗号和分区编号取消即可。当使用GRUB配置一个特定硬盘的主引导扇区时,这一点很重要。例如,(hd0)指定第一个设备,(hd3)指定第四个设备。
对于上述的命名规则来说,如果一个系统有多个驱动设备,需要获得由BIOS确定的驱动器顺序。如果系统只有IDE或SCSI驱动器,命名是比较简单的。但是如果有多个驱动器混合时,这些命名就变得复杂了。
4.GRUB的文件名称
当在GRUB中输入包括文件的命令时,比如在多操作系统中使用一个菜单列表,文件名必须直接在设备和分区后指定。一个绝对文件名的格式如下:
(,)/path
大多数的时候,用户可以通过在分区上的目录路径后加上文件名来指定文件。这种方法是直截了当的。
另外,也可以将不在文件系统中出现的文件指定给GRUB,比如在一个分区最初几块扇区中的链式引导装载程序。为了指定这些文件,需要提供一个块列表(blocklist),由该列表来一块一块地告诉GRUB文件在分区中的位置。当一个文件是由几个不同的块组合在一起时,要有一个特殊的方式来写块列表。每个文件片断的位置由一个块的偏移量以及从偏移点起始的块数来描述,这些片断以一个逗号分界(comma-delimited)的顺序组织在一起。
例如下面给出的块列表:
0+80,100+35,380+1
上面这个块列表告诉GRUB使用一个文件,这个文件起始于分区的第一块,使用了第0块到第79块,第99块到134块,以及第379块。
当使用GRUB装载诸如Windows这样采用链式装载方式的操作系统时,知道如何写块列表是相当有用的。如果从第0块开始,那么可以不计块的偏移量。举个例子来说,当链式装载文件在第一硬盘的第一个分区时,可以使用下面的命名:
(hd0,0)+1
下面给出一个带类似块列表名称的chainloader命令。它是在设置正确的设备和分区作为根后,在GRUB命令行中给出的。
chainloader +1
另外,在GRUB的文件中还存在一个根文件系统的概念。GRUB的根文件系统是用于一个特定设备的根分区。GRUB使用这个信息来挂入(mount)这个设备并从它上面载入文件。
注意
GRUB的根文件系统与Linux的根文件系统是没有任何关联的。
在Red Hat Linux 9中,一旦GRUB载入它自己的包含Linux内核的根分区,那么kernel命令就可以将内核文件的位置作为一个选项来执行。一旦Linux内核引导,就设定自己的根文件系统;此时的根文件系统是用户熟知Linux的根文件系统。最初的GRUB根文件系统及其挂入都将被去掉,所以仅仅存在于用来引导内核文件的过程中。
5.GRUB的基本命令
GRUB包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命令能接在命令名后面的选项,这些选项要用空格隔开。
下面的列表给出了一些最有用的命令。
● boot -:引导先前已经被指定并载入的操作系统或链式装载程序。
● chainloader -:将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名。
● displaymem -:显示当前内存的使用情况,该信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。
● initrd -:使用户能够指定一个在引导时可用的初始RAM盘。当内核为了完全引导而需要某些模块时,这是必需的。
● install p -:将GRUB安装到系统的主引导记录。这个命令允许系统重启时出现GRUB接口。这条命令可以用几种不同的方式进行配置,然而,它都要求指定如何表示一个设备、分区和文件,在那里可以找到第一个引导装载程序的映像,比如(hd0,0)/grub/ stage1。另外,它也指定了第一步引导装载程序应该被安装的硬盘,如(hd0)选项告诉第一步引导装载程序和第二步引导装载程序位于什么地方,例如(hd0,0)/grub/ stage2。p选项告诉install命令菜单配置文件被指定在哪个部分,比如说(hd0,0)/grub/ grub.conf。
注意
install命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB信息之外的用于引导其他操作系统的信息都将丢失。在执行这条命令前,应确定对其已经有了正确的了解。
● kernel -:当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入。options选项是跟在kernel命令后面,在内核载入时传给内核的。在Red Hat Linux 9中,一个kernel命令的例子似乎是像下面的形式:kernel /vmlinuz root=/dev/hda5。这表明vmlinuz文件是从GRUB的根文件系统载入的,如(hd0,0)。同时,一个选项也被传给了内核。它指出当Linux内核载入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五个分区。如果有必要的话,多个选项可以被放在这个选项的后面。
● root -:将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0),并挂入这个分区,这样文件可以被读取。
● rootnoverify -:完成root命令同样的工作,只是不挂入分区。
除上面所述外,还有更多的命令可用。输入info grub,则可以得到一个所有命令的完全列表。
6.GRUB的配置文件
配置文件在GRUB菜单接口中,创建用于引导操作系统的列表。配置文件可以允许用户选择执行事先设置好的一组命令。这些命令既包括前面给出的命令,也包括一些只用于配置文件的命令。只用于GRUB菜单配置文件的命令如下。
● color -:设定在菜单中使用的颜色,一种作为前景色,另一种作为背景色。可以简单地使用颜色名称,如red/black。比如:
color red/black green/blue
● default -:默认项目的标题名称。如果菜单接口超时,那它将被载入。
● fallback -:当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。
● hiddenmenu -:使用这个命令时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。
● password -:使用这个命令时,它可以防止不知道口令的用户编辑菜单的项目。
作为附加选项,可以在后面指定一个后备的菜单配置文件。因此,如果知道口令,GRUB将重新启动第二步的引导装载程序,并使用这个后备的配置文件来建立菜单。如果这个后备文件不在命令中指出,那么知道口令的用户能够编辑当前的配置文件。
● timeout -:这个命令设定了在GRUB载入由default命令指定的项目前的时间间隔,以秒为单位。
● splashimage -:它指定在GRUB引导时所使用的屏幕图像的位置。
● title -:设定用来装载一个操作系统的一组特定命令的标题。
● 字符#用来在菜单配置文件放置注释。
设置GRUB菜单接口全局参数的命令被放在文件的顶部,接下来便是用于各个操作系统引导的不同项目。
下面给出一个非常基本的、用于引导Red Hat Linux 9或者Windows XP的GRUB菜单配置文件,如下所示:
default=Linux //默认启动Linux系统 timeout=60 //计时器为60秒,超过60秒将自动启动Linux color=green/black light-gray/blue //设置菜单颜色 # section to load Linux //引导Red Hat Linux 9的参数 title Red Hat Linux 9 root (hd0,1) kernel /vmlinuz root=/dev/hda5 boot # section to load Windows XP //引导Windows XP的参数 title windows rootnoverify (hd0,0) chainloader +1
这个文件告诉GRUB建立一个以Red Hat Linux 9为默认操作系统的菜单,设定10秒钟后自动引导。这里给出了两个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘分区表的命令。
2.2.3 使用GRUB引导Linux
GRUB最大的优点之一就是其鲁棒的设计。如果更新内核或更改它在磁盘上的位置,则不必重新安装GRUB。事实上,只要更新/etc/grub.conf或者/boot/menu.lst(指向/etc/grub.conf的一个软链接)文件存盘即可。等到下一个引导过程开始,则修改的引导项将可以进行新的系统内核的引导。
只有在少数情况下,才需要将GRUB引导装入器重新安装到引导记录。首先,如果更改GRUB root分区的分区类型(例如,从Ext2改成ReiserFS),则需要重新安装。或者,如果更新/boot/grub中的stage1和stage2文件,由于它们来自更新版本的GRUB,很有可能要重新安装引导装入器。其他情况可以不需要重新安装引导记录。
下面将详细地给出一个使用GRUB来引导系统的实例。
在开机时,按[c]键,将进入GRUB控制台。显示如下:
GRUB version 0.5.96.1 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word,TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> grub> root (h
现在,按一次[Tab]键。如果系统中有多个硬盘,GRUB将显示可能完成的列表,从“hd0”开始。如果只有一个硬盘,GRUB将插入“hd0,”。如果有多个硬盘,继续进行,在(“hd2”)中输入名称并在名称后紧跟着输入逗号,但不要按[Enter]键。部分完成的root命令看起来如下:
grub> root (hd0,
现在,继续操作,再按一次[Tab]键。GRUB将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按[Tab]键时得到以下列表:
grub> root (hd0, Possible partitions are: Partition num: 0, Filesystem type is fat,partition type 0x6 Partition num: 2, Filesystem type is ext2fs, partition type 0x83 Partition num: 4, Filesystem type unknown, partition type 0x7 Partition num: 5, Filesystem type is ext2fs, partition type 0x83 Partition num: 6, Filesystem type is fat, partition type 0xb Partition num: 7, Filesystem type is fat, partition type 0xb Partition num: 8, Filesystem type is ext2fs, partition type 0x83 Partition num: 9, Filesystem type unknown, partition type 0x82
如上所示,GRUB的交互式硬盘和分区名称实现功能非常有条理。用户只要好好地理解GRUB的硬盘和分区命名语法,就可以继续操作了。
grub> root (hd0,8)
现在已安装了root文件系统,下一步是装入内核:
grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro [Linux-bzImage, setup=0x1200, size=0xe1a30]
到此为止,已经成功安装了root文件系统并装入了内核。现在,就可以引导了。只要输入命令“boot”,Linux引导过程就将开始:
grub> boot
通过上述的操作过程,就可以成功地使用GRUB来装载和引导系统内核了。
一般来说,初学者对于上述的过程可能比较陌生和难懂,其实对于常规应用来说,由于机器中装入了多个操作系统,GRUB的使用只要熟悉其配置文件的编写即可,而屏蔽使用上述这些复杂的命令。下面再仔细介绍GRUB配置文件的编写方法:
(1)在系统安装好之后,可以在/etc目录下找到/etc/grub.conf,它是进行配置文件改写的最好参考;
(2)按照在机器中新增加操作系统的安装位置信息,可以对如下内容进行添加:
title Red Hat Linux 9 root (hd0,4) kernel /vmlinuz root=/dev/hda5 boot # section to load Windows XP //引导WinXP的参数 title windows xp rootnoverify (hd0,0) chainloader +1
依次为:需引导的操作系统的名称、该操作系统所在的分区,对于Linux操作系统来说,还需要添加其内核的位置,而对于Windows来说,则通过使用“链式装入器”。链式装入器从指定分区的引导记录中装入Windows系统自己的引导装入器,然后引导它。这种链式装入技术可以用于引导任何版本的DOS或者是Windows操作系统。
在上面的内容,添加了一个Linux和Windows操作系统,其中Linux操作系统的名称为:Red Hat Linux 9,其root分区位于第一块硬盘的第五个分区上,其内核路径为:/vmlinuz root= /dev/hda5,boot是一条启动命令。另外,添加了一个Windows XP操作系统的引导记录,其名称为:windows xp,启动分区位于第一块硬盘的第一个分区,而链式装入器为:chainloader+1。
(3)保存改写的内容,并重新启动机器即可。
上面讲述的是一个添加操作系统引导记录的全过程,强烈推荐读者在实践中根据已有的框架修改诸如(hd0,4)等一些需要改变的信息,其他的信息可以完整地保留,这样既安全又方便,能够轻松地使用GRUB实现多系统的引导工作。
注意
实现上面的修改需要用户熟悉GRUB设备名称和文件名称的命名方法比较,否则容易出错,造成系统无法正常启动。建议读者在修改前详细阅读本章前面部分对GRUB设备名称的介绍。
2.3 运行Linux(实务3)
2.3.1 了解Linux系统启动过程
启动Linux操作系统,需要安装Linux启动器,常见的Linux启动器有两种:LILO(LInux LOader)和GRUB(GRand Unified Bootloader)。Red Hat Linux 9默认采用GRUB作为其启动器。LILO或GRUB不仅可以引导Linux,也可以引导其他操作系统,包括MS-DOS或Windows XP、Windows Server 2003、Windows 2000等。在安装Linux时,启动器可以装在硬盘的MBR(主引导记录)中,也可以安装在活动分区的引导扇区中。
计算机加电启动时,BIOS装载MBR,然后从当前活动分区启动,LILO或GRUB获得引导过程的控制权,并显示相应提示符提示用户选择需要启动的操作系统。前述的图2-31便显示了使用GRUB时的引导界面。
当引导程序成功完成引导任务后,Linux从其手中接管了CPU的控制权,然后CPU就开始执行Linux的核心映像代码,开始Linux启动过程。对于用图形方式的用户来说,Linux将显示一个图形化的登录界面,登录成功后可以直接进入KDE、Gnome等窗口管理器。
2.3.2 设定Linux系统运行级别
说到Linux的系统运行级别,我们首先需要介绍一下与之相关的init进程。init是Linux系统操作中不可缺少的程序之一,它是一个由内核启动的用户级进程。内核启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式来启动其他用户级的进程或服务。所以,init始终是第一个进程(其PID始终为1)。内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
运行级别就是操作系统当前正在运行的功能级别。这个级别0~6,具有不同的功能。其功能级别如下:
● 0:停机;
● 1:单用户模式;
● 2:多用户,没有NFS;
● 3:完全多用户模式(标准的运行级);
● 4:没有用到;
● 5:X11(xwindow图形模式);
● 6:重新启动。
注意
千万不要将运行级别设定为0或者6。他们会导致系统无法正常启动。
这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是放在/etc/rc.d目录下的文件。在大多数的Linux发行版本中,启动脚本都是位于/etc/rc.d/init.d中的。这些脚本被用ln命令连接到/etc/rc.d/rcn.d目录(这里的n就是运行级0~6)。
inittab文件中每行的纪录有id、runlevels、action和process四个字段,各字段用“:”分隔,他们共同确定了某进程在那些运行级别以何种方式运行。格式如下所示:
id:runlevels:action:process其中各个字段的具体含义如下。
● id用于在inittab文件中唯一标示一个配置记录,可以由1~4个字符组成。
● runlevels用于指定该记录在哪些运行级别中运行,runlevels可以是单个运行级别也可以是运行级别列表。
● action字段描述记录将执行哪种类型的动作,详细设置如下:
initdefault:用于标示系统启动后将进入哪个运行级别;
sysinit类进程将在系统启动时在任何boot或bootwait类进程之前运行;
wait类进程将在进入指定运行级别后运行一次,init进程将等待其结束;
ctrlaltdel用于指定用户使用[ctrl+alt+del]组合键时系统所进行的操作,如重启进入单用户等;
powerfail和powerokwait用于指定当UPS断电信号时所运行的命令和指定当供电恢复时所运行的命令;
respawn类进程在结束后重新启动运行(如控制台登录程getty)。
● process字段所设置的是启动进程所执行的命令。
因此,根据以上字段,要修改Linux系统的运行级别非常简单。只需打开/etc/inittab文件,然后将以下例子中的数字修改成所需要的运行级别所对应的数字(1~5)即可:
5:initdefault:
2.3.3 登录Linux
接通安装好Linux系统的机器电源开关后,屏幕上将快速闪过一串串启动内容的文字提示,在服务启动一串绿色的“[OK]”后,系统显示:
linux login:
提示用户登录。如果用户想要以超级用户的身份登录,在“login:”后面输入“root”,然后回车,系统提示:
Password:
该提示提醒用户输入在安装时设定的系统管理员密码并回车,如果密码正确,系统将完成登录。成功登录后系统提示:
[root@linux /root]#
一般情况下,为了安全考虑不推荐使用root账号登录系统。因为root账号权限太大,很容易由于误操作导致系统不正常,所以一般以普通用户账号登录系统。假设用户以账号ly登录系统,登录成功后系统显示[ly@linux /root]$作为提示符。在使用ly账号的过程中如果要完成某些只有root账号才能执行的操作,要临时以root账号登录,或者想要以其他账号临时登录系统,Linux系统提供了su命令。su命令格式如下:
su用户名
如果在前面所述的ly账号登录的情况下,欲以root临时登录,可以输入su root命令并回车,系统提示用户输入root的密码,输入正确后系统进入root登录模式。这样用户就可以完成root账号才能完成的操作了。
如果要退出某个用户的登录,可以使用exit命令。如前面所述的临时用root登录完成用户希望的操作后,用户想要重新回到ly的账号下继续操作系统,可以输入exit命令并回车即可。
2.3.4 退出Linux
Linux提供了三个退出系统的命令:shutdown、halt和reboot。这三个命令在一般情况下只有系统的超级用户(一般是指root)才可以执行。输入没有参数的shutdown命令,两分钟之后即可关闭系统。在这段时间,Linux将提示所有已经登录系统的用户系统将要退出。
该命令的一般格式为:shutdown [选项] [时间] [警告信息]。
其中,命令中[选项]的含义为:
● k:并不真正关机,只是发出警告信息给所有用户;
● r:关机后立即重新启动;
● h:关机后不重新启动;
● f:快速关机,重启动时跳过fsck;
● n:快速关机,不经过init程序;
● c:取消一个已经运行的shutdown。
如果要设定等待的时间,可以使用[时间]的选项:
● Onow:立即退出系统;
● O+mins:在指定的分钟之后退出系统;
● Ohh:ss:在指定的时间退出系统。
在关掉系统之前,系统会自动产生一个/etc/nologin文件,说明系统即将关闭,用户不能登录进入。在这段时间中,只有系统管理员可以进入。如果用户要获得有关shutdown命令的更详细的帮助,可以使用man shutdown命令。
halt命令相当于shutdown -h now,表示立刻关机。reboot命令相当于shutdown -r now,表示立刻重启。