您已经设置好一切,重启了您的机器,突然您想更改内核启动参数,甚至启动另一个内核。糟糕!现在机器正在启动,您该怎么办?好吧,冷静放松,深呼吸,我们有解决方案!不幸的是,当您了解它时,您的机器已经启动完成了 ;o)
首先,您必须学习如何在启动序列期间与 PALO 交互。您必须进入 BOOT_ADMIN,如 第 2.1.1 节 中所述。对于一些旧型号(直到 712 左右),您必须添加ipl(或isl)字符串到您在 BOOT_ADMIN 控制台中的启动命令
BOOT_ADMIN> boot pri ipl |
您只需输入与您要更改的参数对应的编号。按 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 编写的上述文件的启发。
此示例由 Michael Damaschke 建议。我们将使用 第 2.1 节 和 第 3.4.1 节 中解释的概念,并参考 第 2.2 节 中看到的控制台等概念。那么,让我们开始讲述快乐的 PA/Linux 用户启动内核的故事,也称为“我不知道如何配置我的工作站以在启动序列期间使用我想要的内核!”。
打开工作站电源后,控制台上的消息会告诉您工作站即将自动启动引导序列,除非您按住 Esc 键以停止自动引导过程。这是一个非常困难的步骤:您必须按住 Esc 键 ;o)
![]() | 根据您的型号,您可能需要按住此键相当长一段时间。 |
![]() | 在某些情况下,当使用图形控制台时,显示器可能启动太慢,并且不会让您看到警告消息。一个好的解决方法是密切关注键盘指示灯:当它们全部同时闪烁时,就是按下并按住 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 键来启动我们的新内核。
![]() | 除非您真的知道自己在做什么,否则请不要更改任何其他参数! |
就是这样! PALO 对您来说不再有秘密了 :-)
![]() | 正如您可能已经注意到的,BOOT_ADMIN 界面可以有多种形式,所以如果您的界面与我们的示例不完全匹配,请不要失望。 |
[1] | 要保存您的更改,您需要在系统启动并运行时运行 /sbin/palo,它会将配置文件 ( 中包含的所有参数写入磁盘,/etc/palo.conf),您可以在需要时对其进行适当的修改。 |
[2] | 对于那些想知道最后的 0 是什么意思的人,它是设备 LUN。由于大多数 SCSI 设备只有一个 LUN(尤其是磁盘),因此您可以像本例中一样安全地使用 0。 |