[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


9. 配置启动工具

内容列表:

9.a. 作出你的选择

介绍

       既然你的内核已经配置和编译好,必须的系统配置文件也已经正确的写好,该到为开机启动linux内核安装一个程序。这样一个程序叫做启动程序。对于x86架构来说,Gentoo Linux提供了GRUBLILO。但是在我们安装其中之一时,我们首先告诉你怎样配置framebuffer(以防你需要它)。有了framebuffer,你可以在(有限的)有图形化性能(如使用Gentoo提供的漂亮的bootsplash图像)下运行Linux命令行。

可选:Framebuffer

       如果你已经为你的内核配置好framebuffer支持(或者你使用genkernel的默认内核配置),如果要使用framebuffer,你还必须添加一个vga语句到你的启动程序配置文件。下面这个表给出了你可以使用的vga值。在这个配置例子中,我们使用800x600 @ 16bpp,也就是788

640x480 800x600 1024x768 1280x1024
8 bpp 769 771 773 775
16 bpp 785 788 791 794
32 bpp 786 789 792 795

       记住(或者写下)你需要的值,后面一会儿你就会需要它。

       现在从安装GRUB或者LILO继续。

9.b. 默认:使用GRUB

理解GRUB的专有名词

       理解GRUB最严格的一部分是熟悉GRUB怎样引用磁盘驱动器和分区。你的Linux分区/dev/hda1在GRUB下叫做(hd0,0)。注意,在hd0,0周围的括号是必须的。

       磁盘驱动器是从0开始计数而不是“a”,分区是从0开始计数而不是1。我们也注意到hd设备,只是算上硬盘,而不包括atapi-ide设备,如CDROM光驱和刻录机。同样的结构也适用于scsi驱动器。(一般情况下,它们的计数会比ide设备高,除非在bios里设定从scsi设备启动。)

       假设你有一个磁盘驱动器在/dev/hda,一个CDROM播放器在/dev/hdb,一个刻录机在/dev/hdd,没有SCSI磁盘驱动器;那么/dev/hdd7在这里就会翻译为(hd1,6)。这看起来很搞笑,但它确实如此,但是我们也可看到,GRUB提供了一个tab补全机制,这对有很多磁盘驱动器又被GRUB的计数理论所迷惑的人来说很方便。

       我们感受完这些后,该到安装GRUB的时候了。

安装GRUB

       安装GRUB之前首先emerge这个软件包:

代码 1: 安装GRUB

# emerge grub

       输入grub开始配置GRUB。你将会到一个grub>命令提示符下。现在,你需要输入正确的命令来安装GRUB启动记录到硬盘上。

代码 2: 开始GRUB shell

# grub

注释: 如果你的系统没有任何软盘驱动器,在上个命令下添加--no-floppy选项,防止grub检测(不存在的)软盘驱动器。

       在这个配置例子中,我们安装GRUB后,它将从boot分区/dev/hda1读出它的信息,把GRUB的启动记录安装到MBR上,这样我们打开电脑立刻看到的就是GRUB提示符。当然,如果你在安装过程中没有根据配置例子中所做的安装,需要类似的改变一下命令。

       GRUB的tab补全机制可以在GRUB里使用。比如说,你输入“root (”再加上一个Tab键,你将会看到一个设备列表(如hd0)。如果你输入“root (hd0,”再加上一个Tab键,你将会得到所存在的分区列表供你选择(如hd0,0)。

       通过使用tab补全,设置GRUB应该不会那么难了。现在,让我们继续配置GRUB:-)

代码 3: Installing GRUB in the MBR

grub> root (hd0,0)          (指出你的/boot分区的位置)
grub> setup (hd0)           (安装GRUB到MBR)
grub> quit                  (退出GRUB shell)

注释: 如果你要安装GRUB到一个特定的分区,而不是MBR,你需要相对应的改变setup命令,使其指向正确的分区。比如说,如果你要安装GRUB到/dev/hda3,那么这个命令就变成setup (hd0,2)。不过很少有用户需要这样做。

       虽然GRUB现在已经装上了,我们仍然需要给它写一份配置文件,这样GRUB会自动启动你最新建的内核。用nano(如果可以,也可用其他的编辑器)创建文件/boot/grub/grub.conf

代码 4: 创建/boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

       现在我们继续写一份grub.conf。在下面你将会发现有两个这个例子可用的grub.conf,内核镜像是kernel-2.4.25-gentoo。我们只对第一个grub.conf详细注解一下。

代码 5: 适用于非genkernel用户的grub.conf

# 这个列出默认的启动选项,0表示第一个,1表示第二个等等。
default 0
# 默认列表启动前需要等待的秒数。
timeout 30
# 非常漂亮和大的splash图像来增加点情趣:)
# 如果你没有安装显卡,注解掉这一行
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.4.25
# 内核镜像(或操作系统)所在的分区位置
root (hd0,0)
kernel /kernel-2.4.25-gentoo root=/dev/hda3

# 下面三行只用于带有Windows操作系统的双启动。
# 在这个例子中,Windows位于/dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
chainloader +1

代码 6: 适用于genkernel用户的grub.conf

default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.4.25
root (hd0,0)
kernel /kernel-2.4.25-gentoo root=/dev/ram0 init=/linuxrc real_root=/dev/hda3
initrd /initrd-2.4.25-gentoo

# 只用于双启动
title=Windows XP
root (hd0,5)
chainloader +1

注释: 如果你使用不同的分区和/或者内核镜像,相应的进行调整。但是,要确保任何的GRUB设备(如(hd0,0))对应于挂载点,而不是根目录。换句话说,既然(hd0,0)/boot,那么(hd0,0)/grub/splash.xmp.gz对应于/boot/grub/splash.xpm.gz

       如果你需要给内核传递其他的参数,只需简单的在内核命令后面加上就行。我们已经传递了一个选项(root=/dev/hda3或者real_root=/dev/hda3),但是你也可以传递别的。作为一个例子,我们给前面讨论过的framebuffer使用vga语句:

代码 7: 添加vga语句作为一个内核选项

title=Gentoo Linux 2.4.25
  root (hd0,0)
  kernel /kernel-2.4.25-gentoo root=/dev/hda3 vga=788

       genkernel用户应该只到他们的内核使用同LiveCD一样的启动选项。比如说,如果你有SCSI设备,你应该添加doscsi内核选项。

       现在保存grub.conf文件并退出。到目前为止,GRUB已经全面的配置完毕,你可以从安装必须的系统工具继续。

       如果你对GRUB有更多的问题,请参见GRUB常见问题回答或者GRUB手册

9.c. 另一个选择:使用LILO

安装LILO

       LILO,全名LInuxLOader,是一个可靠和真正的Linux启动程序。但是它缺乏一些GRUB有的特点(这也是为什么GRUB收到流行的原因)。而LILO仍然使用的原因是因为在某些系统中,GRUB不能工作,而LILO可以。当然,它也经常使用到,因为一些人理解和习惯用它。总之,Gentoo支持两者,而明显的你选择使用LILO。

       安装LILO是一件轻而易举的事情,只需使用emerge

代码 8: 安装LILO

# emerge --usepkg lilo

配置LILO

       你必须创建/etc/lilo.conf来配置LILO。启动你最喜欢的编辑器(在这个手册里我们为保持一致性,使用nano)创建这个文件。

代码 9: 创建/etc/lilo.conf

# nano -w /etc/lilo.conf

       在几个章节前,我们已经告诉你要记住你所创建的内核镜像的名字。在下面这个lilo.conf的例子中,我们假设内核镜像名字为kernel-2.4.25-gentoo。我们在这个例子中也使用同样的分区。这也分成两个部分:

代码 10: /etc/lilo.conf样例

boot=/dev/hda             # 安装LILO到MBR
prompt                    # 给用户选择其他启动选项的机会
timeout=50                # 在启动默认选项之前等待5秒钟
default=gentoo            # 当时间过了后,启动“gentoo”选项
# 只用于你使用framebuffer的情况。否则去掉这一行:
vga=788                   # Framebuffer设置。根据你的喜好调整

# 适用于非genkernel用户
image=/boot/kernel-2.4.25-gentoo
  label=gentoo            # 给这个启动选项一个名字
  read-only               # 根目录启动时只读。不要改变此项!
  root=/dev/hda3          # 根目录所在位置

# 适用于genkernel用户
image=/boot/kernel-2.4.25-gentoo
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc real_root=/dev/hda3"
  initrd=/boot/initrd-2.4.25-gentoo

# 下面两行仅用于带有Windows操作系统的双启动
# 在这个例子中,Windows位于/dev/hda6。
other=/dev/hda6
  label=windows

注释: 如果你使用不同的分区表和/或者内核镜像,相应的进行修改。

       如果你要传递额外的选项给内核,在启动选项中添加一条append语句。作为一个例子,我们添加vga=788语句来启用framebuffer:

代码 11: 使用append来添加内核选项

image=/boot/kernel-2.4.25-gentoo
  label=gentoo
  read-only
  root=/dev/hda3
  append="vga=788"

       genkernel用户应该知道他们的内核使用同LiveCD一样的启动选项。比如说,如果你有SCSI设备,你应该添加doscsi内核选项。

       现在保存文件并退出。为完成LILO的安装和配置,你必须运行/sbin/lilo,这样LILO将会把/etc/lilo.conf应用到你的系统里(如把自己安装到磁盘里)。记住,每次你安装一个新的内核,你都得重新运行/sbin/lilo

代码 12: 完成LILO的安装

# /sbin/lilo

       现在从安装必要的系统工具继续。


[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


本文档内容按照Creative Commons - Attribution / Share Alike协议发布。 Copyright 2004 Gentoo.LinuxSir.ORG 如果有什么问题、建议、意见、评论,请Email联系管理员