Gentoo Logo

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


10. 配置引导程序

内容:

10.a. 做出您的选择

介绍

现在您的内核已经配置并编译好,必要的系统配置文件也已正确配置好,是时候安装一个启动时用以启动你内核的程序了。这样的程序叫做引导程序

在Linux/PPC64平台上在grub2完成前我们只有yaBoot能用作引导程序。

10.b. 使用yaBoot

介绍

重要: 如果你正在使用64位userland,你需要使用yaboot-static软件包,因为yaboot不能编译成为64位的应用程序。32位userland用常规的yaboot软件包就好了。

目前有两种方法可以用来为你的系统配置yaBoot。你可以使用最新且改进过的yabootconfigyaboot-1.3.8-r1及以后的版本包含这个工具,它可用来自动配置yaboot。如果因为一些原因你不想让yabootconfig来自动配置/etc/yaboot.conf或者你正在一个G5上安装Gentoo(在这种平台上yabootconfig并不一定能运行成功),你可以修改已经安装在你系统上的例子文件。

重要: yabootconfig/ybin在IBM机器上无法工作。你必须通过另外一种方式安装yaboot:在IBM硬件上使用yaboot

注意: 如果你的根文件系统使用JFS文件系统,一定要添加内核参数ro。JFS必须要在只读模式下重放它的日志,然后再以读写模式挂载。

默认:使用yabootconfig

yabootconfig会自动侦测在你机器上的分区并会设置诸如Linux、Mac OS和Mac OS X这样的双重或三重的启动组合。

为了能使用yabootconfig,你的硬盘上必须拥有一个bootstrap分区,并且/etc/fstab的配置要和你的Linux分区情况一致。这些在之前的步骤中应该已经完成了。要开始配置,请先确保已经安装了最新版本的yaboot,运行emerge --update yaboot-static。这步是必须的,因为portage中的yaboot肯定是最新版本,但stage文件中却不一定。

代码 2.1: 安装yaboot-static

(64位userland)
# emerge --update yaboot-static

(32位userland)
# emerge yaboot

现在运行yabootconfig。首先,程序会确认bootstrap分区的位置。如果输出正确请键入Y。如果出现错误,请再次仔细检查你的/etc/fstab。yabootconfig会接着扫描你的系统设置,创建/etc/yaboot.conf并为你运行mkofbootmkofboot是格式化bootstrap分区以及安装yaboot的配置文件用的。

你可能需要校验/etc/yaboot.conf的内容。如果你在/etc/yaboot.conf中做了些更改(比如设置默认/启动的操作系统),请确保再次运行一次ybin -v以便将这些更改应用到bootstrap分区中去。

接下来请阅读重启系统

备选:手动yaBoot配置

首先确保你已经在系统上安装了最新版本的yaboot-static

代码 2.2: 安装yaboot

(64位userland)
# emerge --update yaboot-static

(32位userland)
# emerge yaboot

下面你可以发现一个完整的yaboot.conf文件。你可以任意修改它。

代码 2.3: /etc/yaboot.conf

## /etc/yaboot.conf
##
## 运行:“man yaboot.conf”可以得到更多详细帮助。在未看帮助前请不要做任何改动!!
## 也可以参考:/usr/share/doc/yaboot/examples可以得到一些配置的示例。

## 如果需要双重启动菜单,请添加以下一项或多项:
## bsd=/dev/sdaX, macos=/dev/sdaY, macosx=/dev/sdaZ

## 我们的bootstrap分区:

boot=/dev/sda2

## ofboot是Open Firmware指定bootstrap分区的方式。
## 如果没有定义过这个变量,则yaboot会在G5和某些G4机器上失效(除非
## 你将一些必要的参数传给mkofboot/ybin程序)。
## hd:X表示/dev/sdaX。


ofboot=hd:2

## hd:是Open Firmware称呼sda的方式
device=hd:

delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

#################
## 如果你有一个以上的内核或是启动选项的组合,这部分内容可以被复制
## ——用你的内核版本替换kernel-2.6.24-gentoo-r5
#################
image=/boot/kernel-2.6.24-gentoo-r5
  label=Linux
  root=/dev/sda3
  partition=3
  read-only

macos=hd:13
macosx=hd:12
enablecdboot
enableofboot

一旦yaboot.conf如你所希望的配置好后,你可以运行mkofboot -v将配置信息安装到bootstrap分区中。不要忘记这一步!mkofboot问你创建一个新的文件系统时选是。

如果一切都没问题,且你拥有和以上例子相同的选项,你下一步的重启会展示给你一个简单的、五个菜单项的启动菜单。如果你以后更新你的yaboot配置文件,你需要运行ybin -v来更新bootstrap分区——mkofboot只在初始设置时使用。

更多关于yaboot的信息,你可以参看yaboot项目。现在,请阅读重启系统来继续安装。

10.c. 在IBM硬件上使用yaboot

在IBM硬件上你无法运行yabootconfig或yabin。你需要经历以下几个步骤:

  • 安装yaboot-static
  • 运行dd if=/usr/lib/yaboot/yaboot.chrp of=/dev/sdXX(用你的PReP分区的磁盘和分区填入XX;这里是我们使用的例子/dev/sda1
  • 下一步构建你自己的yaboot.conf文件并置于/etc内。(再看一下以上的配置文件,参考一下yaboot.conf的man页面或者参考下如下的yaboot.conf示例)
  • 假设你在OF中的启动设备指向的是你含有prep启动分区的硬盘,它随后就能正常工作了,否则在IPL时,要进入多重启动菜单并把启动设备设置为包含prep启动分区的硬盘。
  • 搞定!

代码 3.1: IBM硬件的yaboot.conf

device=disk:
partition=2
root=/dev/sda2
default=linux
timeout=50

image=/boot/kernel-2.6.24-gentoo-r5
    label=linux
    append="console=ttyS0,9600"
    read-only

对于Power4、Power5、和一些基于blade的硬件,PReP磁盘分区和包含你内核文件的磁盘分区是在同一块物理磁盘上的,你可以使用一个简化的yaboot.conf文件。以下的内容应该足够了:

代码 3.2: PReP硬件的yaboot.conf

default = linux
timeout = 100
image=/boot/kernel-2.6.24-gentoo-r5
        label=linux
        read-only
        root = /dev/sda2
        append="root=/dev/sda2"

为了验证yaboot已经复制到PReP分区中:

代码 3.3: 验证yaboot安装到PReP上

# dd if=/dev/sda1 count=10 | grep ELF
Binary file (standard input) matches
10+0 records in
10+0 records out

如果上面的结果中输入输出相匹配的话就标志着yaboot已经正确安装好了。

10.d. 重启系统

退出chroot环境且卸载掉所有已挂载的分区。随后键入那个已经等待多时的魔幻命令:reboot

代码 4.1: 退出chroot,卸载所有的分区并重启

# exit
~# cd
~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
~# reboot

当然,请不要忘记将可启动的CD从光驱中取出,否则机器会再次启动CD,而不是你新安装的Gentoo系统。

当重启进入到您新装的Gentoo系统之后,请阅读结束您的Gentoo安装来完成剩下的工作。


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2008年 7月 7日

总结: 本架构存在几种引导程序。它们中的每一种都有自己的配置方法。我们会一步步来告诉你怎样根据你的需求来配置一个引导程序。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Xavier Neys
编辑

Joshua Saddler
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

Tobias Scherbaum
编辑

张乐
译者

沈辰俊
译者

杨珂
译者

叶宝泰
译者

杨小广
译者

vivian.ye
译者

余雷
译者

陈永骥
译者

王国辉
译者

娄东斌
译者

贾震
译者

余鈺炜
译者

陈代焱
译者

范华
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.