[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]
9.a. 作出你的选择
介绍
既然你的内核已经配置和编译好,必须的系统配置文件也已经正确的写好,该到为开机启动linux内核安装一个程序。这样一个程序叫做启动程序。对于x86架构来说,Gentoo Linux提供了GRUB和LILO。但是在我们安装其中之一时,我们首先告诉你怎样配置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 |
记住(或者写下)你需要的值,后面一会儿你就会需要它。
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
|
现在从安装必要的系统工具继续。
[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]