Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101426970
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-29 16:43:25

作者: Mike Petullo/黄永兵 译 出处:51CTO.com 
 
网络正确地设置boot-device,我们需要找出Open Firmware认出的我们闪存盘的名字,通过ls命令显示闪存盘路径,并打印出设备树:

> dev / ls
[...]
/pci@f2000000
[...]
/usb@1b,1
[...]
/disk@1
[...]

现在我们知道了一点关于计算机固件程序的知识,我们必须花些时间研究固件初始化执行程序:bootloader。通常,运行在苹果PowerPC架构上的Linux系统使用一个叫做yaboot的程序来启动系统,yaboot与LILO或GRUB类似,它包含两个关键程序:ofboot.b和yaboot。ofboot.b提供第一阶段启动过程,实际上,ofboot.b的工作决定了启动什么操作系统,例如:如果一台电脑上同时安装了Mac OS X和Linux系统,ofboot.b执行Mac OS X或Linux的bootloader,如果用户选择载入Linux,ofboot.b执行yaboot,第二阶段启动过程,然后yaboot载入Linux内核和initrd。图3提供了一个基于PowerPC架构的Linux如何使用一个加密的root文件系统启动的实例。

3

用Open firmware启动一个基于PowerPC系统的过程

我们的可移动启动设备需要ofboot.b和yaboot程序,一个Linux内核和一个包括加密密钥的initrd文件。苹果目前基于PowerPC的架构预设它的启动介质格式化为HFS。

1)使用parted程序在闪存盘上创建正确的可启动的分区(我的是64MB大小,用设备节点/dev/sda访问)

# parted /dev/sda
(parted) mklabel mac
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor    Start       End     Filesystem  Name                  Flags
1          0.000      0.031              Apple
(parted) mkpart primary hfs 0.031 62.500
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor    Start       End     Filesystem  Name                  Flags
1          0.000      0.031              Apple
2          0.031     62.500              untitled
(parted) set 2 boot on
(parted) name 2 Apple_Boot
(parted) quit

2)在启动分区上创建HFS文件系统
# hformat /dev/sda2

3)通过修改/mnt/encroot/etc/yaboot.conf配置yaboot启动恰当的设备,下面是一个最小配置例子:

boot=/dev/sda2
ofboot=/pci@f2000000/usb@1b,1/disk@1:2
partition=2
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
default=linux
image=/vmlinux
        label=linux
        root=/dev/hda4
        initrd=/initrd.gz
        read-only

值来自我们先前检查的Open Firmware设备树,是PCI总线f2000000上的第一块USB磁盘,最有兴趣的是:2意味着分区2

4)安装启动程序和内核到/dev/sda2:

# ybin --config /mnt/encroot/etc/yaboot.conf -v
# mount /dev/sda2 /media/usbstick
# cp /boot/vmlinux /media/usbstick

阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~