第四讲_运行级别与故障排除_第1页
第四讲_运行级别与故障排除_第2页
第四讲_运行级别与故障排除_第3页
第四讲_运行级别与故障排除_第4页
第四讲_运行级别与故障排除_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选第四讲 运行级别与故障排解一、Linux的启动过程()BIOS自检    计算机在接通电源之后首先由BIOS进行自检,即进行所谓的POST(Power On Self  Test),然后依据BIOS内设置的引导挨次从硬盘、软盘或CDROM中读入“引导块”。 (2)启动GRUB/LILOGRUB和LILO都是引导加载程序。最简洁地讲,引导加载程序(boot loader) 会引导操作系统。当机器引导它的操作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录(master boot record,MBR)。在单一的 MBR

2、 中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会消灭问题。所以需要更机敏的引导加载程序。(3)加载内核    当内核映像被加载到内存之后,内核阶段就开头了。内核映像并不是一个可执行的内核,而是一个压缩过的内核映像。通常它是一个 zImage(压缩映像,小于 512KB)或一个 bzImage(较大的压缩映像,大于 512KB),它是提前使用 zlib 进行压缩过的。在这个内核映像前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压,然后将其放入高端内存中,假如有初始 RAM 磁盘映像,就会将它移动到内存中,并标明以后使用。然后该例程

3、会调用内核,并开头启动内核引导的过程。(4)执行init进程    init进程是系统全部进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。init进程是全部进程的发起者和把握者。由于在任何基于Unix的系统(比如Linux)中,它都是第一个运行的进程,所以init进程的编号(Process ID,PID)永久是1。假如init消灭了问题,系统的其余部分也就随之而垮掉了。    init进程有两个作用。第一个作用是扮演终结父进程的角色。由于init进程永久不会被终止,所以系统总是可以确信它的

4、存在,并在必要的时候以它为参照。假如某个进程在它衍生出来的全部子进程结束之前被终止,就会消灭必需以init为参照的状况。此时那些失去了父进程的子进程就都会以init作为它们的父进程。快速执行一下ps -af 命令,可以列出很多父进程ID(Parent Process ID,PPID)为1的进程来。    init的其次个角色是在进入某个特定的运行级别(Runlevel)时运行相应的程序,以此对各种运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。(5)通过/etc/inittab文件进行初始化    init的工作

5、是依据/etc/inittab来执行相应的脚本进行系统初始化,如设置键盘、字体, 装载模块,设置网络,等等。    对于RedhatLinux来说,执行的挨次为: ·  /etc/rc.d/rc.sysinit            # 由init执行的第一个脚本 /etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:   设置初始的$PATH变量。配置网络。为虚拟内存启动交换。设置系

6、统的主机名。检查root文件系统,以进行必要的修复。检查root文件系统的配额。为root文件系统打开用户和组的配额。以读/写的方式重新装载root文件系统。清除被装载的文件系统表/etc/mtab。把root文件系统输入到mtab。使系统为装入模块做预备。查找模块的相关文件。检查文件系统,以进行必要的修复。加载全部其他文件系统。清除几个/etc文件:/etc/mtab、/etc/fastboot和/etc/nologin。删除UUCP的lock文件。删除过时的子系统文件。删除过时的pid文件。设置系统时钟。打开交换。初始化串行端口。装入模块。· /etc/rc.d/rcX.d/KS

7、    首先终止“K”开头的服务,然后启动“S”开头的服务。     对每一个运行级别来说,在/etc/rc.d子名目中都有一个对应的下级名目。这些运行级别的下级子名目的命名方法是rcX.d,其中的X就是代表运行级别的数字。比如说,运行级别3的全部命令脚本程序都保存在/etc/rc.d/rc3.d子名目中。在各个运行级别的子名目中,都建立有到/etc/rc.d/init.d子名目中命令脚本程序的符号链接,但是,这些符号链接并不使用命令脚本程序在 /etc/rc.d/init.d子名目中原来的名字。假如命令脚本程序是用来启动一

8、个服务的,其符号链接的名字就以字母S打头;假如命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母K打头。很多状况下,这些命令脚本程序的执行挨次都很重要。假如没有先配置网络接口,就没有方法使用DNS服务解析主机名!为了支配它们的执行挨次,在字母S或者 K的后面紧跟着一个两位数字,数值小的在数值大的前面执行。比如:/etc/rc.d/rc3.d/S50inet就会在 /etc/rc.d/rc3.d/S55named之前执行。存放在/etc/rc.d/init.d子名目中的、被符号链接上的命令脚本程序是真正的实干家,是它们完成了启动或者停止各种服务的操作过程。当 /etc/rc.d/rc运行

9、通过每个特定的运行级别子名目的时候,它会依据数字的挨次依次调用各个命令脚本程序执行。它先运行以字母K打头的命令脚本程序,然后再运行以字母S打头的命令脚本程序。对以字母K打头的命令脚本程序来说,会传递Stop参数;类似地对以字母S打头的命令脚本程序来说,会传递 Start参数。 · 执行/etc/ec.d/rc.localRedhat Linux中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最终一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。在维护Linux系统运转的日子里,确定会遇到需要系统管理员对开机或者关机

10、命令脚本进行修改的状况。假如所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简洁地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最终一步被执行的。· 执行  /bin/login 程式                  login 程序会提示使用者需输入账号及密码, 接着编码并确认密码的正确性, 若二者相合, 则为使用者进行初始化环境, 并将把握权交给 shell,即等

11、待用户登录。多次为止Linux启动过程全部结束。二、设置GRUB和LILO启动管理程序更改启动配置文件/boot/grub/menu.lstà/boot/grub/grub.conf# vi /boot/grub/menu.lstDefault=0Timeout=10Splashimage=(hd0,1)/boot/grub/splash.xpm.gzTitle red hat linuxRoot (hd0,1)Kernel /boot/vmlinuz-2.4.7-20 to root=/dev/hda2Initrd /boot/initrd -2.4.7-10.imgTitle d

12、osRootnoverify (hd0,0)Chainloader +1重新安装GRUB修改完配置文件后必需重新安装GRUB才能生效#grub-install /dev/hda设置LILO启动管理程序将GRUB切换LILO#cp /etc/lilo.conf.anaconda /etc/lilo.conf#lilo将LILO切换GRUB#grub-install /dev/hda生疏lilo.conf配置文件#vi /etc/lilo.confboot=/dev/hdamap=/boot/mapinstall=/boot/boot.bprompttimeout=50default=turbol

13、inuxother=/dev/hda1label=Windows xptable=/dev/hdaImage=/boot/vmlinuz -TLlabel= Turbolinuxroot=/dev/hda3read onlyImage=/boot/vmlinuz -RH label= RedHat linux root=/dev/hda4read onlyboot = device 说明那一个设备或哪一个分区包含引导扇区。假如没有给boot赋值,取当前缺省值。 map=map file 说明映射文件的路径。 install = boot sector    使用指定的boo

14、t sector写入引导扇区,缺省用/boot/boot.b prompt    指定要用户通过键盘选择要引导的内核。不会缺省选择。timeout=tenths 设置一个超时值,在此时间内必需有键盘输入,否则用第一个配置。类似,假如超时,就不能再输入密码。一般状况下,该取缺省值,无穷大。    注:delay 与 timeout的区分(joe 认为),delay 是"LILO"消灭后用户必需有输入的最长时间。timeout 是用户在按了任意键后,系统等待选择,用户 两次击键的最大间隔时间。 message=file 指定一个

15、文件,该文件的内容将会在LILO引导是被显示。假如没有说明该文件,那么就只会消灭"LILO"。read-only read-write    设置根文件系统的访问方式。  每个从LILO引导的配置从image行开头。       Image = kernel        Label = name Image包含要引导的内核。Label是给用户选择用的。Image行通常指向一个设备, root=device    设置根文件系统存在的设备。 留意

16、:若修改了lilo.conf文件,必需重装lilo才能生效#lilo三、运行级别运行级别是定义在/etc/inittab文件中的系统操作的不同模式。运行级别功能0停止系统1单用户管理模式2多用户无网络支持模式3完全的多用户模式,有网络支持4未使用5完全的多用户模式,有网络支持和X116重启系统S或s单用户模式inittab介绍init进程是系统中全部进程的父进程,init进程繁衍出完成通常操作所需的子进程,这些操作包括:设置机器名、检查和安装磁盘及文件系统、启动系统日志、配置网络接口并启动网络和邮件服务,启动打印服务等。Solaris中init进程的主要任务是依据inittab文件所供应的信息

17、创建进程,由于进行系统初始化的那些进程都由init创建,所以init进程也称为系统初始化进程。下面具体说明inittab文件的格式。inittab文件中每一记录都从新的一行开头,每个记录项最多可有512个字符,每一项的格式通常如下:id:rstate:action:process,下面分别解释。1.id字段是最多4个字符的字符串,用来唯一标志表项。2.rstate(run state)字段定义该记录项被调用时的运行级别,rstate可以由一个或多个运行级别构成,也可以是空,空则代表运行级别06。当恳求init转变运行级别时,那些rstate字段中不包括新运行级别的进程将收到SIGTERM警告信

18、号,并且最终被杀死;只有a、b、c启动的命令外(a、b、c不是真正的运行级别)3.action字段告知init执行的动作,即如何处理process字段指定的进程,action字段允许的值及对应的动作分别为:1)respawn:假如process字段指定的进程不存在,则启动该进程,init不等待处理结束,而是连续扫描inittab文件中的后续进程,当这样的进程终止时,init会重新启动它,假如这样的进程已存在,则什么也不做。2)wait:启动process字段指定的进程,并等处处理结束才去处理inittab中的下一记录项。3)once:启动process字段指定的进程,不等待处理结束就去处理下一记录项。当这样的进程终止时,也不再重新启动它,在进入新的运行级别时,假如这样的进程仍在运行,init也不重新启动它。4)boot:只有在系统启动时,init才处理这样的记录项,启动相应进程,并不等待处理结束就去处理下一个记录项。当这样的进程终止时,系统也不重启它。5)bootwait:系统启动后,当第一次从单用户模式进入多用户模式时处理这样的记录项,init启动这样的进程,并且等待它的处理结束,然后再进行下一个记录项的处理,当这样的进程终止时,系统也不重启它。6)powerfail:当init接到断电的信号(SIGPWR)时,处理指定的进程。7)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论