欢迎来到天天文库
浏览记录
ID:19599582
大小:30.50 KB
页数:7页
时间:2018-10-04
《bootloader引导技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BootLoader引导技术BootLoader引导技术引导多系统配置GRUB支持多操作系统引导。用GRUB引导后可以进入命令行模式或者菜单模式,可以通过灵活的命令行模式选择引导各个分区的操作系统,指定引导参数。GRUB支持三种引导方法,一种是直接引导操作系统内核,另一种是通过chainload进行间接引导,第三种就是通过网络引导操作系统。对于GRUB能够支持的Linux,FreeBSD,OpenBSD,NetBSD,GUNMach等可以通过直接引导完成,但是对于GRUB不支持的操作系统(如Windows),需要用第二种方法chainload来完成。下面
2、就分别来看看这几种引导方法:(1)直接引导配置过程通常如下:a)用root命令设置包含操作系统内核的根设备b)用kernel命令装载内核映象文件,如果这个内核引导的时有参数的话,可以直接将参数加在内核文件名的后面c)用module或modulenounzip装载内核模块d)boot开始引导(2)chainload引导a)设置GRUB的根设备,用rootnoverify(hdx,y)指定b)开始引导,用chainloader+1指定,此处“+1”是指示GRUB读入分区的第一个扇区的引导记录。c)执行boot开始引导以上是一般的chainloader方式,对
3、于DOS和WINDOWS,可以简单地用两条指令进行引导:chainloader(hdx,y)+1,然后boot,其中x,y用来指明所在分区号。(3)从网络引导:为了使GRUB能够支持从网络引导,需要在编译时打开网络支持选项(请参考源文件中的netboot/README.netboot)。另外,要在网络中设置两个服务:动态IP服务(BOOTP、DHCP或RARP)和FTP服务。然后,分别针对不同的服务器BOOTP,DHCP或RARP运行bootp,dhcp或rarp。如果一切设置无误的话GRUB就会给出IP,IPnetmask和TFTP服务器的IP和网关的
4、IP地址。最后,从网上得到操作系统的映象文件。下面是一个例子:grub>bootpProbing...[NE*000]NE2000base...Address:192.168.110.23Netmask:255.255.255.0Server:192.168.110.14Gateway:192.168.110.1grub>root(nd)grub>kernel/tftproot/gnumach.gzroot=sd0s1=====================================================================
5、=全世界linuxer都知道grub是什么东西,但对于MBR引导到grub再引导到具体操作系统的这个流程可能有不少朋友就比较迷糊了。这不,cu上一位朋友就发出了这样一个求助贴:假如现在一台电脑上装了WIN2000系统,那么我现在在装上LINUX系统和GRUB,那么假如把GRUB装在主分区的话,GRUB直接引导LINUX和WIN2000,我是可以理解的,因为MBR中是GRUB的STAGE1(对不对呢?),MBR通过检查DPT分区信息引导系统跳转至DBR(活动分区),我这里想问的活动分区是什么时候设的呢?那么装GRUB到MBR里,那原来MBR中的WIN的引导
6、信息是怎么处理的呢?是不是我们假如说装GRUB到MBR的时候,GRUB就把GRUB所在那个区设置为了活动分区了呢?然后GRUB引导时候,MBR就找到那个活动分区找到所需要的文件,然后继续呢?假如说把GRUB装到其他分区(非主引导区)的话,那是怎么样实现GRUB先启动的呢?不是先MBR吗?因为装到了其他分区,没有改主引导区,因此主引导区还是WIN2000的引导数据啊,怎么会GRUB先启动了呢?这是为什么呢?跟活动分区有关系没有呢?我看资料上写的是哪个系统启动哪个系统就是活动分区,可是那样的话,似乎就解释不通了啊,就是最最开始这个地方一直不懂,理不清楚。下面
7、就是cu各个玩家对这个问题分析讨论的总结。首先让我们看看传统的启动流程:加载并运行MasterBootRecord(MBR)主引导区内容(如lilo等)。然后扫描分区表,定位活动分区,并将活动分区上的引导扇区内容加载到内存中执行。系统引导过程主要由以下几个步骤组成(以硬盘启动为例)1、开机;2、BIOS加电自检(POST——PowerOnSelfTest),内存地址为0fff:0000;3、将硬盘第一个扇区(0头0道1扇区,也就是BootSector)读入内存地址0000:7c00处;4、检查(WORD)0000:7dfe是否等于0xaa55.若不等于则
8、转去尝试其他介质;如果没有其他启动介质,则显示“NoROMBASIC”,然后死机
此文档下载收益归作者所有