Debian 多重启动安装

作者:Robin Rowe

在本月的专栏中,我们将逐步介绍如何在与 Windows 98/NT/2K 的多重启动配置中安装 Debian Potato。我们的机器将作为一名软件开发人员(我)的桌面系统,他正在从仅支持创建 Windows 程序过渡到支持 Linux。在完成之前,我们将发现文档中的一些内容可能会产生误导,并且盲目遵循您在 Web 上找到的 Debian 指令或 Linux HOWTO 文档是不可取的。

我们的机器主要用作 Windows 软件开发系统,是一台 Abit BH6 主板 Intel Celeron 300MHz PC,配备 128MB RAM、Yamaha CDRW、SoundBlaster Live!、Haupaugge WinTV、Hercules Terminator 2x/i 8MB 和两个 20GB 硬盘。这可能看起来不是一台非常高级的机器,但它满足了我们的需求。我们的理念是避免在开发机器方面走得太超前。我们希望在与用户系统不太相似的系统上开发软件。这有助于避免不愉快的意外,例如意外创建的软件无法在最新和最强大的 PC 上正常运行。

为了避免现有硬盘驱动器上的数据面临风险,并且也因为我们的空间不足,我们刚刚安装了一个新的 20GB Maxtor DiamondMax Plus EIDE Ultra ADA/66 硬盘驱动器。Maxtor 是一款 7,200RPM 的硬盘驱动器,比我们旧的 5,400RPM 20GB 硬盘驱动器更快。这种速度是处理容易受到 I/O 限制的视频工作所必需的。令人惊讶的是,大型快速硬盘驱动器变得多么便宜(130 美元)。为了安装硬盘驱动器,我们不得不放下电源并拔出 AGP 卡才能进入托架。该硬盘驱动器附带一张包含文档、分区软件和硬盘映像复制软件的 Caldera DR-DOS 启动软盘,但我们没有使用任何这些。我们从现有硬盘驱动器上更换了带状电缆(暂时禁用它)到我们的新硬盘驱动器,启动到 BIOS,对硬盘驱动器进行自动检测,采用默认的 LBA 设置,然后就开始了。就所有意图和目的而言,我们正在对裸系统进行安装。作为一项安全预防措施,我们的旧硬盘驱动器被故意离线。

让我们从安装 Windows 开始,这很奇怪。该操作系统的版本对 PC 上已有的任何其他操作系统都不太友好。我们可以先安装 Windows,然后再安装 Linux,从而避免一些麻烦。Windows 98SE 的售价约为 195 美元,Win2K 的售价约为 265 美元。由于我们是从零件组装 PC,因此我们的 PC 不包含 Windows。

Windows 98 有三个主要版本:原始版、第二版和千禧版。我们更喜欢 SE 或 ME,因为添加了对多头显示器和其他漂亮设备功能的支持。我们通过从 CD 启动(两次)来安装 Win98SE,选择非大磁盘支持 (FAT16),创建一个 2GB 分区,为我们的非 PNP ISA 网卡提供 int 3 和 0x300 参数,并输入我们在防火墙后面的 IP 192.168.1.2 和子网掩码 255.255.255.0。我们对 Win98SE 和 Win2K(非管理员)使用相同的登录名和密码,因为这意味着在 LAN 上打开网络 Windows 驱动器时可以减少麻烦。

我们的网络网关是在我们 LAN 上的 WinNT 盒子上运行的 WinGate,地址为 192.168.1.1。这可能看起来完全是倒退,因为 Linux 被认为是比 WinNT 更好的防火墙,但这是我们的设置,因为我们是从仅限 Windows 的商店开始的。这颠倒了 Linux 必须是服务器而 Windows 必须是桌面的概念,这种错误的观念可能会阻碍典型的 Windows 用户在桌面上尝试 Linux。

我们从硬盘驱动器成功启动 Win98SE,并通过 LAN 连接到我们下载的 Win98 驱动程序的宝库。在构建 PC 时拥有第二台 PC 可以大大加快该过程。首先要做的事情之一是安装正确的视频驱动程序,以便我们可以退出 640x480 VGA 模式。在这里,我们遇到了第一个麻烦。Win98SE 有一个重新设计的视频子系统,它在我们的 Hercules Terminator 2x/i 显卡的 Win98 驱动程序上卡住了。屏幕变为空白。我们需要以安全模式(普通 VGA)启动,这项任务变得更具挑战性,因为在 Win98SE 中启动安全模式的魔术键是 Ctrl 而不是 Win98 中的 F8。我们一开始没有弄清楚这一点。Windows 不显示启动时可用的按键。切断电源会强制安全模式启动。我们从 WinDrivers.com 安装了一个备用驱动程序。Win98 安装的其余部分进行得很顺利。

我们首先安装 Windows 98,因为它是对其他操作系统最不宽容的。它倾向于覆盖 MBR(主引导记录)。接下来,我们安装 Windows 2000 Professional。专业版是桌面版本,是 Windows NT Workstation 的替代品。没有业余版本;另一种版本是服务器版。我们从 CD 启动 Win2K,并在 NTFS 中创建一个 2GB 分区。Win2K 安装进行得非常顺利。我们现在可以使用 Windows 启动加载程序 c:/ntldr 启动 Win98SE 或 Win2K。我们小心地为 Win98SE 和 Win2K 创建了紧急启动盘。幸运的是,我们不需要它们。

我们将 Win98SE 分区创建为 FAT16,因为 Linux 和 MS-DOS 可以读取/写入 FAT16。除非驱动器分区大于 2GB(如果您在某个时候使用 Win98 fdisk,请拒绝大磁盘访问),否则 FAT32 没有任何好处。我们想将 NTFS 与 Win2K 一起使用有很多原因,但主要是因为它避免了如果我们崩溃时耗时的 Windows scandisk 过程。通常情况下,在 NTFS 上进行硬重启是毫不费力的。我们更喜欢将操作系统放在其自己的 2GB 分区上,因为我们发现这可以提高 Windows 下的可靠性。现在,让我们安装 Debian Linux。

根据 Debian 创始人 Ian Murdock 的说法,与其他 Linux 发行版相比,Debian 开发最独特的方面是它一直并将继续由一群志愿者公开开发,并且它向希望加入这项工作的其他志愿者开放。Debian 不是由一个人或一个小的封闭团体开发的。相反,它遵循 Linux 内核的传统;它是由那些使用它的人开发的,这使其成为一个更高质量、更动态和真正模块化的系统 [参见 LJ 1999 年 11 月,“Debian GNU/Linux 系统概述”]。

Debian 网站 (http://www.debian.org/) 指出,Debian GNU/Linux 提供了超过 3,950 个预编译软件包,这些软件包捆绑在一起以便于安装。应该注意的是,Debian 被广泛认为是自由软件和开源理念中最纯粹的发行版。自由软件倡导者将喜欢阅读 Debian 在 http://www.debian.org/social_contract/ 上的“社会契约”。对于 Debian 来说,没有像 Red Hat 那样的公司。这并不是说如果您愿意,您无法从像 LinuxCare 这样的公司获得商业支持。但是,Debian 特别吸引 Linux 专家和程序员的是作为一个相互支持的社区,并且 Debian 用户列表上提供的社区支持非常棒。我们发现,我们通常会在十分钟内收到对该问题的正确答案。而且,该群体的基调令人愉快。如果您问如何做 X,您会得到如何做 X,而不是您应该做 Y,或者一个询问您为什么要这样做 X 的问题——简单明了。

Debian 版本有名称。当前的 2.2 版本称为 Potato,下一个版本将是 Woody。最初,我们尝试通过 FTP 从镜像站点下载 Potato,但发现说明太令人困惑,下载太耗时(在 200KBs 电缆调制解调器上)。许多供应商在 CD 上提供 Debian,有些产品比其他产品拥有更多的 CD。我们从 Linux System Labs (http://www.lsl.com/) 获得了完整的六张 CD 套装,价格为 9 美元。与 Windows 的成本相比,这真是令人难以置信的便宜。订购时,如果您愿意,还可以“购买” 5 美元捐款给 Debian 组织。

第一次安装 Debian,坦率地说,是系统管理员的噩梦。文档倾向于引导您远离普通人创建成功安装所需的内容。大量的好的建议、坏的建议、相互冲突的意见和过时的说明——文档不需要那么难。事后看来,也许它并没有那么难。只是对于初学者来说非常令人困惑。早在我在蒙特雷海军研究生院教计算机科学的时候,我就接触到一个我以前没有听说过的术语(或者从那以后)。海军飞行员学生会要求提供指导。那是一份准确提供所有重要信息但仅提供相关信息的文档。指导旨在为有能力的菜鸟编写,而不是以痛苦的细节编写。Debian 真的可以使用一些指导。我们将在这里引导您绕过混乱。

我们的第一个 Debian 问题:LSL Potato CD 无法启动。无论出于何种原因,它似乎都没有被制作为可启动 CD。我们尝试使用 E:/install/boot.bat 从 Windows 启动它,但文档指出该命令仅在 MS-DOS 模式下有效,而不是在模拟 DOS 框控制台中有效。在 Win98SE 中,我们从关机菜单中选择“在 MS-DOS 模式下重新启动”。这确实将我们启动到真正的 MS-DOS,但是我们是否拥有必要的实模式 DOS 驱动程序来读取 CD?不,当然没有!是时候停下来重新思考了。

在线“Debian GNU/Linux:安装和使用指南”文档解释了如何创建启动软盘。这些说明是错误的,因为 Potato 的文件名和 CD 布局已更改,但基本理论是正确的。我们忽略了我们在 Web 上找到的许多关于启动软盘是邪恶的警告。我们没有遇到任何麻烦。

以下是在无法从 DOS 访问 CD 时如何从两张软盘启动 Potato

  1. 在 Win98SE 中,将 Debian CD 目录 E:/install 复制到硬盘驱动器上的 C:。

  2. 在 MS-DOS 模式下重新启动。下一步,制作软盘,在 Windows DOS 控制台上不起作用。

  3. 在真正的 DOS 提示符下执行 C:/install/rawrite2.exe。(如果您没有听从我们的建议将分区制作成 FAT16 而不是 FAT32,那么您就倒霉了。)在提示符下输入 rescue.bina:

  4. 对 root.bin 和 a: 重复操作。

  5. 使用创建的救援磁盘启动,,您就拥有了一个可以查看 CD 的最小 Linux 运行环境。

对硬盘驱动器进行分区可能很可怕。有些东西是关于不可撤销地丢失所有数据的危险。Debian 安装程序会将您放入 Linux cfdisk 中,它运行得非常好,但起初会让人望而生畏。标准警告:为避免问题,仅使用旨在用于您要分区的操作系统的软件进行分区。

分区时要记住的是,驱动器的分区表中只有四个条目的空间。主分区或扩展分区使用一个条目。但是,单个扩展分区内的逻辑分区不计数。Win98SE 是一个主分区。默认情况下,WinNT 或 Win2K 被创建为逻辑分区。对于任何允许您的操作系统,以及对于所有数据分区,请使用逻辑分区以避免耗尽分区表条目。如果您确实用完了,您将无法对磁盘上剩余的任何空间进行分区。Linux 需要两个分区:一个启动分区和一个交换分区。我们决定将两个 Linux 分区总共设置为 2GB,减去 250MB 用于交换。我们应该将 Linux 放在逻辑分区上,但由于不了解情况,我们将其制作为主分区。这不必要地浪费了分区表中的一个插槽。

Linux LILO 引导加载程序是另一个让新用户感到恐惧的程序。尽管声誉不佳,但它的安装很容易。我们很高兴我们没有遵循将 Windows ntldr 作为我们主要引导加载程序的广泛建议(如 linuxdoc.org “使用 LILO Mini-HOWTO 的 Win95 + WinNT + Linux 多重启动”中所建议的那样)。让 LILO 引导所有内容更优雅,并且安装起来也更省事。当提示时,将 LILO 安装在 MBR(默认值)中。这将暂时禁用 Windows 启动。下一步是从 LILO 重新获得对 ntldr 的访问权限。

您修改 /etc/lilo.conf 以使用为多重启动到 DOS 记录的语法将 Windows 指向为“其他”引导操作系统。顺便说一句,如果您还不了解如何操作 Unix 文本编辑器(如 vi),那么您肯定会学习。不要忘记修改 /boot/bootmess.txt 并运行 /sbin/lilo 以应用您的所有更改。重新启动,LILO 将我们放入 ntldr(当被询问时),在那里我们看到通常的 Windows 操作系统启动选择器屏幕。Win98SE 现在启动。我们已将旧硬盘驱动器跳线为从设备,将其连接到与新硬盘驱动器相同的带状电缆,然后启动并在 BIOS 中自动检测驱动器。因为我们在 /hdb 上有第二个 ntldr,所以我们使用 lilo.conf 中鲜为人知的 map 指令进行一些额外的魔术,以启用交换启动驱动器。现在我们可以启动 Linux、我们的新 Win98SE 副本和我们的旧 Win98 和 WinNT 副本

other=/dev/hda1
        label=Win2k
        alias=2
        table=/dev/hda
other=/dev/hdb1
        label=WinNT
        alias=4
        table=/dev/hdb
        map-drive=0x80
        to = 0x81
        map-drive=0x81
        to = 0x80

Win98SE 启动正常,但在尝试启动 Win2K 时,我们收到“ntoskernel missing”错误。答案是增加 c:/boot.ini 中的 Windows 分区号。当稍后安装主分区时(就像我们不必要地使用 Linux 所做的那样),它会增加逻辑分区号。只需将分区号加一即可。逻辑分区必须是连续的才能在同一个扩展分区中

multi(0)disk(0)rdisk(0)partition(3)\WINNT="Microsoft
    Windows
2000 Professional" /fastdetect
我们设置 Linux 网络接口设置
# /etc/network/interfaces -- configuration file for ifup(8),
# ifdown(8)
iface lo inet loopback
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1
我们将防火墙 DNS 指向 /etc/resolv.conf
nameserver 192.168.1.
search 192.168.1.1
回顾一下,我们遵循的顺序是首先安装所有 Windows 操作系统,然后安装 Linux。由于取得了巨大的成功,我们现在可以使用 LILO 启动 Linux、Win2K、Win98SE、WinNT 或 Win98!下个月我们将配置 XFree86,以便我们可以启动 X Window System,然后修补内核 2.2.17 以安装 Video4Linux。这将使我们在 Linux 屏幕上获得电视视频。

Debian Multiboot Installation
Robin Rowe 是 MovieEditor.com 的合伙人,这是一家创建互联网和广播视频技术应用的公司。他曾为 Dr. Dobb's JournalC++ ReportC/C++ Users JournalData Based Advisor 撰稿,并在会议论文集中发表过多篇论文。他的软件设计包括一个在曼哈顿 24 小时广播电视台、纽约时代华纳一台和相关网站 http://www.ny1.com/ 使用的客户端-服务器视频编辑系统,以及一个为 DARPA 和五角大楼开发的自动化电视新闻监控系统。他曾在两所大学教授 C++,并在财富 500 强企业、国防部和学术环境中设计视频软件。您可以通过 robin.rowe@movieeditor.com 与他联系。
加载 Disqus 评论