免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1558 | 回复: 0
打印 上一主题 下一主题

在HP rx2600 Itanium2上安装Gentoo 2006.0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-08 15:44 |只看该作者 |倒序浏览
首先要了解的

     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 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP