6. MILO 的用户界面

一旦您正确安装/加载/运行 MILO,您将在屏幕上看到 MILO (MIniLOader 的缩写) 提示符。这里有一个非常简单的界面,您必须使用它来引导特定的 Linux 内核镜像。输入 "help" 是一个好主意,因为它提供了命令的有用摘要。

6.1. ''help'' 命令

可能是 MILO 最有用的命令

MILO> help
MILO command summary:

ls [-t fs] [dev:[dir]] 
                    - List files in directory on device
boot [-t fs] [dev:file] [boot string] 
                    - Boot Linux from the specified device and file
run [-t fs] dev:file 
                    - Run the standalone program dev:file
show                - Display all known devices and file systems
set VAR VALUE       - Set the variable VAR to the specified VALUE
unset VAR           - Delete the specified variable
reset               - Delete all variables
print               - Display current variable settings
help [var]          - Print this help text

Devices are specified as: fd0, hda1, hda2, sda1...
Use the '-t filesystem-name' option if you want to use
  anything but the default filesystem  ('ext2').
Use the 'show' command to show known devices and filesystems.
Type 'help var' for a list of variables.

注意bootopt命令仅出现在 AlphaPC64 (和类似) 系统上。请参考您主板的文档以了解它的具体含义。

设备。 在您使用需要用到设备的命令之前,不会进行设备初始化。第一个show, ls, bootrun命令都会导致 MILO 内的设备被初始化。设备的命名方式与 Linux 本身命名它们的方式 (完全) 相同。因此,第一个 IDE 磁盘将被称为 'hda',它的第一个分区将被称为 'hda1'。使用show命令来显示可用的设备。

文件系统。 MILO 支持三种文件系统,MSDOS、EXT2 和 ISO9660。只要设备可用,MILO 就可以列出bootrun存储在这些文件系统之一上的镜像。MILO 的默认文件系统是EXT2因此您必须告诉 MILO 文件系统是其他类型。所有使用文件名的命令都允许您使用-t [文件系统]选项来传递文件系统。因此,如果您想列出 SCSI CD-ROM 的内容,您可以输入以下命令

     MILO> ls -t iso9660 scd0:

变量。 MILO 包含一些可设置的变量,这些变量有助于引导过程。如果您通过 Windows NT ARC 固件加载,那么 MILO 将使用该固件设置的引导选项环境变量。对于某些系统,MILO (例如,AlphaPC64) 维护着自己的一组环境变量,这些变量在每次启动时都不会更改。这些变量是

MILO> help var
Variables that MILO cares about:
  MEMORY_SIZE      - System memory size in megabytes
  BOOT_DEV         - Specifies the default boot device
  BOOT_FILE        - Specifies the default boot file
  BOOT_STRING      - Specifies the boot string to pass to the kernel
  SCSIn_HOSTID     - Specifies the host id of the n-th SCSI controller.
  AUTOBOOT         - If set, MILO attempts to boot on powerup
                     and enters command loop only on failure.
  AUTOBOOT_TIMEOUT - Seconds to wait before auto-booting on powerup.

6.2. 引导 Linux

命令boot从设备引导 Linux 内核。您需要有一个 Linux 内核镜像,它位于 EXT2 格式化的磁盘 (SCSI、IDE 或软盘) 或 MILO 可用的 ISO9660 格式化的 CD 上。镜像可以是 gzip 压缩的,在这种情况下,MILO 将通过 .gz 后缀识别出它是 gzip 压缩的。

您应该注意,MILO 的版本通常不必与您正在加载的 Linux 内核版本相匹配。您可以使用以下命令语法引导 Linux

     MILO> boot [-t file-system] device-name:file-name [[boot-option] [boot-option] ...]

其中设备名称是您希望使用的设备的名称,并且文件名是包含 Linux 内核的文件名。文件名之后提供的所有参数都直接传递给 Linux 内核。

如果您正在安装 Red Hat,那么您需要指定一个根设备等等。因此您将使用

     MILO> boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1

MILO 将自动包含您配置到 vmlinux 中的块设备。我已经测试了软盘驱动程序、IDE 驱动程序和一些 SCSI 驱动程序 (例如,NCR 810),这些驱动程序工作良好。此外,重要的是将 SCSI 控制器的主机 ID 设置为合理的值。默认情况下,MILO 会将其初始化为最大可能值 (7),这通常应该可以正常工作。但是,如果您愿意,您可以通过设置环境变量来显式设置系统中第 n 个 SCSI 控制器的主机 IDSCSIn_HOSTID为适当的值。例如,要将第一个 SCSI 控制器的主机 ID 设置为 7,您可以在 MILO 提示符下发出以下命令

     setenv SCSI0_HOSTID 7

6.3. 重启 Linux

您可能想要使用shutdown -r now命令来重启正在运行的 Linux 系统。在这种情况下,Linux 内核将控制权返回给 MILO (通过 HALT CallPAL 入口点)。MILO 出于这个原因在内存中保留了自身的压缩副本,并检测到系统正在从 HWRPB (硬件重启参数块) 中保存的信息重启。在这种情况下,它开始使用上次引导 Linux 内核时使用的完全相同的命令来重启。有一个 30 秒的超时,允许您中断此过程并以您希望的任何方式引导您希望的任何内核。

6.4. ''bootopt'' 命令

对于基于闪存的系统,如 AlphaPC64、EB164 和 EB66+,有许多可能的引导选项,这些选项使用bootopt命令更改。这有一个参数,一个十进制数,它是下次系统断电或复位时要引导的镜像类型

0 引导评估板调试监视器,

1 引导 Windows NT ARC 固件。

为了告诉引导代码从闪存引导 MILO 固件,您需要一个引导选项,该选项意味着引导第 N 个镜像。为此,您需要 128 加上 N,因此如果 MILO 是第三个镜像,您将使用命令

     MILO> bootopt 131

注意请非常小心使用此命令。一个好的规则是永远不要将 bootopt 设置为 0 (评估板调试监视器),而是使用系统的跳线来实现相同的目的。