代码编织梦想

《第4章-Linux引导过程及原理要点.ppt》由会员分享,可在线阅读,更多相关《第4章-Linux引导过程及原理要点.ppt(98页珍藏版)》请在人人文库网上搜索。

1、Linux操作系统原理与应用,第四章Linux引导过程及原理,了解Linux系统的启动和关机过程,是管理Linux系统的第一步。如果没有遵循正确的过程,文件可能损坏或丢失,从而造成损失,1、从BIOS到KERNEL 计算机在接通电源之后首先由BIOS进行自检,即进行所谓的POST(PowerOnSelf Test),然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入“引导块”。,一、Linux引导过程经过的步骤,如通常BIOS中设的引导顺序为C在最前面,那么就把C盘(第一个IDE硬盘)的第0柱面,第0头的第1个扇区读入内存,然后跳到那里开始执行。这个扇区有一个大家熟悉的名字MBR(。

2、MainBootRecord)。换句话说,MBR里面存放的是一小段程序以及分区表的数据。在使用WIN9X和DOS时,这里面放的代码就把分区表里标记为Active的分区的第一个扇区(一般存放着操作系统的引导代码)读入内存并跳转到那里开始执行。,开启计算机并导致其操作系统被加载的过程叫启动。在系统启动过程中,计算机首先运行了一小段叫引导加载器(bootstrap loader)的程序,它依次加载和启动操作系统,引导加载器通常存储在硬盘或软盘的固定位置。采用这种方法启动系统的理由是,操作系统大而复杂,而计算机加载的第一段代码很小(几百字节),从而以免使固件不必要地复杂化。,不同计算机的引导加载器不同。

3、。对于PC,在启动时,计算机(它的BIOS)记取软盘或硬盘的第一个扇区(叫做引导扇区,对于硬盘也叫MBR,因为硬盘可以多个分区,每个分区都有自己的引导扇区)。引导加载器就包含在这个扇区中。它加载位于磁盘其他地方的操作系统。,从软盘启动Linux时,引导扇区包含的代码只读前数百个数据块(依赖于核心的大小)到预定的内存位置。 Linux引导软盘上,没有文件系统,核心存在连续的扇区中,因此这样简化了引导过程。当然,使用LILO(LInux LOader)就可以从文件系统引导核心。,如果从硬盘引导系统,主引导记录的代码检查分区表(也在主引导记录扇区中),确认活动分区(标记为可引导的分区),然后从该分区。

4、读取引导扇区并启动该引导扇区的代码。该分区的引导扇区的代码与软盘的引导代码所作的工作相同:从该分区读入核心并启动。但细节不同,因为一般只给核心映像做一个单独的分区是没什么用的,所以分区引导扇区中的代码不能只顺序地读取磁盘,它必须找到核心在文件系统中的具体位置。,有几个方法解决这个问题,但最通常的方法是使用LILO或GRUB。 用LILO或GRUB引导核心时,这读入系统核心并引导它。也可以设置LILO或GRUB,使之能够在多个核心中选择其中一个作为当前核心,它甚至还能引导其他操作系统,也可以在引导时让用户选择引导哪个核心或操作系统。,Linux核心被读入内存后,才真正了系统的启动工作,概述如下:。

5、 Linux核心通常是用与gzip压缩程序相同的算法压缩过的,这使得一般要超过1M字节大小的核心只占几百K字节的磁盘空间。核心代码的一部分没有压缩;这部分包含把核心从磁盘映象解压缩并装载进内存的程序。所以实际上引导时核心是自解压缩进内存的。,核心映象中存有一些参数,其中有一旦系统引导后作为根文件系统的设备名称。另一个参数是用作系统控制台的文本模式。所有这些参数可以用rdev命令修改。 然后,核心检查还有什么其他硬件(硬盘、软盘、网卡.),并配置适当的设备驱动程序,同时,输出相应的结果信息。,每次引导计算机运行RH Linux时,发生的基本步骤,如下所示: 1)引导硬件:基于计算机BIOS的信息。

6、,计算机检测和启动硬件。其中一些信息告诉计算机检测哪些设备以便找到可引导的操作系统。 2)启动引导加载器:通常情况下,BIOS检测主硬盘上的主引导记录以便查询下一步要加载的内容。如果安装了RH Linux,就会启动GRUB引导加载器,允许选择引导RH Linux还是另一个已经安装的操作系统。,2、小结,3)引导内核:假设选择了引导RH Linux,就会加载Linux内核。该内核挂装基本的文件系统,并向init进程传输控制信息。,3、启动init,在引导进程中,从内核阶段(装入内核,诊断设备,装载驱动器)到init进程的转换,由以下行指出: INIT: version 2.84 booting 。

7、Welcome to Red Hat Linux init程序现在处于控制之中,ps输出作为所有进程的父进程,总把init的PID(进程识别号)列为1。它的行为由/etc/inittab文件指定。,图4-1inittab文件内容1,图4-2inittab文件内容2,Inittab文件的格式: 纯文本文件inittab包括许多用冒号分开的项,格式如下: id:runlevels:action:command id项为唯一标识,表示在系统启动期间发生某个特殊的动作。Runlevels项包含一系列命令运行等级。Action代表init要采取的操作。Command指出将实际执行的命令。,分解initt。

8、ab文件 在我们的inittab示例文件中,第一个非注释行设置默认运行等级为5,这是代表多用户带网络服务器和X终端,这一个运行等级启动X服务器并提供一个GUI登录窗口,这是Red Hat Linux工作常用的initdefault值。 等级为3也是一种常用的默认等级,系统进入这种等级会引导为基于文本的登录。,inittab文件第二行指示init在进入默认运行等级前执行/etc/rc.d/rc.sysinit脚本。这个脚本完成许多初始化全程,如,选择keymap文件、检查和挂装启动根和进程文件系统、设置时钟和主机名、配置缓冲区、清理临时文件和加载模块。 下边7行决定每一个运行等级所执行的命令。每。

9、一行都调用/etc/rc.d/rc脚本,使用所选运行等级作为参数,按次序进入相应的目录(如/etc/rc.d/rc3.d是运行等级3进入的目录)。,ctrlaltdel告诉init,当ctrl,alt,del三键同时按下时,PC用户要求完成的动作。3秒钟的延迟后,系统有序重启(转向等级6)。 下面两行带有注释的语句,处理如果UPS和挂装软件时的安全关机。第一行在收到UPS信号提示电源故障,暂停两分钟上(转向等级0)后开始关机,第二行在电源恢复时,取消关机。,6个getty行用来启动虚拟显示器以允许登录,在任何多用户运行等级下,这些进程总是被启动,当连接到虚拟控制台的某个用户注销时,相应的get。

10、ty进程死掉,那么respawn动作会告诉init启动一个新的getty进程。最后一行指出,只要系统运行在等级5,优先显示管理器(xdm,GNOME,KDE)就将运行。显示图形化提示符而非通常的基于文本的提示,同时终止运行startx的需求,进而启动GUI。,启动运行等级脚本 /etc/rc.d/rc脚本是整个运行等级概念所必需的脚本。任何运行等级的变动都会导致此脚本被执行,其中新的运行等级作为一个参数出现。下面列出并讨论这个简单而强大的脚本: 检查运行等级脚本是否正确:rc脚本通过检查找到已有的每个运行等级脚本,不包括那些表示备份的脚本。,确定当前和先前的运行等级:以便知道要停止哪些运行等级。

11、脚本(先前的脚本)和启动哪些运行等级脚本(当前的等级)。 决定是否进入交互式的启动过程:如果在引导期间将确认选项传递给了引导加载器,那么,在启动之前,所有服务器进程都必须在系统控制台得到确认。 中止和启动运行等级脚本:从先前级别停止运行等级的级别,然后从当前级别启动运行等级的脚本。,如果软件包包含一个需要在引导时启动的服务,那么它可以将脚本添加到/etc/init.d目录。然后该脚本外国投资到适当的运行等级的目录,处于启动或停止的状态。 位于/etc/rc.d/init.d下典型的运行等级脚本,包括有:apmd(控制高级电源管理守护进程),httpd(允许计算机充当http服务器的作用),ip。

12、tables(管理设置防火墙),killall(关机或重启),portmap(此进程管理使用rpc机制的程序和协议)等,有多种方法从系统启动目录删除程序,给特定的运行等级添加程序或执行程序时改变程序。如:在终端窗口中用命令方式:chkconfig。如果想使用GUI方式,则使用命令: #serviceconf 效果如下图所示。,图43serviceconf运行效果图,在这个窗口中,可以用来重新配置运行等级3,4,5的服务。运行和编辑的运行等级显示在屏幕的上部,可用的运行等级的服务显示在窗口的中部,已经配置好在那个等级启动的服务旁边有复选标记。,概念区别,很多LINUX的初学者分不清楚linux和。

13、X之间,X和Xfree86之间,X和KDE,gnome等之间是什么关系,常常混淆概念,下面我们来解释这几者的区别。,1)linux本身没有图形界面。 linux现在的图形界面的实现只是linux下的应用程序实现的。图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux下的一个应用程序而已。不是系统的一部分,但是X的好处在于可以方便用户使用电脑。,WINDOWS9。

14、5及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器。这也WINDOWS和linux的重要区别之一。,2) X是协议,不是具体的某个软件: X是协议,就像HTTP协议,IP协议一样,这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时,他就联接到X服务器,开始用X协议和服务器交谈。比如一个X应用程序要在屏幕上输出一个圆,那么他就用X协议对X服务器说:我。

15、需要在屏幕上画一个圆。X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的“画”的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的。,X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:我发现鼠标被按下了,您有什么指示吗? 如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画-那是服务器的事情。,那么协议是需要具体的软件来实现的,这就是下面我要讲的。 3)X和。

16、XFree86的关系. 有了协议就需要具体的软件来实现这个协议。就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样。XFree86就是这样一个去根据法规实现协议的“交警”。他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务。当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议。,所以实现X协议的软件也并不只有XFree86,XFree86只是实现X协议的一个免费X服务器软件。 商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务器软件。甚至可。

17、以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示。 只不过在LINUX上最常用的是XFree86。顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。,为了便于理解拿HTTP协议来比较: 协议是HTTP (hyper text transmission protocol) 实现这个协议的常用服务器有:apache IIS 等。请求这些服务器传输文件的客户有:IE ,MOZIL。

18、LA ,NETSCAPE等.,4) X和X11R6又是什么关系? 不知道大家有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录: X11R6 实际上是 X Protocol version 11 Release 6.(X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正。不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6。另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号。这是初学者经常高混淆的。

19、概念。,5)X服务器和WM(window manager 窗口管理器)的关系。 平时大家的图形界面是怎么启动的呢? 如果你是一开机就进入图形界面那就太遗憾了。应为你错过了了解X服务器起动过程的好时机。不过没关系,你打开一个XTERM输入: init 3 。就可以安全的回到字符界面。 好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了。,先输入以下命令: #startx。起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境。你可以最大化,最小化,移动,关闭窗口等。 按ctrl+alt+backspace返回字符界面。 输入: #xi。

20、nit.再次启动图形界面,你看到了什么,你看到一个XTERM。而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如故我输入: #mozilla.打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框。,为什么同样一个X应用程序会有这样的不同呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了KDE,如果你用GNOME就起动了GNOME。但是你用xinit起动图形界面的时候却没有起动WM。,现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等。而这些不是X服。

21、务器来负责完成的。 如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么? xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征。,如果你不输入twm而输入gnome-session就可以起动GNOME。或者输入startkde起动KDE。 通过以上的实验你就可以清楚的明白他们之间的关系。,6) 关于KDE和GNOME KDE和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单, KDE是KING DES。

22、KTOP ENVIRMENT (桌面环境之王)的缩写。他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等。 GNOME是GNU Network Object Model Envirment 的缩写。和KDE一样,也是一个功能强大的综合环境。 另外在其它UNIX系统中,常常使用CDE作为这样一个环境。 其它的小型窗口管理器有:,Window,maker,afterstep,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器。REDHAT9中有 window maker 但是默认不安装,大家可以装来试试。只要xinit再wmak。

23、er&就可以用windowmaker了。,使用LILO LILO是一个通用的引导管理器,可引导一台机器上安装的数种操作系统,包括Linux. 配置LILO的方法有很多种。这里我们将介绍两种最常用的方法:把LILO安装在硬盘的主引导记录里,及把LILO安装成只引导Linux的二级引导器。,LILO是从硬盘上引导Linux的最通常的方法。如果LILO安装在硬盘的主引导区,即MBR上,当硬盘引导时,它是最先被执行的代码。然后LILO就可以引导其他操作系统,如Linux 或MSDOS,并允许用户在引导时选择其一。,配置LILO,/etc/lilo.conf文件 配置LILO的第一步是建立LILO配置文。

24、件,通常是/etc/lilo.conf。下面看一个lilo.conf文件的例子。文件的第一节设置一些基本参数: boot=/dev/had compact delay=50 install=/boot/boot.boot.b map=/boot/map,boot行设置LILO应该把自己安装在哪个设备的引导记录里。这里我们将LILO安装在第一个非SCSI硬盘/dev/had的主引导记录里。如果从SCSI硬盘引导,设备名应类似/dev/sda。如果boot行给出的是一个分区名,如/dev/hda2,则LILO将作为一个二级引导器安装在这个分区。 compact行告诉LILO要进行某种优化。 lil。

25、o.conf中一般应该包含这一行。同样,一般也应该包含install行和map行。Install行指定的文件将作为引导扇区在安装LILO时被写进主引导区,map给出安装LILO时产生的map文件,这些文件应该在/boot目录中。,delay行则定义了LILO在引导缺省的操作系统前将等待多长时间,在这段时间内用户可以选择引导其他系统,50表示5秒。 引导MSDOS或windows的一段类似于: #MSDOS/windows:/dev/hda2 other=/dev/hda2 #分区 table=/dev/hda2含分区表的设备 label=msdosOS的名称(用在LILO引导菜单),GRUB使。

26、用,从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。LILO对于早期用户来说是比较熟悉的。这次Red Hat Linux用GRUB代替LILO,可见GRUB大有过人之处。,GRUB,它是Red Hat Linux用来在x86系统上装载操作系统的默认方法。GRUB的定义GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够。

27、开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。,二、GRUB的概述,装载GRUB和操作系统的过程,包括以下几个操作步骤: 1、装载基本的引导装载程序,这通常是第一步。基本引导装载程序必须是位于主引导扇区中一个非常小的空间,少于512字节。因此,基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是归结于在主引导扇区中没有足够的空间用于其他东西了。,2、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实际上是引出更高级的功能,以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。。

28、 3、装载在一个特定分区上的操作系统,如linux内核。一旦GRUB从它的命令行或是配置文件中,接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统。,注意:在一些文件系统以及文件系统的配置中,可能需要一个1.5步的文件,用来连接基本引导程序与第二引导程序之间的差异。 举个例子来说,如果第二步中的引导装载程序文件位于一个使用了第一步引导装载程序所不能访问的文件系统的分区中,那么就可能需要指示第一步引导装载程序,从1.5步文件中载入附加的指令来读取第二步引导装载程序的文件。,前面所提到的引导方法被称为直接装载。因为这种方法中使用的是直接装载操作系统的指令,没有用到。

29、任何在引导装载程序和操作系统主文件(如内核)之间的中间代码。然而,不同操作系统所采用的引导过程可能会与上面提到的有一些细微的不同。例如,微软的DOS和Windows操作系统在安装时,倾趋于完全重写主引导记录,而不是合并当前的主引导记录的配置。这将破坏掉其他操作系统保存在主引导记录中的所有信息,如Red Hat Linux。,GRUB支持直接和链式装载的引导方法。GRUB能用于几乎所有操作系统,绝大多数流行的文件系统,以及几乎所有的系统BIOS所能识别的硬盘。,GRUB包含许多特性,这使得GRUB比其他可用的引导装载程序更加优越。下面列出一些比较重要的特性: GRUB在x86机器上,提供一个真正。

30、基于命令行的,先于操作系统(pre-OS)的环境。它对于用确定的选项装载操作系统或收集系统信息方面,提供了最大程度的适应性。,GRUB的特性,GRUB支持逻辑块寻址(LBA)方式。LBA将用于寻找驱动器上文件的地址转换工作置于驱动器的硬件中,它被用在许多IDE和所有的SCSI硬盘中。在使用LBA之前,硬盘驱动器遇到一个1024柱面的限制,即BIOS不能找到在1024柱面后的文件(比如一个引导装载程序或是内核文件)。只要系统BIOS能支持LBA模式(大多数都支持),那么LBA就允许GRUB超越1024柱面的限制,引导操作系统。,GRUB的配置能在每次系统引导时被读取。这就避免了用户每次改变引导选。

31、项时都要重写一次主引导记录。大多数的引导装载程序都不能很老道地读取配置文件,并使用它们来设置引导选项。比如说,用户必需改变一个LILO的配置文件,然后运行一个命令将新的配置数据重写回系统的主引导记录。这种方法比GRUB所采用的方法危险,因为一个错误配置的主引导记录将让系统无法引导。在使用GRUB中,如果说配置文件被错误配置并且引导,那它也仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行操作系统。除开更新系统引导的第一步、第二步、或是菜单配置文件的位置,主引导记录是不会被触及到的,而这种情况是很少发生的。,注意:当GRUB的配置文件发生改变时,没有必要重新启动GRUB。所有的改变都能被。

32、自动地检测到。如果GRUB被重新启动,那么用户将退回到命令行方式的GRUB外壳下。,三、GRUB的术语,在使用GRUB前,最重要的事情之一就是理解这个程序是如何引用设备的,如系统硬盘驱动器、分区等。对于配置GRUB实现多操作系统的引导,这方面的信息是很重要的。,系统的第一个硬盘驱动器被GRUB称为(hd0)。在它上面的第一个分区被称为(hd0,0),第二个硬盘驱动器上的第5个分区被称为(hd1,4)。通常使用GRUB时,文件系统习惯上采用下面的方式命名: (,) 在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)被指定。,设备名称,GRUB是依照系统BIOS而确定。

33、的设备号,从0开始。基本IDE硬盘被标为0,第二IDE硬盘被标为1。这个排序大体上等同于linux内核用字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变为了1,依次类推。 注意:GRUB用于设备的命名系统是从0开始,而不是1。这常常是GRUB新手们常犯的最普遍的错误。,GRUB在命名设备和分区时,使用下面的规则: 系统使用IDE硬盘或SCSI硬盘,都没有关系。所有的硬盘都是用hd开始。软盘用fd开头。 当指定整个硬盘,不考虑它的分区时,简单地将逗号和分区编号取消即可。当告诉GRUB配置一个特定硬盘的主引导扇区时,这一点很重要。比如,(hd0)指定第一个设备,(hd3)指定第四个设。

34、备。 如果一个系统有多个驱动设备,知道由BIOS确定的驱动器顺序就很重要了。如果系统只有IDE或SCSI驱动器,那是相当简单的。但是如果有多个驱动器混合时,这就变得令人混乱了。,文件名称,当在GRUB中输入包括文件的命令时,比如在多操作系统中使用一个菜单列表,文件名必须直接在设备和分区后指定。一个绝对文件名的格式如下: (,)/path/to/file 大多数的时候,用户可以通过在分区上的目录路径后加上文件名来指定文件。这种方法是直接了当的。,另外,我们也可以将不在文件系统中出现的文件指定给GRUB,比如在一个分区最初几块扇区中的链式引导装载程序。为了指定这些文件,需要提供一个块列表(bloc。

35、klist),由它来一块一块地告诉GRUB文件在分区中的位置。当一个文件是由几个不同的块组合在一起时,需要有一个特殊的方式来写块列表。每个文件片断的位置由一个块的偏移量以及从偏移点起始的块数来描述,这些片断以一个逗号分界(comma-delimited)的顺序组织在一起。,考虑下面的块列表:0+50,100+25,200+1上面这个块列表告诉GRUB使用一个文件,这个文件起始于分区的第一块,使用了第0块到第49块,第99块到124块,以及第199块。,当使用GRUB装载诸如微软Windows这样采用链式装载方式的操作系统时,知道如何写块列表是相当有用的。如果从第0块开始,那么可以省略块的偏移量。

36、。作为一个例子,当链式装载文件在第一硬盘的第一个分区时,可以使用下面的命名:(hd0,0)+1 下面给出一个带类似块列表名称的chainloader命令。它是在设置正确的设备和分区作为根后,在GRUB命令行中给出的。chainloader +1,四、GRUB的接口,GRUB主要有三个强大的接口,它们提供了不同级别的功能。每个接口都允许用户引导操作系统,甚至可以在处于GRUB环境下的接口之间移动。,菜单接口如果GRUB是由Red Hat Linux的安装程序自动配置的,那么它默认的显示接口是菜单接口。在系统第一次启动后,一个操作系统或内核的菜单(事先已经用它们各自的引导命令配置好)将一个按名称排。

37、列的列表保存在这个接口中。使用箭头键选择一个非默认选项,然后按回车键来引导它。如果不是这样,一个记时器可能已经被设置,那么GRUB将启动装载那个默认的选项。在菜单接口上,按e键,对高亮菜单项中的命令进行编辑。按c键载入一个命令行接口。,菜单项目编辑器接口在引导装载菜单中按e键,就进入了菜单项目编辑器。用于项目的GRUB命令就显示在这里。在引导操作系统前,用户可以更改这些命令,添加(加在当前行后面,用o键;加在当前行前,用0),编辑(用e键),删除(用d键)。在所有的改变都完成后,用b键来执行这些命令,并引导操作系统。Esc键来放弃这些修改,将重新入标准的菜单接口。c键用来载入命令行接口。,命令。

38、行接口命令行是GRUB最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中,输入任何相关的GRUB命令,再回车就可以执行了。这个接口的功能有点类似于shell的功能,比如Tab键完成,前后文提示,输入命令时的Ctrl键组合,如Ctrl-a移到行的开头,Ctrl-e移到行的结尾。另外,箭头键,Home,End,Delete键与bash shell中一样用法。,接口使用的顺序 当GRUB环境开始载入第二步引导装载程序时,它寻找自己的配置文件。当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表,然后显示引导菜单接口。如果配置文件没有被找到,或者如果配置文件不能读取,那。

39、么GRUB将载入命令行接口,以允许用户手工输入必要的命令来启动操作系统。,如果配置文件不是正确的,那么GRUB将显示出错误,并请求输入。这点是很有帮助的,因为用户将能够看到问题发生在文件中的什么地方,并修复它。按下任意键,重新载入菜单接口,根据GRUB报告的错误,编辑菜单选项并纠正问题。如果这个修正失败了,那么错误将被报告,且GRUB将再次开始。,五、GRUB的命令,GRUB包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命令能接在命令名后面的选项,这些选项用空格隔开。下面的列表给出了最有用的一些命令: boot - 引导先前已经被指定并载入的操作系统或链式装载程序。 。

40、chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名。,displaymem - 显示当前内存的使用情况,这个信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。 initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当内核为了完全引导而需要某些模块时,这是必需的。,install p - 安装GRUB到系统的主引导记录。这个命令允许系统重启时出现GRUB接口。警告:install命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB信息之外的其他用于引导其他操作系统的信息都将丢失。在执行。

41、这条命令前,确定你对它有正确的了解。这条命令可以用几种不同的方式进行配置。,然而,它都要求指定在那里可以找到第一个引导装载程序的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引导装载程序应该被安装的硬盘,如(hd0)。选项告诉第一步引导装载程序第二步引导装载程序位于什么地方,例如(hd0,0)/grub/stage2。 p选项告诉install命令菜单配置文件,比如说(hd0,0)/grub/grub.conf。,kernel - 当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入。options选项是跟在kernel命令后面,在内核。

42、载入时传给内核。在Red Hat Linux中,一个kernel命令的例子看起来象下面的形式:kernel /vmlinuz root=/dev/hda5,上面这行表明了vmlinuz文件是从GRUB的根文件系统载入的,如(hd0,0)。同时,一个选项也被传给了内核。它指出当Linux内核载入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五个分区。如果有必要的话,这个选项后面还可以有多个选项。,root - 将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。 rootnoverify - 做root命令同样的事情,只是不挂入分区。。

43、除上面所述外,还有更多的命令可用。输入info grub,得到一个所有命令的完全列表。,六、GRUB的菜单配置文件,配置文件在GRUB菜单接口中,创建用于引导操作系统的列表。配置文件可以允许用户选择执行事先设置好的一组命令。这些命令既包括前面给出的命令,也包括一些只用于配置文件的命令。,下面这些命令只用于GRUB的菜单配置文件: color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如red/black。比如:color red/black green/blue default - 默认项目的标题名称。如果菜单接口超时,那它将被载入。,fallbac。

44、k - 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。 hiddenmenu - 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按Esc键,可以看到标准的GRUB菜单。 password - 这个命令被使用时,它可以防止不知道口令的用户编辑菜单的项目。,timeout - 这个命令设定了在GRUB载入由default命令指定的项目前的时间间隔,以秒为单位。 splashimage - 它指定在GRUB引导时所使用的屏幕图像的位置。 title - 设定用来装载一个操作系统的一组特定命令的标题。 字符#用来在菜单配置文件放置注释。,配置。

45、文件的结构,设置GRUB菜单接口全局参数的命令被放在文件的顶部,接下来的是用于各个操作系统引导的不同项目。,#grub.conf generated by anaconda #boot=/dev/had Default=0 Timeout=10 Splashimage=(hd0,4)/grub/splash.xpm.gz Title Red Hat Linux (2.4.20-2.48) root (hd0,4) kernel /vmlinuz-2.4.20-2.48 ro root=LABEL=/ initrd /initrd-2.4.20-2.48.img Title windows XP。

46、 rootnoverify (hd0,0) chainloader +1,以下是一个grub.conf的例子,Default=0一行表示的是默认情况下引导这个列表中的第一个分区(red hat linux)。Timeout=10会使GRUB在引导默认分区前暂停10秒(如果要编辑这个引导行,可以按e键来显示暂停的时间,或者按箭头键选择不同的操作系统来引导)。 splashimage行表示第一个磁盘上的第五分区(hd0,4)为引导分区(在这里/dev/hda5是引导分区)。GRUB加载splash.xpm.gz作为初始界面上的图像。初始界面作为引导界面的背景出现。,root (hd0,4)显示出G。

47、RUB引导加载程序位于第一个硬盘的第一个分区(hd0,0)上。GRUB将硬盘表示为hd,与是否是SCSI,IDE或其他类型的磁盘无关。 kernel行是引导映像(/boot/vmlinuz-2.4.20-2.48)和几个选项。这些选项将分区确定为最初加载的ro(只读),并用标记LABEL=/确定分区上根文件系统的位置。 initrd行确定初始RAM盘的位置,该盘含有引导过程期间所需的最少文件和目录。引导装载器可以装载初始RAM 盘(即initrd),其中可以包含挂装根文件系统所需的模块,这个文件告诉GRUB建立一个以Red Hat Linux为默认操作系统的菜单,设定10秒后自动引导。这里给出了2个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘分区表的命令。,重新启动,重新启动就是完全关闭系统,关掉电源,然后再打开。最简单的方法是用shutdown重新启动系统而不是仅仅停止系统。这要使用shutdown的-r选项,例如: shutdown r now 许多Linux系统可以通过按ctrl+alt+del组合键来重新启动系统。这是可以设置的,比如在多用用户系统中设置一定的延时也许更好。如果是谁都能接触到的系统,那么最好设置为按ctrl+alt+del组合键时什么也不干。

操作系统面试知识点总结-爱代码爱编程

绪论 操作系统的功能 用户接口:命令接口、程序接口、图形接口 处理机管理:进程控制、进程同步、进程通信、进程调度 存储管理:内存分配、内存保护、地址映射、内存扩充 设备管理:缓冲管理、设备分配、设备处理、虚拟设备管理 文件管理:文件存储空间管理、目录管理、文件读写管理、文件保护、文件系统的安全性、文件接口 操作系统的结构 内核(kerne

linux知识点大合集_发疯的man的博客-爱代码爱编程_linux小知识

http://man.linuxde.net/rpm linux文档 linux 操作系统 一.linux 操作系统概述 1.常见操作系统 - 服务端操作系统 : linux、unix、win

015. p2p技术详解(一):nat详解——详细原理、p2p简介_qq_20398345的博客-爱代码爱编程

http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值。 《P2P技术详解》系列文章 ➊  本文是《P2P理论详解》系列文章中的第2篇,总目录如下: 《P2P技术详解(一)

预习第一章 初识linux 笔记_夏天的杨树的博客-爱代码爱编程

预习第一章 初识Linux 笔记 报名了阿铭老师的网络课程差不多有一个月的时间了,终于要第一次交作业了…… 课堂笔记: 终于看见直播课了,激动还是有点小紧张。特别是各种考核各种分数,感觉一下子生活紧

os + linux books _siemens800的博客-爱代码爱编程

G:\soft\linuxsoft\linux_doc>dir (ebook) O'Reilly - Linux Command Directory.pdf                                                                         0 从硬盘安装Linux操作

pc机启动流程。pc如何从上电进入到操作系统?_sudo-wang的博客-爱代码爱编程_pc机启动过程

固件的初始化,尝试启动CPU电源刚接通后,处理器处于实模式(real mode)并且禁止了内存分页机制,且只有1MB的可用存储地址空间。启动时寄存器的初始化,保存着CPU执行指令地址的地址寄存器(EIP)指向的是0xFFFF

计算机操作系统知识框架要点复习,不包含习题!如有错误可以留言。_h6039的博客-爱代码爱编程

一、第一章 1.操作系统 操作系统是计算机系统中的一个系统软件。 它是这样一些程序模块的集合:它们能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便和有效地使用计算机,使整个计算机系统能高效地运行。 2.预输入 事先将装有用户程序和数据的纸带(或卡片)装入纸带

消息队列(MQ)原理总结-爱代码爱编程

  目录   1 概述 2 消息队列应用场景 2.1 异步处理 2.2 应用解耦 2.3 流量削峰 2.4 消息通讯 3 消息队列示例 3.1 电商系统 3.2 日志收集系统 4 常用消息队列 4.1 ActtiveMQ 4.2 RabbitMQ 4.3 ZeroMQ 4.4 Kafka 5 参考   1 概述  

Linux复习第一章-爱代码爱编程

第一章 Linux系统简介与环境搭建 1、Linux操作系统的核心程序由芬兰赫尔辛基大学的一名学生Linus Torvalds(林纳斯·托瓦兹)编写。 2、 Linux操作系统是一款免费使用,且可以自由传播的类Unix操作系统,它支持多任务、多用户、多线程及多CPU,从其诞生到现在,性能逐步得到了稳定提升。 3、Linux操作系统因其强大的功能和良好的稳

GitHub中文排行榜,帮助你发现高分优秀中文项目-爱代码爱编程

GitHub中文排行榜,帮助你发现高分优秀中文项目 转载:https://github.com/kon9chunkit/GitHub-Chinese-Top-Charts#Java Java #RepositoryDescriptionStarsLanguageUpdated1CyC2018/CS-Notes📚 技术面试必备基础知识、Leetcode

linux从接通电源到操作系统启动,Linux详细启动过程-爱代码爱编程

#等待用户登录 三、/etc/rc.d/rc.sysinit及/etc/rc.d/rc 在Redhat中,/etc/rc.d/tc.sysinit主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体 启动swapping 设置主机名 设置NIS域名 检查(fsck)并mount文件系统 打开quota 装载声卡模块