Linux 比 MS-DOS、Windows 或 NT 更有效地利用 PC 硬件,因此对配置错误的硬件的容忍度更低。在开始之前,您可以做一些事情来减少因这类问题而停止的可能性。
首先,收集您拥有的任何硬件手册——主板、显卡、显示器、调制解调器等——并将它们放在容易拿到的地方。
第三,检查您的机器是否存在受支持硬件的配置问题,这些问题可能会在 Linux 安装期间导致无法恢复的死机。
即使驱动器上的主/从跳线设置不正确,使用 IDE 硬盘驱动器和 CD-ROM 的 DOS/Windows 系统也可能正常工作。 Linux 不会以这种方式运行。 如果有疑问,请检查您的主从跳线!
您的任何外围硬件是否在设计时既没有配置跳线也没有非易失性配置内存? 如果是这样,它可能需要通过 MS-DOS 实用程序在启动时进行初始化才能启动,并且可能不容易从 Linux 访问。 CD-ROM、声卡、以太网卡和低端磁带驱动器可能会出现此问题。 如果是这样,您或许可以使用启动提示的参数来解决此问题; 请参阅Linux 启动提示 HOWTO 以了解详细信息)。
某些其他操作系统将允许总线鼠标与其他设备共享 IRQ。 Linux 不支持此功能; 实际上,尝试这样做可能会锁定您的机器。 如果您使用的是总线鼠标,请参阅 Linux 总线鼠标 HOWTO,了解详细信息。
如果可能,请获取一位有经验的 Linux 用户的电话号码,以便您在紧急情况下可以致电。 十次中有九次您不需要它,但拥有它会让人感到安心。
为安装预算时间。 在裸机系统或正在转换为全 Linux 操作的系统上,这将大约需要一个小时。 或者对于双启动系统最多三个小时(它们的误启动和挂起发生率更高)。
如果您有这样的程序并且可以使用它,则应阅读本小节的其余部分仅供参考。 运行该程序以执行实际安装——其作者肯定比我更了解特定发行版,并且您将避免许多容易出错的手动输入步骤。
有关制作启动盘的更多详细信息,请参阅 Linux 启动盘 HOWTO。
您的第一步是选择适合您硬件的启动盘映像。 如果您必须手动执行此操作,通常会发现 (a) CD-ROM 上的启动盘映像的命名方式可以帮助您选择正确的映像,或者 (b) 附近有一个索引文件描述每个映像。
接下来,您必须从您选择的启动盘映像创建软盘,并可选择从救援盘映像创建软盘。 这就是 MS-DOS 程序 RAWRITE.EXE 发挥作用的地方。
接下来,您必须有两个或三个高密度 MS-DOS 格式化的软盘。 (它们的类型必须相同;也就是说,如果您的启动软盘驱动器是 3.5 英寸驱动器,则两个软盘都必须是高密度 3.5 英寸磁盘。)您将使用 RAWRITE.EXE 将启动盘映像写入软盘。
不带任何参数调用它,如下所示
C:\> RAWRITE |
回答有关要写入的文件名称和要写入的软盘(例如 A:)的提示。 RAWRITE 会将文件逐块直接复制到软盘。 也将 RAWRITE 用于根磁盘映像(例如 COLOR144)。 完成后,您将有两个软盘:一个包含启动盘,另一个包含根盘。 请注意,这两个软盘将不再可由 MS-DOS 读取(在某种意义上,它们是“Linux 格式”软盘)。
您可以使用 UNIX 系统上的 dd(1) 命令来完成相同的工作。 (为此,您当然需要一台带有软盘驱动器的 UNIX 工作站。)例如,在带有设备上软盘驱动器的 Sun 工作站上/dev/rfd0,您可以使用命令
$ dd if=bare of=/dev/rfd0 obs=18k |
您必须在某些工作站(例如 Sun)上提供适当的输出块大小参数(“obs”参数),否则这将失败。 如果您遇到问题,dd(1) 的手册页可能会有所帮助。
确保您使用的是全新的、无错误的软盘。 软盘上不得有坏块。
请注意,您无需运行 Linux 或 MS-DOS 即可安装 Linux。 但是,运行 Linux 或 MS-DOS 可以更轻松地从 CD-ROM 创建启动盘和根盘。 如果您的机器上没有操作系统,您可以使用别人的 Linux 或 MS-DOS 仅用于创建软盘,然后从那里安装。
即使它们不直接适用于您的系统,它们也将帮助您理解所涉及的问题。
![]() | 某些 Linux 发行版将安装到 MS-DOS 分区上的目录中。 (这与从 MS-DOS 分区安装不同。)相反,您使用“UMSDOS 文件系统”,它允许您将 MS-DOS 分区的目录视为 Linux 文件系统。 这样,您不必重新分区驱动器。 |
如果您的驱动器已经有四个分区(DOS 支持的最大分区数)并且重新分区会带来更多麻烦(由于文件名转换开销,它会减慢您的 Linux 速度),我才建议使用此方法。 或者,如果您想在重新分区之前试用 Linux,这是一种很好的方法。 但在大多数情况下,您应该重新分区,如此处所述。 如果您计划使用 UMSDOS,则您需要自行承担风险——此处未详细记录。 从现在开始,我们假设您不使用 UMSDOS,并且您将重新分区。
分区只是硬盘驱动器的一部分,专门用于特定操作系统使用。 如果您只安装了 MS-DOS,则您的硬盘驱动器可能只有一个分区,完全用于 MS-DOS。 但是,要使用 Linux,您需要重新分区驱动器,以便您有一个用于 MS-DOS 的分区,以及一个(或多个)用于 Linux 的分区。
分区有三种类型:主分区、扩展分区和逻辑分区。 简而言之,主分区是驱动器上的四个主要分区之一。 但是,如果您希望每个驱动器有四个以上的分区,则需要将最后一个主分区替换为扩展分区,扩展分区可以包含许多逻辑分区。 您不会直接在扩展分区上存储数据——它仅用作逻辑分区的容器。 数据仅存储在主分区或逻辑分区上。
换句话说,大多数人只使用主分区。 但是,如果您需要在驱动器上有四个以上的分区,则可以创建一个扩展分区。 然后在扩展分区之上创建逻辑分区,这样您就有了——每个驱动器四个以上的分区。
请注意,您可以轻松地将 Linux 安装在系统上的第二个驱动器上(MS-DOS 中称为 D:)。 您只需在创建 Linux 分区时指定适当的设备名称。 下面将详细介绍这一点。
回到重新分区驱动器。 过去,在不破坏分区上的数据的情况下,没有办法调整分区大小。 如今,有一些分区实用程序可以非破坏性地调整大小; 它们了解文件系统的结构,可以找到文件系统上的可用空间,并且可以在分区上移动文件数据,以便将可用空间移动到需要的位置,以便调整大小正常工作。 仍然建议您在使用其中一种之前进行完整备份,以防程序或人为错误。
在 Linux 下,GNU parted 允许您创建、销毁、调整大小和复制分区。 它支持 ext2、FAT16 和 FAT32 文件系统、Linux 交换设备; 它还了解 MS-DOS 磁盘标签。 Parted 可用于为新操作系统创建空间、重新组织磁盘使用情况、在硬盘之间复制数据以及磁盘映像。 它是相对较新的代码,但据报告运行良好且不会破坏数据。
有一个可用于 MS-DOS 的非破坏性磁盘重新分区程序,称为 FIPS。 借助 FIPS、磁盘优化程序(例如 Norton Speed Disk)和一点运气,您应该能够在不破坏 MS-DOS 分区上的数据的情况下调整其大小。
如果您没有这些调整大小分区编辑器中的任何一个,则调整分区大小的旧方法是删除分区,然后以较小的尺寸重新创建它们。 如果您使用此方法,则绝对必须进行备份才能保存您的任何数据。
修改分区的经典方法是使用程序 FDISK。 例如,假设您有一个 80 兆字节的硬盘驱动器,专用于 MS-DOS。 您想将其分成两半——40 兆字节用于 MS-DOS,40 兆字节用于 Linux。 为了做到这一点,您需要在 MS-DOS 下运行 FDISK,删除 80 兆字节的 MS-DOS 分区,并在其位置重新创建一个 40 兆字节的 MS-DOS 分区。 然后,您可以格式化新分区并从备份重新安装 MS-DOS 软件。 驱动器的 40 兆字节被留空。 稍后,您在驱动器的未使用部分创建 Linux 分区。
简而言之,您应该执行以下操作以使用 FDISK 调整 MS-DOS 分区的大小
对您的系统进行完整备份。
使用如下命令创建 MS-DOS 可启动软盘
FORMAT /S A: |
启动 MS-DOS 系统软盘。
运行 FDISK,可能需要指定要修改的驱动器(例如 C: 或 D:)。
使用 FDISK 菜单选项删除您要调整大小的分区。 这将销毁受影响分区上的所有数据。
使用 FDISK 菜单选项以较小的尺寸重新创建这些分区。
退出 FDISK 并使用 FORMAT 命令重新格式化新分区。
从备份还原原始文件。
请注意,MS-DOS FDISK 将为您提供创建“逻辑 DOS 驱动器”的选项。 逻辑 DOS 驱动器只是硬盘驱动器上的逻辑分区。 您可以将 Linux 安装在逻辑分区上,但您不希望使用 MS-DOS fdisk 创建该逻辑分区。 因此,如果您当前正在使用逻辑 DOS 驱动器,并且想要在其位置安装 Linux,则应使用 MS-DOS FDISK 删除逻辑驱动器,并(稍后)在其位置为 Linux 创建逻辑分区。
用于为 OS/2 和其他操作系统重新分区的机制类似。 请参阅这些操作系统的文档以了解详细信息。
重新分区驱动器后,您需要为 Linux 创建分区。 在描述如何执行此操作之前,我们将讨论 Linux 下的分区和文件系统。
Linux 至少需要一个分区,用于根文件系统,它将保存 Linux 内核本身。
每个文件系统都需要自己的分区。 因此,如果您同时使用根文件系统和/usr文件系统,则需要创建两个 Linux 分区。
此外,大多数用户都会创建一个交换分区,用于虚拟 RAM。 例如,如果您的机器上有 4 兆字节的内存和一个 10 兆字节的交换分区,那么就 Linux 而言,您有 14 兆字节的虚拟内存。
几乎所有 Linux 用户都使用交换分区。 如果您的 RAM 小于或等于 4 兆字节,则需要交换分区才能安装软件。 强烈建议您仍然拥有交换分区,除非您有大量的物理 RAM。
您可以在 Linux Partition 迷你 HOWTO 中找到有关交换空间布局和磁盘分区的更多理论(http://www.linuxdoc.org/HOWTO/mini/Partition.html)。
注意:在双启动系统中,Linux 和 Windows 95 之间共享交换分区是可能的,尽管有点棘手。 有关详细信息,请参阅 Linux 交换空间迷你 HOWTO。
注意事项 #1:如果您有一个 EIDE 驱动器,其分区超过 504MB,则您的 BIOS 可能不允许您启动到安装在那里的 Linux。 因此,请将根分区保持在 504MB 以下。 这对于 SCSI 驱动器控制器来说应该不是问题,SCSI 驱动器控制器通常有自己的驱动器 BIOS 固件。 有关技术细节,请参阅 大磁盘迷你 HOWTO。
注意事项 #2:您是否混合使用了 IDE 和 SCSI 驱动器? 然后注意。 您的 BIOS 可能不允许您直接启动到 SCSI 驱动器。
第一步是启动您生成的启动盘。 通常,您将能够免手动启动; 启动内核提示将在 10 秒后自行填写。 这就是您通常从 IDE 磁盘启动的方式。
这里实际发生的情况是:启动盘提供了一个微型操作系统,该操作系统(因为硬盘驱动器未准备好)使用您 RAM 的一部分作为虚拟磁盘(逻辑上称为“内存盘”)。
启动盘将一小部分文件和安装工具加载到内存盘上,您将使用这些文件和安装工具来准备硬盘驱动器并从 CD-ROM 在其上安装生产 Linux。
(过去这是一个两阶段过程,涉及第二个磁盘,称为“根磁盘”;当引入内核模块时,这种情况发生了变化。)
观看系统启动时的消息。 它们将列出并描述您的安装 Linux 检测到的硬件。 特别是,如果您有 SCSI 控制器,您应该看到检测到的 SCSI 主机的列表。 如果您看到消息
SCSI: 0 hosts |
那么您的 SCSI 控制器未被检测到,您将必须弄清楚如何告诉内核它在哪里。
此外,系统将显示有关检测到的驱动器分区和设备的信息。 如果此信息有任何不正确或丢失,您将必须强制硬件检测。
另一方面,如果一切顺利并且您的硬件似乎已被检测到,您可以跳到以下部分“加载根盘”。
要强制硬件检测,您必须在启动提示符下输入适当的参数,使用以下语法
linux <parameters...> |
有许多此类参数可用; 我们在下面列出一些最常见的参数。 现代 Linux 启动盘通常会为您提供查看帮助屏幕的选项,其中描述了您启动之前的内核参数。
linux hd=683,16,32 |
tmc8xx=内存地址,irq 指定无 BIOS Future Domain TMC-8xx SCSI 控制器的地址和 IRQ。 例如,
linux tmc8xx=0xca000,5 |
启动后,所有当前的 Linux 发行版都会运行一个面向屏幕的安装程序,该程序会尝试交互式地引导您完成这些步骤,并提供大量帮助。
X 对于安装不是必需的,但是(假设您可以跳过鼠标和显示器配置)许多人发现图形界面更容易使用。 并且无论如何您都想要启动 X,因此尽早尝试它是有意义的。
只需按照程序中的提示操作即可。 它将引导您完成准备磁盘、创建初始用户帐户以及从 CD-ROM 安装软件包所需的步骤。
在以下小节中,我们将描述安装序列中的一些棘手区域,就好像您是手动执行它们一样。 这应该有助于您了解安装程序正在做什么以及原因。
一旦根磁盘 Linux 启动,您的第一个安装步骤将是在磁盘上创建或编辑分区表。 即使您之前使用 FDISK 设置了分区,您现在也需要返回到分区表并插入一些特定于 Linux 的信息。
)。 通常,安装程序将查找预先存在的分区表,并提供为您在其上运行 fdisk 或 cfdisk。 在两者中,cfdisk 绝对更容易使用,但其当前版本对于不存在或乱码的分区表的容忍度也较低。
一些注意事项适用于 fdisk 和 cfdisk。 两者都采用一个参数,该参数是您希望在其上创建 Linux 分区的驱动器的名称。 硬盘驱动器设备名称为
例如,要在系统中的第一个 SCSI 驱动器上创建 Linux 分区,您将使用(或您的安装程序可能会从菜单选项生成)命令
cfdisk /dev/sda |
如果您在不带参数的情况下使用 fdisk 或 cfdisk,它将假定/dev/hda.
要在系统中的第二个驱动器上创建 Linux 分区,只需指定/dev/hdb(对于 IDE 驱动器)或第一个 SCSI 驱动器(对于 SCSI 驱动器)在运行 fdisk 时。
![]() | 您不应使用 Linux fdisk 或 cfdisk 创建或删除 Linux 以外的操作系统的分区。 也就是说,不要使用此版本的 fdisk 创建或删除 MS-DOS 分区; 请改用 MS-DOS 版本的 FDISK。 如果您尝试使用 Linux fdisk 创建 MS-DOS 分区,则 MS-DOS 很可能无法识别该分区并且无法正确启动。 |
首先,我们使用“p”命令显示当前分区表。 正如您所见,/dev/hda1(上的第一个分区/dev/hda)是 61693 个块的 DOS 分区。
Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M Command (m for help): |
接下来,我们使用“n”命令创建一个新分区。 Linux 根分区的大小为 80 兆字节。
Command (m for help): n Command action e extended p primary partition (1-4) p |
在这里,我们被问到是否要创建扩展分区还是主分区。 在大多数情况下,您希望使用主分区,除非您需要在驱动器上有四个以上的分区。 有关更多信息,请参阅上面的“重新分区”部分。
Partition number (1-4): 2 First cylinder (204-683): 204 Last cylinder or +size or +sizeM or +sizeK (204-683): +80M |
第一个柱面应该是最后一个分区结束后的柱面。 在这种情况下,/dev/hda1结束于柱面 203,因此我们从柱面 204 开始新分区。
如您所见,如果我们使用符号“+80M”,则指定大小为 80 兆字节的分区。 同样,符号“+80K”将指定一个 80 千字节的分区,“+80”将仅指定一个 80 字节的分区。
Warning: Linux cannot currently use 33090 sectors of this partition |
如果您看到此警告,可以忽略它。 它遗留自一个旧限制,即 Linux 文件系统的大小只能为 64 兆字节。 但是,使用较新的文件系统类型,情况不再如此……分区现在可以达到 4 太字节的大小。
接下来,我们创建 10 兆字节的交换分区,/dev/hda3.
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (474-683): 474 Last cylinder or +size or +sizeM or +sizeK (474-683): +10M |
同样,我们显示分区表的内容。 务必记下此处的信息,特别是每个分区的大小(以块为单位)。 您稍后需要此信息。
Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M /dev/hda2 204 204 473 82080 83 Linux native /dev/hda3 474 474 507 10336 83 Linux native |
Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 82 |
如果您使用“L”列出类型代码,您会发现 82 是对应于 Linux 交换分区的类型。
要退出 fdisk 并将更改保存到分区表,请使用“w”命令。 要退出 fdisk 而不保存更改,请使用“q”命令。
退出 fdisk 后,系统可能会告诉您重新启动以确保更改生效。 通常,在使用 fdisk 后没有理由重新启动——现代版本的 fdisk 和 cfdisk 足够智能,无需重新启动即可更新分区。
编辑分区表后,您的安装程序应查看它们并提供为您启用交换分区。 回答“是”。
(这是一个问题,而不是自动完成,因为您可能正在运行双启动系统,并且您的非 Linux 分区之一可能看起来像交换卷。)
接下来,程序将要求您将 Linux 文件系统名称(例如 /、/usr、/var、/tmp、/home、/home2 等)与您将要使用的每个非交换分区关联起来。
对此只有一个硬性规定。 必须有一个根文件系统,名为 /,并且它必须是可启动的。 您可以将其他 Linux 分区命名为您喜欢的任何名称。 但是,有一些关于如何命名它们的约定,这可能会简化您以后的生活。
如果您有多个主目录区域,则按照惯例将它们命名为 /home、/home2、/home3 等。 如果您有两个物理磁盘,则可能会出现这种情况。 例如,在我的个人系统上,布局当前看起来像这样
Filesystem 1024-blocks Used Available Capacity Mounted on /dev/sda1 30719 22337 6796 77% / /dev/sda3 595663 327608 237284 58% /usr /dev/sda4 1371370 1174 1299336 0% /home /dev/sdb1 1000949 643108 306130 68% /home2 |
一旦您完成了准备分区的工作,其余的安装应该是几乎自动的。 您的安装程序(无论是基于 EGA 还是基于 X)将引导您完成一系列菜单,您可以在其中指定要从中安装的 CD-ROM、要使用的分区等等。
安装完成后,如果一切顺利,安装程序将引导您完成一些选项,以在首次从硬盘驱动器启动之前配置系统。
LILO(代表 Linux 加载程序)是一个程序,它允许您从硬盘驱动器启动 Linux(以及其他操作系统,例如 MS-DOS)。
您可能会获得在硬盘驱动器上安装 LILO 的选项。 除非您运行的是 OS/2,否则回答“是”。 OS/2 有特殊要求; 请参阅下面的自定义 LILO 配置。
将 LILO 安装为您的主加载程序使单独的启动软盘成为不必要的; 相反,您可以告诉 LILO 在每次启动时启动哪个操作系统。