关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 通信网络 -> linux ->详细
相关内容  
 
 
四大厂商组统一战线 开发通用Linux OS
3大公司将联合推出“牢不可破的Linux”
apache+mysql+php+ssl服务器之完全安装攻略
Linux构建网站案例
Red hat 6 配置实例
关于在linux下磁盘定额的实现
忘记Linux密码怎么办
构建一个高可扩展的web邮件系统
Linux系统配置与优化
在RedHat7.2上一步步搭建自己的虚拟主机系统
Win NT、Linux、Unix 等服务器的互连
 
【新品推荐】

  详细内容
 

条条道路通罗马 Linux多种启动和关闭方法
作者: 评价: 上站日期: 2002-07-30
内容说明:
来源:


Linux是当前最流行的操作系统之一,它具有高效、健壮、安全以及功能齐全等诸多特性,再加上它是一个源代码公开的完全免费的自由软件,无论是一般的计算机爱好者还是资历深厚的软件工程师,都可以对这个操作系统进行改进和完善,此外,它还是许多中小型企业的系统和网络服务器的一个非常好的选择,这一切使得Linux的应用变的非常普遍。你可以将Linux用作基于Windows的计算机的文件和打印服务器,也可用来作为你的个人工作平台,还可以将其作为一个小型局域网的网络服务器,甚至可以将其作为路由器来使用。本文介绍了Linux系统开始工作之前的第一个步骤——启动,以及最后一个步骤——关闭的诸多方法以及这其中涉及到的相关的核心知识。 

一、启动和关闭系统概述 

开启计算机并导致其操作系统被加载的过程叫启动,也叫引导。Linux系统有着多种不同的启动方法。具体选择什么样的启动方法是和使用系统的人的习惯以及一些其他的客观因素来决定的。使用得最普遍也是最方便的启动方法是用LILO启动。同样,在确定不再使用系统后我们要关闭机器,Linux关闭系统也有不同的方式。最正规的方法是使用shutdown命令。由于Linux系统在运行期间内有可能打开多个进程和多个文件系统,只有首先结束所有打开的进程并卸载掉所有加载的文件系统后,才能保证系统的正常关闭。在启动和正常关闭的过程中系统都会进行一系列的工作。 

二、启动过程详解 

启动时,计算机首先由BIOS 的startup程序读取并加载一段非常小的名叫bootstrap loader程序,bootstrap loader执行时将依次加载和启动操作系统,即由它加载位于磁盘或其他存储空间的操作系统。bootstrap loader通常存储在硬盘或软盘的称为引导扇区(对于硬盘,也叫主引导记录,因为硬盘可以包含多个分区,每个分区都有自己的引导扇区。)的固定位置,不同的计算机其bootstrap loader不同,对于PC机来说,bootstrap loader包含在第一个扇区。不管用何种方式启动Linux,启动进程最终都要将控制权交给Linux内核。Linux内核获得控制权后,以如下步骤继续引导系统: 

1. 为了节省空间,Liunx内核一般都是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些代码完成解压缩。 

2. 如果系统中安装有可支持特殊文本模式的、且Linux可识别的SVGA卡,Linux 会提示用户选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选择显示模式。该显示模式可通过LILO或RDEV工具程序设置。 

3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序进行配置。这时,显示器上出现内核运行输出的一些硬件信息。 

4. 接下来,内核加载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因加载失败,则内核启动失败,最终会终止系统。 

5. 然后,init切换到多用户模式,并为每个虚拟控制台和串行线路启动一个getty进程,getty进程管理用户从虚拟控制台和串行终端上的登录。根据不同的配置,init也可以启动其他进程。 

由此我们知道Linux的操作系统被加载后,它首先初始化硬件和设备驱动器,然后再运行init。init是一个由内核产生的进程:/etc/init,它是每个Linux系统在核心引导完成后的第一个进程。init读取其配置文件inittab,并根据该文件的内容产生其它进程,提供Linux系统中最重要的服务。当bootstrap loader执行完成并加载init后,init便继续进行后继的引导过程,从而启动其他进程以便检查和挂接文件系统,启动守护进程,允许用户登录等。由inittab产生的最重要的进程之一就是可以在每个虚拟控制台(VC)上启动的/etc/getty进程。getty进程强占虚拟控制台VC,并在VC上启动login进程,该进程允许用户在VC上登录注册。Linux系统是一个允许用户干预其启动的系统。init在执行期间所做的具体事情依赖于用户的意愿。你可以选择如单用户(single user mode)、多用户(multiuser mode)等多达6种不同的init启动方式。Linux是真正的多用户操作系统,当你选择多用户模式启动后,Linux系统能够支持不同的用户同时登录,而且还可以通过网络或终端进行远程登录。 

另一个由inittab产生的进程是系统的初始化文件/etc/rc,该文件是一个shell进程,它执行在启动时需要的任何初始化命令。系统也可以执行其他的如针对特定用户的初始化进程。 

三、不同的启动方法 

Linux有着多种不同的安装方法,能够和其他的操作系统友好共处。因此也存在多种不同的启动Linux系统的方法。当你的机器上存在多种操作系统时,你可以通过设置使系统按照你的要求来启动。 

1. 硬盘LILO启动 

硬盘LILO启动是从硬盘的主引导扇区读取LILO程序,该程序使你能够通过硬盘非常方便地启动你的Linux或者别的操作系统(这是因为LILO也可以和别的如OS/2、Windows NT等操作系统一起使用)。在LILO中,你可以设置默认的启动对象,当你开机后,如果你不做任何操作,在经过一段默认或设置的时间后,系统将启动你所设置的默认启动选项:Linux或别的操作系统。在等待期间内,你可以按下Enter键,这样将不用等到等待时间就可以直接进入默认的操作系统。当然,你也可以在等待时间内通过直接输入一个想要启动的操作系统的名称,或者通过按下Ctrl、Alt或Shift键选择想要进入的操作系统。在LILO中设置其启动因Linux版本的不同而不同,一些版本的LILO配置是在/etc/lo.conf里,你可以通过直接编辑该文件来设置启动方式,还有一些版本的LILO配置可以在安装过程中实现,你可以使用setup功能来改变设置。使用LILO(Linux LOader)可以从文件系统引导。 

使用LILO从硬盘引导后, 主引导记录的代码检查分区表(也在主引导记录扇区中),确认活动分区(标记为可引导的分区),从该分区读引导扇区,然后启动该引导扇区的代码。由于一般只给核心映象做一个单独的分区是没什么用的,所以分区引导扇中的代码不能只顺序地读磁盘,它必须找到文件系统把它们放在哪些扇区中。有几个方法解决这个问题,但最通常的方法是使用LILO。和其他系统的引导加载程序相比,LILO具有更大的灵活性,其引导方式也更丰富多彩。 

* 当LILO被安装在硬盘的MBR、活动分区或引导软盘上时,作为原引导程序的替身,它能引导任一硬盘任一分区上的Linux和其他操作系统; 

* 除了引导扇区,它没有任何隐含文件,也不需要使用特定的分区,它的配置文件可以在任何分区、甚至是存放在与Linux毫不相干的DOS分区的某个子目录下; 

* 它能引导几个不同的内核配置,甚至是几个不同的内核; 

* 它能引导同一机程序上的多个Linux版本; 

* 它能从网络上引导Linux。 

LILO的灵活性使得其配置变得相当复杂,当有多个系统共存时,建议先安装其他操作系统,最后再装Linux,这样,设置LILO对其他系统的引导会相对简单一些。 

此外LILO的引导参数有很多。在此就不一一介绍了,有兴趣的读者可以查阅相关资料。 

2. 软盘启动 

其实,只要把LILO安装在MBR、活动分区或者引导软盘上,就能接管计算机的控制权,然后由LILO完成后继的引导过程。LILO中建有一个引导表地址编码,借此它的引导程序就能定位到Linux的内核文件,这种地址编码既可以按照柱面/磁头/扇区(CHS)模式,又可以采用LBA的线性块号模式,因此,即使对某些SCSI控制程序LILO也能运转良好。因此,你也可以从软盘来启动Linux。在大多数情况下,软盘启动只在需要紧急恢复系统是才使用,因为硬盘LILO启动是一件非常方便而简单的事。但是,如果你没有使用LILO来选择可以启动的分区,或者没有设置Linux的启动程序,那么你有可能就需要用软盘启动Linux了。 

在安装Linux时,安装程序一般都会提示你制作一张软盘启动盘,此时你最好接受建议,因为在系统需要紧急恢复的情况下这一张小小的软盘是非常有用的。如果在安装系统是没有制作启动盘,你可以在系统正常运转的任何时候使用命令bootdisk来制作启动盘。 

3. 从其他的操作系统直接启动 

在很少的情况下,也许你需要从除软盘、LILO之外的方式来启动你的Linux系统,比如,从Windows 98/NT的系统里象大家所熟悉的启动Windows NT或DOS那样的菜单来启动Linux。或者是因为你无论如何努力都不能让LILO正常工作,甚至根本就没有把LILO装在硬盘上面仅有的那个宝贵的主引导记录(Master Boot Record,MBR)上,这是你就会用到从其他操作系统来直接启动Linux。这种启动方式需要你在安装好Linux系统后做一些额外的工作:在本操作系统某个分区(一般是C:)上,该分区的格式要求是FAT格式的,再创建一个Linux启动的快捷方式。制作该快捷方式的方法是,将Linux的bootsect.lin文件以快捷方式拷贝到C盘,并根据Linux系统所装载的分区情况来修改该文件。如果BOOTSECT.LIN不是被放到C:盘根目录下,还需要修改boot.ini文件。 要修改该文件,先得将该文件的“系统-隐藏-只读”属性该为可读写属性,然后用任何ASCII文本编辑器打开,该文件中关于操作系统的信息为如下格式: 

[operating systems] 
multi(0)disk(0)rdisk(0)partition(2)\WINNT="NT V4 is here" 
multi(0)disk(0)rdisk(0)partition(2)\WINNT="NT V4 VGAMODE" /basevideo /sos 
C:\="DOS is here" 
C:\BOOTSECT.LIN="Linux is here"  


完成修改后,在C盘运行该快捷方式就可以将你的机器引导到Linux系统了。相对来说,这种引导方式比前两种麻烦多了,而且也非常少用。 

四、常用的关闭方法及关闭过程 

和其他操作系统一样,在Linux系统下直接关闭电源将也会导致可怕的事情发生,最重要的是,文件系统缓冲cache可能没有回写,这意味着其中的所有数据将丢失,磁盘上的文件系统不完整,并可能不可用。因此,我们应该养成正确的关闭系统的习惯。 

当系统正常关闭时,先由init进程负责杀死所有的其他进程,然后再卸载掉所有的文件系统并停止处理器。正常关闭Linux系统的命令是shutdown 。它通常使用两种关闭方法之一。如果系统只有你一个用户,使用shutdown 的通常方法是退出所有运行程序,从所有虚拟控制台注销,如果你使用的不是root用户,就用root登录,然后运行命令shutdown -h now 。如果系统是多用户,使用命令shutdown -h +time message,time是到系统停止的分钟数,message是告知所有用户系统关机原因的短信息。当延时之后关闭系统真正开始时,所有文件系统(除了根)被unmount,所有用户进程(如果有人还未注销)被终止,守侯进程被关闭,所有东西都停下来。此后,init打印出一条信息告知你可以关掉电源了。此时就可以关闭电源。 

有人喜欢用sync三遍来关闭系统,等到磁盘I/O停止,然后在关闭电源。如果没有什么程序运行着,这和用shutdown 等效。然而,它不卸载任何文件系统,可能导致ext2fs的“干净文件系统”标志出问题。这种三遍sync的方法是不推荐使用的。 

重启动就是完全关闭系统,关掉电源,然后再打开。简单方法是用shutdown 重启动系统而不是仅停止系统。这要使用shutdown的 -r选项,例如命令shutdown -r now。许多Linux系统在按ctrl-alt-del键时运行shutdown -r now。这是可设置的,比如在多用户系统中设置一定的延时也许更好。如果是谁都能接触到的系统,那么最好设置为按ctrl-alt-del什么也不干。 
 

 
你所在的位置 -> 主页 -> 超想软件 -> 通信网络 -> linux ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0