安装过程分为三个不同的部分:首先在专用的驱动器上构建主操作系统 (O/S)。其次,构建第二个磁盘,其中包含您选择的任何备用操作系统。最后,重新配置 BIOS 和 LILO 以支持两个磁盘。
主/操作系统的安装非常简单。将系统视为专用于 Linux 的单驱动器系统即可。有关安装 Linux 的详细信息,请参阅您的发行版随附的文档或 http://www.linuxdoc.org/HOWTO/Installation-HOWTO.html。
由于这最终是多磁盘安装,因此需要采取一些步骤来欺骗安装程序,使其在安装过程中认为这是一个单磁盘系统。
首先,移除可移动硬盘,并确保在 BIOS 中将剩余的驱动器识别为辅助启动设备(在软盘之后)。操作系统安装程序应该只看到一个磁盘,即您要安装到的磁盘。这样,就不会对安装位置产生疑问。此外,它将安装适用于单磁盘系统的一切内容。
当被询问时,告诉安装程序使用整个磁盘作为您的操作系统。我接受了默认的 RedHat 分区,并在 MBR 上安装了通用的 LILO。
安装完成后,关闭并重新启动以确认您的系统正常工作。此时,您应该拥有一个功能齐全的机器,可以直接启动进入 Linux。
现在您已经拥有一个功能齐全的系统,您可以继续在第二个磁盘上构建您的备用操作系统。
在第二个磁盘上选择一个或两个操作系统进行安装。我出于不明原因决定选择 Windows 98 和 BeOS 作为我的初始测试用例。我将一个 8GB 的驱动器分区为两个 4GB 的主分区,并在第一个分区中安装了 Windows 98,在第二个分区中安装了 BeOS。
对这次安装执行与第一次安装相同的操作。在 BIOS 中禁用第一个磁盘,以便此安装程序甚至看不到它。这一点非常重要。如果您可以物理移除或断开第一个磁盘的连接,请务必这样做!这将保护您的主系统免受您自身操作失误或过于贪婪的操作系统的影响,这些操作系统想要在第二次安装期间接管它们看到的所有磁盘。如果在未来的某个时候您决定创建另一个可移动磁盘,请务必重复此步骤。
完成此操作后,像在单驱动器系统上安装一样安装您选择的操作系统。
如果您只在第二个磁盘上安装一个操作系统,只需插入安装盘并让它自行完成即可。Windows 95 或 98 或几乎任何其他操作系统,包括第二个 Linux,都应该以这种方式正常安装。允许 Windows 9x 写入 MBR。如果安装 Linux,请选择 MBR 作为安装 LILO 的位置。
我决定在第二个磁盘上安装两个操作系统,以便我可以确认级联引导加载器的功能。
我首先安装了 Windows 98,因为它会自动覆盖 MBR,并且会覆盖我最终放置在那里的任何引导加载器代码。接下来,我在第二个分区中安装了 BeOS,并运行了 BeOS 引导加载器 bootman。通过它,我为第二个磁盘构建了一个启动菜单,并有意覆盖了 Windows 98 MBR。
Bootman 不是必需的,我可以使用任何基于 MBR 的引导加载器,但它可用并且运行良好。
频繁重启以确保一切都作为单磁盘系统正常工作。我在每次操作系统安装后都重新启动,以确保它正常工作,并确保引导加载器菜单正常工作。
接下来,重新配置 BIOS,使其再次识别第一个磁盘(如果您之前断开了连接,请物理重新连接)作为启动磁盘,并使其也识别第二个磁盘。如何做到这一点非常依赖于系统,并取决于您的 BIOS 以及您拥有的是 SCSI/IDE 还是 IDE/IDE 设置。我没有尝试 SCSI/SCSI 设置,因为 SCSI 磁盘和可移动框架比 IDE 磁盘和框架贵得多。我希望我的主操作系统具有高性能,但可以接受其他操作系统的廉价性。
确保将第二个磁盘类型设置为“Auto”或“Automatic”。这将强制 BIOS 在启动时动态确定磁盘类型。我已成功地使用了古老的 512MB 磁盘、4GB、8GB 甚至 100MB IDE Zip 磁盘作为第二个磁盘。所有这些都被 BIOS 自动识别。
重新启动系统并返回 Linux。此时,即使至少安装了两个操作系统,此 LILO 也只知道原始的 Linux,并且应该自动启动到它。观看启动过程,您应该看到一条关于自动识别磁盘的消息。启动后,检查 dmesg 以确保 Linux 识别了第二个磁盘。
完成此操作后,您需要重新配置第一个磁盘上的 LILO,使其了解第二个磁盘。这里有两个不同的 lilo.conf 文件,一个用于 SCSI/IDE,另一个用于 IDE/IDE 系统。每个文件都有一些优点和缺点……
# lilo.conf file for an internal SCSI disk and a removable disk # configured as a master on the primary IDE connection disk = /dev/sda # These four lines are necessary bios = 0x80 # to get the SCSI disk re-mapped as disk = /dev/hda # the primary drive even though it bios = 0x81 # is selected in the BIOS as the # boot device. This might be a BIOS # specific problem. # Without them you get the following errors from LILO: # # LILO version 21, Copyright 1992-1998 Werner Almesberger # # ading boot sector from /dev/sda # Warning: /dev/sda is not on the first disk # And LILO either hangs at LI or repeats endless "01 "'s across the screen boot=/dev/sda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.12-20smp label=Linux root=/dev/sda1 initrd=/boot/initrd-2.2.12-20smp.img read-only other = /dev/hda # other = /dev/hda is the key element. Instead of redirecting lilo to # a specific partition, it redirects it to the MBR on the second disk. # that way, LILO doesn't have to know anything about the second disk and # we can replace it with another because LILO always goes to the same place # regardless of which specific disk is installed. LILO was the only boot # loader I found that would do this. label = Disk2 map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80 # The map-drive lines are necessary to make the second disk think it is # actually the boot disk. # lilo.conf file for a system with two IDE drives. Both are masters, # /dev/hda on the primary connector and /dev/hdc on the secondary. # /dev/hdb is a CDROM slave on the primary IDE connector. # disk = /dev/hda # These lines are not necessary for the # bios = 0x80 # IDE/IDE installation because the BIOS # disk = /dev/hdc # already knows what order they are in # bios = 0x81 boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda4 read-only other = /dev/hdc # other = /dev/hdc is again the key. This just redirects LILO to the # MBR of the second disk. Whatever is there gets control. label = Disk2 map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80
/dev、boot、map 和 image 条目是特定于系统的,您的条目可能与我的不同。您初始的 /etc/lilo.conf 文件中的条目应该为您提供关于您的系统的准确指南。我直接将原始安装生成的 lilo.conf 文件中的“Linux”条目复制到了新的 lilo.conf 中。即使“Disk2”条目完全失败,这也应该允许您启动进入“Linux”并修改您的 lilo.conf。
最后,运行 lilo -vvv 以确保它同意您尝试做的一切。