- 论坛徽章:
- 0
|
首先要了解的
http://www.gentoo.org/proj/en/re ... 4-release-notes.xml
关于可扩展固件界面(Extensible Firmware Interface,EFI)
IA-64 使用 Intel 最新的可扩展固件界面 (Extensible Firmware Interface, EFI)。与传统的 x86 BIOS 只了解分割区表和主开机记录 (MBR) 而不知道其他开机设备的特点不同,EFI 可以 对 FAT16 和 FAT32 格式的硬盘分割区进行读写操作。这个特点简化了通常很难以理解的系统启动过程。系统的 boot-loader 以及 EFI 固体支持一个完全的档案系统来保存启动机器所需要的所有档案。这意味着在一个 IA-64 系统上的系统磁盘具有一个附加的专门为 EFI 服务的磁盘分割区而不是像传统系统上只是简单的 MBR 或者开机块记录。
http://developer.intel.com/techn ... htm?iid=sr+efi&
http://debian.planetmirror.com/r ... /ch05s01.html.zh_TW
EFI Shell
EFI Shell 是一个用来启动应用程序、载入 EFI 协议和设备驱动程序、执行简单脚本的控制台界面。它和 DOS 控制台相仿,只能够进入 FAT16 (VFAT) 格式化的介质。
EFI Shell 还包含能够在 EFI 系统分区上使用的常用工具。这些工具有:edit、type、cp、rm、和 mkdir。要获得工具列表和其它命令,在 EFI Shell 提示下键入 help。
或者在这里有EFI Shell 命令参考:
http://docs.hp.com/zh_cn/5991-1250/ch04s13.html#aes-npar-287a
在 EFI Shell 提示下键入以下命令:
EFI Shell>map
可以列举所有 EFI 能够识别的设备和文件系统,所有列举项目中以 fs 开头的是 EFI 能够读取的 FAT16 文件系统。所有列举项目中以 blk 开头的是 EFI 能够识别的块设备。
EFI 分区
当为 Linux 在硬盘驱动器上建立分区时,你必须创建一个 FAT16 (VFAT) 格式的系统分区,并有一个/boot/efi/ 挂载点。该分区包含安装了的 Linux 内核以及 ELILO 配置文件(elilo.conf)。elilo.conf 文件包含你可以引导系统的内核列表.
开始安装吧
现在将install-ia64-minimal-2006.0.iso刻成的cd装入光驱,启动系统,在Removable Media Boot标签上回车
1.分区
IA64 EFI 固件支持 GPT 和 MS-DOS 两种分区表 (或者磁盘标记) 格式。 MS-DOS 格式通常用在 i386 PC 上,并且对于 IA64 系统来说并不合适推荐使用。尽管安装程序同时提供了 fdisk 你应该只采用 parted 因为只有它能够同时正确地管理 GPT 和 MS-DOS 分区表。
mklabel gpt
mkpartfs primary fat 0 500
mkpartfs primary linux-swap 501 1500
mkpartfs primary ext2 1501 6500
set 1 boot on
print
quit
这里创建了一个新的分区表,以及三个分区分别用做 EFI 引导分区,交换空间以及一个根文件系统。最后它设置了 EFI 分区的引导标记。分区将用兆字节以及起始和结束位置到磁盘开始的偏移量来表示。因此,比如在上面我们在到磁盘开始处偏移量为 1501MB 的地方开始创建了一个 5999MB ext2 文件系统。
gentoo的启动光盘上的parted只支持ext2,不支持ext3,而稍后你到chroot环境,重新emerge的parted会支持ext3.print命令显示出来的number 1,2,3,分别对应/dev/sda1 /dev/sda2 /dev/sda3 。
2. 下面可以按照Gentoo的HAND BOOK干活了:
1. #passwd
2. #ifconfig eth0 IP_ADDRESS netmask 255.255.255.0 up
#route add default gw GATEWAY
#/etc/init.d/sshd start
3. 装载硬盘分区
#mount /dev/sda3 /mnt/gentoo
这里没有mount /dev/sda1 ,因为EFI要求/boot分区必须不能被mount,否则安装elilo时会报错,而无法安装。
4. install-ia64-minimal-2006.0 CD里没有stage文件,所以需要自己下载,然后将下载下来的stage3-ia64-2006.0.tar.bz2拷贝到一个临时目录,解压:
#cd /mnt/gentoo
#tar xjvpf stage3-ia64-2006.0.tar.bz2
它会创建bin boot dev etc home lib root sbin usr var等目录和相关文件,你看,它又建了一个/boot目录,你可以使用它,也可以不用,出于习惯,我一会儿还是用了这个目录.
5. 很遗憾,光盘里也没有portage文件,所以你要自己下载portage-20060327.tar.bz2到一个临时目录,然后解压,这个文件是noarch的。
#tar xvjf portage-20060327.tar.bz2 -C /mnt/gentoo/usr
6. distfile也没有,你可以下载,或者从其他gentoo系统上拷贝,它也是noarch的。
#mkdir /mnt/gentoo/usr/portage/distfiles
7. 设定时区
8. 编辑并复制reslov.conf
#cp /etc/reslov.conf /mnt/gentoo/etc
挂载proc
#swapon /dev/sda2
#mount -t proc none /mnt/gentoo/proc
9. #chroot /mnt/gentoo /bin/bash
#env-update
#source /etc/profile
10. 现在你进入到chroot环境了,去搞一个最新的内核吧
#emerge gentoo-source
11.设定核心
#cd /usr/src/linux
#make menuconfig
需要说明的是这里:
Processor type and features --->
System type (HP-zx1/sx1000) --->
( ) generic #For any supported IA-64 system
( ) DIG-compliant
(X) HP-zx1/sx1000 #For HP systems
( ) HP-zx1/sx1000 with software I/O TLB
( ) SGI-SN2
( ) Ski-simulator
我一开始选择的是generic,这是默认的,结果编译了无数遍,都无法成功引导,我的英文水平理解不了for any是什么意思 后来我查了资料,rx2600是采用了HP的zx1芯片。
记得将USB相关驱动编译进内核,因为rx2600是USB键盘。
#make
#make modules_install
12. 好了,现在在/usr/src/linux下有一个 vmlinux生成了,这就是我们要的,以前他在arch/i386/boot/下。
#cp vmlinux /boot/ 习惯了
# vi /etc/module.autoload.d/kernel-2.6 指定开机要加载的模块。
13.编辑你的fstab
记住不要mount /dev/sda1这个boot分区,在Itanium下,这是不允许的。
编辑/etc/hosts, /etc/conf.d/domainname ,/etc/conf.d/net
config_eth0=("192.168.0.12 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0=("default gw 192.168.0.1"
net文件变成这样了,我记得以前不是这样的。
14.安装配置BootLoader
#emerge elilo
它会自动安装dosfstools,pciutils,efibootmgr,gun-efi和elilo包,没问题看来他就是为EFI分区准备的。
在/etc下会有一个elilo.conf配置文件,还有一个Shell文件/usr/sbin/elilo是用来安装的,另外一个efi文件在/usr/local/lib/elilo/elilo.efi。
现在编辑配置文件
#vi /etc/elilo.conf
timeout=50
boot=/dev/sda1
install=/usr/lib/elilo/elilo.efi
delay=20
default=gentoo
image=/boot/vmlinux (这里是我们编译好的核心的位置)
label=gentoo
read-only
root=/dev/sda3
read-only
看上去和grub差不多,也可以指定append参数和initrd=ramdisk。
执行安装程序
#elilo -C /etc/elilo.conf
什么提示也没有,那就是成功了,他在EFI分区创建了一个gentoo目录,然后将elilo.conf,elilo.efi 还有你编译好的核心拷贝过去了。
15.点上一只烟 init 6
... ...
tips:
在我成功引导内核之前,我看了这个文档
http://www.novaglobal.com.sg/?q=book/print/8,得到启示,将Gentoo启动光盘上的内核文件复制到硬盘上,然后用elilo安装到EFI分区,就成功引导了,于是确认,问题就是出在内核编译上,而不是elilo上。
BTW:
因为我反复的重启系统,现在我的rx2600在报:
BMC System Event Log is Full
我不知道该如何清除SEL,HP的800电话周末没人接,如果哪位大侠知道怎么处理,请一定告知!
[ 本帖最后由 luodarou 于 2006-4-9 09:32 编辑 ] |
|