分享
 
 
 

Grub系统的启动及启动文件的配置

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

Grub可以以一定的方式引导多种内核,但是对于一些自由操作系统我们需要使用特殊的方法.如何启动操作系统:

Grub有两种不同的启动方法.一种就是直接启动操作系统,另一种方法就是将启动引导权将给另一个启动引导程序,由他来引导操作系统.一般而言,前者是更令人满意,因为我们不需安装和维护另一个启动引导程序.Grub是足够的灵活可以从单一的磁盘或是分区装入操作系统.然而后一种方法也是需要的,因为Grub并不会支持现在存在的所有的操作系统.

如何由Grub直接引导:

多种启动是Grub所支持的启动格式.为了方便,Grub还会支持Linux,FreeBSD,NetBSD,OpenBSD的启动.如果我们要启动其他的操作系统,我们就不得不使用chain-load来启动了.

一般情况下,Grub的启动步骤如下:

1 用root命令设置Grub的启动设备为存放系统启动镜像的驱动器.

2 用kernel命令装入内核镜像.

3 如果我们还需要模块,用module命令或是modulenounzip命令装入所需要的模块.

4 运行boot命令.

Linux,FreeBSD,NetBSD,OpenBSD可以用类似的简单方法进行启动.我们用命令kernel命令装入内核,然后运行命令boot.如果内核需要一些参数,只要在内核的文件名后加上所需要的参数就可以了.

如果我们要启动Grub不支持的操作系统,我们要用chain-load来启动.一般情况下,启动引导程序存入在系统安装分区的启动扇区.这样的系统的启动如下:

1 用rootnoverify命令设置Grub的启动设备:

grub> rootnoverify (hd0,0)

2 用makeactive命令设置活动标记:

grub> makeactive

3 用命令chainloader命令装入启动程序:

grub> chainloader +1

+1表明Grub要从开始的分区读入一个扇区.

4 执行命令boot

下面的部分我们来谈一些我们在启动特定系统时要注意的一些问题:

GNU/Hurd

因为GNU/Hurd是适应多重引导的,所以我们可以很容易的来启动他,在这一点并没有什么特殊的内容.但是我们不要忘记我们要为内核指定启动分区:

1 设置Grub的启动设备.一般情况下,我们可以用下面的命令来帮助我们:

find /boot/gnumach

2 用下面的命令装入内核及模块:

grub> kernel /boot/gnumach root=hd0s1

grub> module /boot/serverboot

3 执行boot命令.

GNU/Linux

我们可以很容易的由Grub来启动Linux.其启动方法如下:

1 设置Grub的启动设备.一般情况下,下面的命令可以帮助我们确定启动分区:

find /vmlinuz

2 装入内核:

grub> kernel /vmlinuz root=/dev/hda1

如果我们需要指定一参数,我们可以像下面的命令一样来指定:

grub>kernel /vmlinuz root=/dev/hda1 vga=ext

我们可以在Linux的源码树中得到所有的可用的选项.

3 如果我们使用initrd,我们要执行initrd命令:

grub> initrd /initrd

4 执行boot命令.

在这里我们要注意的就是如果我们用mem选项来指定内核所使用的内存时,我们要同时为Grub指定同样大小的内存.

FreeBSD:

Grub可以以ELF或是a.out格式直接装入内核.但是我们并不会推荐这样的做,因为有时FreeBSD的启动接口改动较大,所以有时Grub并不会正确的传入内核参数.在这样的情况下,我们推荐更为灵活的/boot/loader来代替.如下面的例子:

grub> kernel /boot/loader

grub> boot

NetBSD:

Grub可以以ELF或是a.out的格式直接启动NetBSD.我们可以用下面的步骤来做到:

1 指定Grub的启动设备

2 用kernel命令装入内核.如果我们要以ELF的格式启动,我们要加上--type=netbsd选项.如下面的命令:

grub> kernel --type=netbsd /netbsd-elf

3 执行boot命令.

OpenBSD:

与NetBSD的启动命令相同.

DOS/WINDOWS

Grub并不可以直接启动WINDOWS,所以我们要由chain load来启动这样的系统.然而他们的启动引导程序有一些特殊的定义,所以我们仅仅是使用chain-load并不可以很好的来完成工作.为了克服这样的问题,Grub为我们提供了两个帮助函数.

如果我们并不是在第一块硬盘上安装了DOS或是WINDOWS,我们需要使用硬盘交换技术,因为这样的系统只可以从第一个硬盘启动,而不可以从其他的硬盘启动.在Grub中我们要使用map命令,如下:

grub> map (hd0) (hd1)

grub> map (hd1) (hd0)

这样的命令在我们的第一个硬盘和第二个硬盘间进行了一次虚拟交换.

在这里我们要注意的就是如果系统使用BIOS来访问磁盘,这样的方法是很好效的.如果系统是使用特殊的驱动器,这样的方法就不可以起作用了.

而在这里出现的另一个问题:如果我们在一个硬盘上安装了多个DOS或是WINDOWS系统,而对于DOS或是WINDOWS来说有多个主分区,那么他们在启动时就会发生混乱.我们应避免这样的情况,如果我们确实这样做了,我们也是有解决办法的.我们可以使用分区的隐藏技术.

如果我们隐藏(hide)了一个DOS或是WINDOWS分区,DOS或是WINDOWS系统就会忽略这个分区.如果我们开放(unhide)了一个DOS或是WINDOWS分区,DOS或是WINDOWS就会检测这个分区.所以如果我们在我们的第一个硬盘上的第一个分区和第二个分区安装了DOS或是WINDOWS系统,而我们要启动第一个分区的拷贝,我们这样的来做:

grub> unhide (hd0,0)

grub> hide (hd0,1)

grub> rootnoverify (hd0,0)

grub> makeactive

grub> boot

SCO UnixWare

这个系统的启动我们要使用--force选项来进行chain loade,如下面的命令:

grub> rootnoverify (hd1,0)

grub> chainloader --force +1

grub> makeactive

grub> boot

QNX:

QNX似乎是要使用更大的启动引导程序,所以我们要像下面的这样的来引导他:

grub> rootnoverify (hd1,1)

grub> chainloader +4

grub> boot

配置文件:

从这里我们可以看到如果我们要启动一个系统,我们要输入许多的命令.Grub为我们提供了一个菜单的接口来解决这个问题.从这个启动菜单我们可以来选择我们要启动的系统.

使用菜单启动,我们需要在启动目录下建立一个名为men.lst的配置文件.下面我们来分析一下这个配置文件.

在这个文件的头部包含一些一般的设置以及和菜单接口相关的选项.我们可以在任何内容之前放入这些内容.

#

# Sample boot menu configuration file

#

正如我们想到的,这些语句是注释行.在Grub中以#及空格开头的会被Grub忽略掉.

# By default, boot the first entry.

default 0

第一个输入是默认的选择,在这里我们要注意的是这里由0开始而不是由1开始.

# Boot automatically after 30 secs.

timeout 30

正如在注释中所说的,Grub中会自动在30秒后启动默认的系统,除非我们要做出选择.

# Fallback to the second entry.

fallback 1

如果因为某些原因,第一个选择不可以很好的工作,我们可以进入第二个系统.

现在我们要开始我们真正的系统定义了.这里的每一个选择都是由一些特殊的命令开始的:title,而动作的描述则是放在其后.在这里我们要注意的是在每一个内容的后面并没有boot命令.这里因为如果Grub成功的装入了其他的命令以后就会自动执行boot命令.

命令title的参数是在启动画面上显示的内容.因为title是要显示的参数,所以我们可以在这里写上任何的内容.

# For booting GNU/Hurd

title GNU/Hurd

root (hd0,0)

kernel /boot/gnumach.gz root=hd0s1

module /boot/serverboot.gz

这会从第一个硬盘启动GNU/Hurd.

# For booting GNU/Linux

title GNU/Linux

kernel (hd1,0)/vmlinuz root=/dev/hdb1

这会从第二个硬盘启动GNU/Linux

# For booting Mach (getting kernel from floppy)

title Utah Mach4 multiboot

root (hd0,2)

pause Insert the diskette now^G!!

kernel (fd0)/boot/kernel root=hd0s3

这个会启动Mach系统,但是这个系统的内核是在软盘上而文件系统却是在hd0s3上.他也会包含一个暂停行,这会便利Grub显示一个提示,并在执行的其他的命令之前暂停.

# For booting FreeBSD

title FreeBSD

root (hd0,2,a)

kernel /boot/loader

这个内容会从第三个硬盘的第三个PC片的'a'分区启动FreeBSD.

# For booting OS/2

title OS/2

root (hd0,1)

makeactive

# chainload OS/2 bootloader from the first sector

chainloader +1

# This is similar to "chainload", but loads a specific file

#chainloader /boot/chain.os2

这个内容会使用chain load启动OS/2

title Windows NT / Windows 95 boot menu

root (hd0,0)

makeactive

chainloader +1

# For loading DOS if Windows NT is installed

# chainload /bootsect.dos

与上面的内容相同的,只是用来启动Windows.

# For installing GRUB into the hard disk

title Install GRUB into the hard disk

root (hd0,0)

setup (hd0)

这个命令内容会将GRUB安装在硬盘上.

# Change the colors.

title Change the colors

color light-green/brown blink-red/blue

在最后的一个内容中我们使用了color命令来改变启动菜单的颜色.这是一个相对特殊的命令,因为这个命令可以在命令行和菜单中使用.在GRUB还有许多类似的命令.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有