下一页 上一页 目录

4. hdc 安装为 hda 启动并使用 bios=

Lilo 允许将内核镜像从一个磁盘映射,并指示 BIOS 从另一个磁盘检索它。例如,我通常将 Linux 安装到连接到 hdc(辅助控制器的主盘)的磁盘上,并在另一台计算机的主 IDE 控制器上将其作为独立系统启动。我将安装软盘复制到一个小分区,这样我就可以在虚拟控制台中运行 chroot 来安装 hdc,同时我可以使用系统做其他事情。

我用来安装 Lilo 的 lilo.conf 文件看起来像

# This file must be used from a system running off /dev/hdc
boot = /dev/hdc   # overwrite MBR of hdc
disk = /dev/hdc   # tell how hdc will look like:
   bios = 0x80    #  the bios will see it as first drive
delay = 0
vga = 0

image = /boot/vmlinux  # this is on /dev/hdc1
  root = /dev/hda1     # but at boot it will be hda1
  label = Linux
  read-only

这个配置文件必须由运行在 /dev/hdc1 上的 Lilo 读取。写入引导扇区 (/dev/hdc) 的 Lilo 映射必须引用 /boot 中的文件(当前安装为 hdc);当此磁盘作为独立系统启动时,这些文件将通过 hda 访问。

我将此配置文件称为 /mnt/etc/lilo.conf.hdc/mnt 是安装期间 hdc 的挂载点)。我通过调用 ``cd /mnt; chroot . sbin/lilo -C /etc/lilo.conf.hdc'' 来安装 Lilo。如果这看起来很神奇,请参阅 chroot 的手册页。

lilo.conf 中的 ``bios='' 指令用于告诉 Lilo BIOS 如何看待您的设备。BIOS 调用使用数字标识软盘和硬盘驱动器:0x00 和 0x01 选择软盘驱动器,0x80 和后面的数字选择硬盘(旧的 BIOS 只能访问两个磁盘)。因此,前面示例文件中 ``bios = 0x80'' 的意思是 ``在您的 BIOS 调用中使用 0x80 来表示 /dev/hdc''。

这个 Lilo 指令在其他情况下也可能很有用,例如,当您的 BIOS 能够从 SCSI 磁盘而不是 IDE 磁盘启动时。当 IDE 和 SCSI 设备都存在时,Lilo 无法判断 0x80 将引用哪一个,因为用户可以在 BIOS 配置菜单中选择它,并且在 Linux 运行时无法访问 BIOS。

默认情况下,Lilo 假设 IDE 驱动器首先由 BIOS 映射,但这可以通过在 /etc/lilo.conf 中使用如下指令来覆盖。

disk = /dev/sda
  bios = 0x80


下一页 上一页 目录