3.4. 如何在启动初期使用 PALO

3.4.1. 原理

您已经设置好一切,重启了您的机器,突然您想更改内核启动参数,甚至启动另一个内核。糟糕!现在机器正在启动,您该怎么办?好吧,冷静放松,深呼吸,我们有解决方案!不幸的是,当您了解它时,您的机器已经启动完成了 ;o)

首先,您必须学习如何在启动序列期间与 PALO 交互。您必须进入 BOOT_ADMIN,如 第 2.1.1 节 中所述。对于一些旧型号(直到 712 左右),您必须添加ipl(或isl)字符串到您在 BOOT_ADMIN 控制台中的启动命令

BOOT_ADMIN> boot pri ipl
在大多数 PA-RISC 机器上,系统会询问您是否要与 IPL 交互。您只需回答“y”并按 Enter 键。然后您将进入 PALO 配置显示界面,其中列出了所有参数及其对应的编号。

您只需输入与您要更改的参数对应的编号。按 Enter 键,修改它,然后再次按 Enter 键验证更改。系统将重新显示新列表。此修改不是永久性的[1]!如果您想添加一个补充参数,请选择任何一个参数,并在编辑行上写入您的参数,以空格开头

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 0
3/boot/vmlinux initrd=3/initrd.img
						
验证后,列表将多一个参数。如果您想删除一个参数,请选择它并擦除整个条目。您将看到列表少一个参数。

有关 PALO 的更多信息,请查看 PALO README。安装 palo 软件包后,您可以在以下位置找到此文件的副本:/usr/share/doc/palo/README.html。本 HOWTO 章节主要受到 Paul Bame 编写的上述文件的启发。

3.4.2. 完整示例

此示例由 Michael Damaschke 建议。我们将使用 第 2.1 节第 3.4.1 节 中解释的概念,并参考 第 2.2 节 中看到的控制台等概念。那么,让我们开始讲述快乐的 PA/Linux 用户启动内核的故事,也称为“我不知道如何配置我的工作站以在启动序列期间使用我想要的内核!”。

打开工作站电源后,控制台上的消息会告诉您工作站即将自动启动引导序列,除非您按住 Esc 键以停止自动引导过程。这是一个非常困难的步骤:您必须按住 Esc 键 ;o)

Note

根据您的型号,您可能需要按住此键相当长一段时间。

Tip

在某些情况下,当使用图形控制台时,显示器可能启动太慢,并且不会让您看到警告消息。一个好的解决方法是密切关注键盘指示灯:当它们全部同时闪烁时,就是按下并按住 Esc 键的正确时机。如果您仍然遇到问题,请参阅 第 2.2 节

有几种不同的方法可以访问 BOOT_ADMIN(请参阅 第 2.1.1 节)。如果您有一台旧机器,您将看到显示一条信息消息,其中工作站的固件告诉您它将开始搜索所有可引导设备,或者您可以通过按住 Esc 键来中断此过程。这与刚才提到的过程相同,您必须按下 Esc 键。

像往常一样,在某些机器上,您可能会看到一个菜单,您应该按下 a 键,然后按 Enter 键。您现在正面临可怕的 'BOOT_ADMIN>' 提示符 :^)。首先,我们将关闭自动启动过程,通过输入以下行

BOOT_ADMIN> auto boot off

然后按 Enter 键进行验证。这将阻止机器进一步尝试自动启动。换句话说,您不必使用 Esc 键停止启动过程,它将在后续重启时自行停止并等待您的指示。

现在,您必须告诉系统您想从哪个启动设备启动。如果是硬盘驱动器,它必须有一个 'f0' 分区在开头(请参阅 第 4 章)。

在此示例中,旧内核是vmlinux而新内核是vmlinux-2.4.17-pa3。选择的 SCSI 启动设备由以下设计:SCSI.X.0, 其中X是您要从中启动的磁盘的 SCSI-ID[2]例如:

BOOT_ADMIN> boot SCSI.5.0

在上一条命令行末尾,您必须添加IPL令牌,如果您有 HP 9000/7xx 系统,则指定您要与 IPL 交互。如果您有更新的硬件,系统无论如何都会询问您是否要与 IPL 交互

Interact with IPL (Y or N)?>

输入 Y 并按 Enter 键。现在,您可以手动配置 PALO 启动参数。将显示一个新菜单,您可以在行 ' 上配置0' (默认选中)启动分区号和启动内核的路径。

这是从 PALO 1.5 版本中提取的 A500 串行控制台输出的完整会话日志。您可以在 B.1 节 中找到使用旧版本 palo 的会话日志,例如 Debian 3.0 安装盘上的版本。

Main Menu: Enter command or menu > bo scsi.5.0
Interact with IPL (Y, N, or Cancel)?> y

Booting...
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 1.5 root@c3k Fri May 14 16:17:38 MDT 2004
Skipping extended partition 6 - beyond reach of IPL

Partition Start(MB) End(MB) Id Type
1               1      31   f0 Palo
2              32     153   83 ext2
3             154    1107   82 swap
5            1108    5875   83 ext2

PALO(F0) partition contains:
    0/vmlinux64 5279419 bytes @ 0x44000

Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently used by firmware (serial).
Current command line:
2/vmlinux root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux
 1: root=/dev/sdb5
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 0
2/vmlinux-2.6-cvs initrd=2/initrd.img-cvs
Current command line:
2/vmlinux-2.6-cvs initrd=2/initrd.img-cvs root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux-2.6-cvs
 1: initrd=2/initrd.img-cvs
 2: root=/dev/sdb5
 3: HOME=/
 4: console=ttyS0
 5: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 1

Current command line:
2/vmlinux-2.6-cvs  root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux-2.6-cvs
 1: root=/dev/sdb5
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? b
					

PALO 最初设置为启动内核文件vmlinux它位于 SCSI 设备 ID 5 LUN 0 的第二个分区上。(我们知道这一点,因为我们已要求 BOOT_ADMIN 在此设备上启动)。但这次我们想要另一个内核。我们按下了 Enter 键(以验证默认选择 '0'),并修改了文本以满足我们的需求,这里vmlinux-2.6-cvs。我们还添加了一个initrd=2/initrd.img-cvs参数到命令行。我们通过按 Enter 键验证了我们的更改。最后,我们决定我们不需要这个额外的参数,所以我们选择了它并擦除了它。最后,它再次询问我们想要编辑哪个字段,我们只输入了 'b' 而不是任何数字,然后按 Enter 键来启动我们的新内核。

Caution

除非您真的知道自己在做什么,否则请不要更改任何其他参数!

就是这样! PALO 对您来说不再有秘密了 :-)

Note

正如您可能已经注意到的,BOOT_ADMIN 界面可以有多种形式,所以如果您的界面与我们的示例不完全匹配,请不要失望。

注释

[1]

要保存您的更改,您需要在系统启动并运行时运行 /sbin/palo,它会将配置文件 ( 中包含的所有参数写入磁盘,/etc/palo.conf),您可以在需要时对其进行适当的修改。

[2]

对于那些想知道最后的 0 是什么意思的人,它是设备 LUN。由于大多数 SCSI 设备只有一个 LUN(尤其是磁盘),因此您可以像本例中一样安全地使用 0。