LILO mini-HOWTO

Miroslav "Misko" Skoric, skoric at eunet dot rs

v3.39, 2010-07-18
LILO 是用于 x86 Linux 的最常用 Linux Loader;我在这里称其为 Lilo 而不是 LILO,因为我不喜欢大写字母。本文档描述了一些典型的 Lilo 安装。它旨在作为 Lilo 用户指南的补充。我认为即使您的设置与我的不太相似,示例也是有用的。我希望这能为您节省麻烦。由于 Lilo 自己的文档非常好,有兴趣了解详细信息的人可以参考 /usr/doc/lilo*(很久以前,卡梅伦·斯皮策和亚历山德罗·鲁比尼等绅士制作了本文档的早期版本)

此版本的 Lilo mini-HOWTO 基于卡梅伦·斯皮策 (cls@truffula.sj.ca.us) 和亚历山德罗·鲁比尼 (rubini@linux.it) 的工作。托尼·哈里斯 (tony@nmr.mgh.harvard.edu) 和马克·唐吉 (mtanguy@ens.uvsq.fr) 也做出了贡献。嗯,我使用了上述作者的资料 - 未作更改 - 并添加了一些关于配置 LILO 以与 Windows NT 和 Windows 2000 一起使用的提示。有关从 LILO 菜单激活 Windows NT/2000 的更详细信息,您可以在精彩的 Linux+WindowsNT mini-HOWTO 中找到。

1. 简介

2. 背景信息和标准安装

3. 简单配置

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

5. 当 BIOS 无法识别根分区时使用 Lilo

6. 我如何知道我的 SCSI 磁盘的 BIOS 编号

7. 当 BIOS 无法识别时访问大容量磁盘

8. 从救援软盘启动

9. 在 HP 产品上安装 Mandrake Linux 9.1 后使用 LILO

10. 参考书目

11. 更多信息

12. 获取帮助


1. 简介

尽管在 Lilo 源代码中找到的文档(安装在 /usr/doc/lilo-version 中的文档)非常全面,但大多数 Linux 用户在构建自己的 /etc/lilo.conf 文件时都会遇到一些麻烦。本文档旨在通过提供最少的信息和展示五个示例安装来为他们提供支持

最后三个示例来自卡梅伦,cls@truffula.sj.ca.us,他编写了原始文档。亚历山德罗 rubini@linux.it 除了 Linux 之外什么都不运行,因此他无法亲自检查或更新它们。不用说,欢迎任何反馈。


2. 背景信息和标准安装

当 Lilo 启动系统时,它使用 BIOS 调用从磁盘(IDE 驱动器、软盘或其他任何介质)加载 Linux 内核。因此,内核必须位于 BIOS 可以访问的某个位置。

在启动时,Lilo 无法读取文件系统数据,并且您在 /etc/lilo.conf 中输入的任何路径名都在安装时(当您调用 /sbin/lilo 时)解析。安装时是程序构建表的时刻,这些表列出了用于加载操作系统的文件使用的扇区。因此,所有这些文件都必须位于 BIOS 可以访问的分区中(这些文件通常位于 /boot 目录中,这意味着只有 Linux 系统的根分区需要通过 BIOS 访问)。

基于 BIOS 的另一个结果是,每当您修改 Lilo 设置时,都必须重新安装加载器(即,您必须重新调用 /sbin/lilo)。每当您重新编译内核并覆盖旧映像时,都必须重新安装 Lilo。

2.1 我应该将 Lilo 安装在哪里?

/etc/lilo.conf 中的 boot= 指令告诉 Lilo 它应该将其主引导加载程序放置在哪里。一般来说,您可以指定主引导记录 (/dev/hda) 或 Linux 安装的根分区(通常是 /dev/hda1/dev/hda2)。

如果您的硬盘驱动器中安装了另一个操作系统,您最好将 Lilo 安装到根分区而不是 MBR。在这种情况下,您必须使用 fdisk 的“a”命令或 cfdisk 的“b”命令将分区标记为“可引导”。如果您不覆盖主引导扇区,您会发现以后需要卸载 Linux 和 Lilo 时会更容易。

当然,您总是有办法避免上述某些“规则”。嗯,即使您已经在 MBR 中安装了另一个操作系统,您也可以将 Lilo 安装到 MBR。例如,如果您将 Windows NT 4.0 作为机器上的第一个操作系统安装,那么 NT 的引导加载程序将被放置到 MBR 中,这样您就可以毫无问题地启动 NT。在您安装 Linux 并选择将 Lilo 安装到 MBR 后,Lilo 重写了 NT 的引导加载程序。下次启动机器时,您将无法启动 NT。但是,这没问题。您应该编辑您的 /etc/lilo.conf 并为 NT 添加一个新条目。下次您重新启动系统时,Lilo 菜单下将出现新的 NT 条目。当我安装 Windows 2000 而不是 Windows NT 时,也发生了同样的事情。

2.2 我应该如何配置我的 IDE 硬盘驱动器?

我个人不在 BIOS 中使用 LBA 或 LARGE 设置(但我只运行 Linux);它们是 PC 世界中设计缺陷强加的可怕的临时解决方案。这要求内核位于前 1024 个柱面中,但这不成问题,只要您对硬盘驱动器进行分区并保持根分区较小(无论如何您都应该这样做)。

如果您的硬盘已经承载了另一个操作系统,您将无法修改 BIOS 设置,否则旧系统将无法再工作。所有最新的 Lilo 发行版都能够处理 LBA 和 LARGE 磁盘设置。

请注意,/etc/lilo.conf 中的 "linear" 关键字可以帮助处理几何问题。该关键字指示 Lilo 使用线性扇区地址而不是扇区/磁头/柱面元组。到 3D 地址的转换延迟到运行时进行,因此使设置更不易受几何问题的影响。

如果您有多个硬盘驱动器,其中一些硬盘驱动器仅供 Linux 使用且未参与启动过程,您可以告诉 BIOS 它们未安装。您的系统将启动得更快,并且 Linux 将立即自动检测所有磁盘。我经常在我的计算机中切换磁盘,但我从不触碰 BIOS 配置。

2.3 如何在启动时进行交互?

当您看到 Lilo 提示符时,您可以按 <Tab> 键显示可能的选择列表。如果 Lilo 未配置为交互式,请在出现“LILO”消息之前按住 <Alt> 或 <Shift> 键。

如果您选择启动 Linux 内核,您可以在您选择的系统名称后添加命令行参数。内核接受许多命令行参数。所有参数都在 Paul Gortmaker 的“BootPrompt-HOWTO”中列出,我不会在此处重复。但是,一些命令行参数特别重要,值得在此处描述

2.4 如何卸载 Lilo?

当 Lilo 覆盖引导扇区时,它会在 /boot/boot.xxyy 中保存一个备份副本,其中 xxyy 是设备的major和minor编号,以十六进制表示。您可以通过运行“ls -l /dev//device”来查看磁盘或分区的主要和次要编号。例如,/dev/hda 的第一个扇区(major 3,minor 0)将保存在 /boot/boot.0300 中,在 /dev/fd0 上安装 Lilo 会创建 /boot/boot.0200,而在 /dev/sdb3 上安装 Lilo(major 8,minor 19)会创建 /boot/boot.0813。请注意,如果已经存在文件,Lilo 不会创建该文件,因此您无需担心备份副本,无论何时您重新安装 Lilo(例如,在重新编译内核之后)。在 /boot/ 中找到的备份副本始终是在安装任何 Lilo 之前的快照。

如果您需要卸载 Lilo(例如,在不幸需要卸载 Linux 的情况下),您只需要恢复原始引导扇区。如果 Lilo 安装在 /dev/hda 中,只需执行“dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1”(我个人只是执行“cat /boot/boot.0300 > /dev/hda”,但这并不安全,因为这也会恢复原始分区表,您可能在此期间修改了该分区表)。此命令比尝试从 DOS shell 运行“fdisk /mbr”容易得多:它允许您从磁盘上干净地删除 Linux,而无需启动除 Linux 之外的任何东西。删除 Lilo 后,请记住运行 Linux 的 fdisk 来销毁任何 Linux 分区(DOS 的 fdisk 无法删除非 dos 分区)。

如果您将 Lilo 安装在根分区上(例如,/dev/hda2),则无需执行任何特殊操作即可卸载 Lilo。只需运行 Linux 的 fdisk 从分区表中删除 Linux 分区即可。您还必须将 DOS 分区标记为可引导。

2.5 如何制作 ram 磁盘?

注意:如果您发现下一节难以阅读,您也可以查找网页:http://surfer.nmr.mgh.harvard.edu/partition/ramdisk.html,您将在其中找到此贡献的“原始”版本...

作者:Tony Harris

2000 年 10 月 16 日

ram 磁盘小指南

如果您的根文件系统位于内核没有内置驱动程序的设备上,您将需要使用 lilo 在启动周期的早期加载该驱动程序作为模块。只有两个简单的步骤

首先,我 cd/boot

System.map                  chain.b                module-info-2.2.16-3ext3
System.map-2.2.16-3         initrd-2.2.16-3.img    vmlinux-2.2.16-3
System.map-2.2.16-3ext3     vmlinux-2.2.16-3ext3
vmlinuz                     kernel.h
boot.b                      map                    vmlinuz-2.2.16-3
bz.2.2.15.juke.Image        module-info            vmlinuz-2.2.16-3ext3
bzImage-2.2.14              module-info-2.2.16-3

在这里您可以看到我有一个 2.2.16-3 内核,并且我添加了第二个支持 ext3 的内核 (vmlinuz-2.2.16-3ext3)。我的第一个内核已经有一个 ram 磁盘映像 (initrd-2.2.16-3.img)

要为第二个内核制作新映像,我键入以下内容(我键入的内容以粗体显示)

boot# mkinitrd initrd-2.2-16-3ext3.img 2.2.16-3ext3

mkinitrd 是一个 shell 脚本,它查看我的内核所需的模块,然后制作一个包含这些模块的 ext2 文件系统。如果我们查看映像内部,我们会看到情况确实如此

boot# cat initrd-2.2.16-3ext3.img | gunzip > /tmp/myimage

boot# file /tmp/myimage

/tmp/myimage: Linux/i386 ext2 filesystem/

您不必查看映像内部。只有制作映像和修改 lilo.conf 是必要的步骤。但是,为了教学目的,提供了对 ramdisk 映像的讨论。

为了查看内部,我需要将映像挂载,就像它是一个文件系统一样

boot# mount /tmp/myimage /mnt/tmp -t ext2 -o loop=/dev/loop3

boot# ls /mnt/tmp

bin dev etc lib linuxrc

boot# find /mnt/tmp

mnt/tmp/

mnt/tmp/lib/

mnt/tmp/lib/aic7xxx.o/

mnt/tmp/bin/

mnt/tmp/bin/sh/

mnt/tmp/bin/insmod/

mnt/tmp/etc/

mnt/tmp/dev/

mnt/tmp/dev/console/

mnt/tmp/dev/null/

mnt/tmp/dev/ram/

mnt/tmp/dev/systty/

mnt/tmp/dev/tty1/

mnt/tmp/dev/tty2/

mnt/tmp/dev/tty3/

mnt/tmp/dev/tty4/

mnt/tmp/linuxrc/

此 ram 磁盘映像最重要的部分是 aic7xxx.o,它是我的 scsi 模块。

最后,我继续最后一步,修改 /etc/lilo.conf

这是我的 lilo.conf 中与我刚刚创建的内核和映像对应的条目

image=boot/vmlinuz-2.2.16-3ext3/

label=linux.ext3

initrd=boot/initrd-2.2.16-3ext3.img/

read-only

root=dev/hdb3/

就是这样。以 root 身份运行 /lilo 并重新启动。

如果您遇到问题,请查看内核 HOWTO。您需要涵盖一些事项:您需要编译内核模块并使其位于 /etc/conf.modules 中。


3. 简单配置

大多数 Lilo 安装使用类似于以下配置文件的配置文件

boot = /dev/hda   # or your root partition
delay = 10        # delay, in tenth of a second (so you can interact)
vga = 0           # optional. Use "vga=1" to get 80x50
#linear           # try "linear" in case of geometry problems.

image = /boot/vmlinux  # your zImage file
  root = /dev/hda1     # your root partition
  label = Linux        # or any fancy name
  read-only            # mount root read-only

other = /dev/hda4   # your dos partition, if any
  table = /dev/hda  # the current partition table
  label = dos       # or any non-fancy name

如果您愿意,可以有多个“image”和“other”部分。在您的 lilo.conf 中配置多个内核映像并不少见,至少如果您跟上内核开发的步伐。

3.1 如何处理大型内核

如果您编译“zImage”内核,并且它太大而无法容纳在半兆字节中(这在新的 2.1 内核中很常见),您应该构建一个“big zImage”来代替:“make bzImage”。要启动大型内核映像,不需要任何特殊操作,但您需要 Lilo 的版本 18 或更高版本。如果您的安装较旧,则应升级您的 Lilo 软件包。

3.2 如何从“LILO boot:”菜单启动 Windows NT

在这里,我将为您提供一个例程顺序,如果您想在 Lilo 菜单下同时拥有 Linux 和 NT 条目,您必须执行这些例程

3.3 如何从“LILO boot:”菜单启动 Windows 2000

嗯,您可以使用与上述相同的过程。我建议您阅读 Linux+WindowsNT mini-HOWTO,其中也讨论了启动 Windows 2000,它安装在磁盘的同一部分,Windows NT 之前 安装在那里。您将在那里找到许多关于各种 Linux+WinNT/2000/98 组合的有用细节。


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

此配置文件必须由 off /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 调用中对 /dev/hdc 使用 0x80”。

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

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

disk = /dev/sda
  bios = 0x80


5. 当 BIOS 无法识别根分区时使用 Lilo

我有两个 IDE 驱动器和一个 SCSI 驱动器。SCSI 驱动器无法被 BIOS 识别。Linux 加载程序 Lilo 使用 BIOS 调用,并且只能识别 BIOS 可以识别的驱动器。我的愚蠢的 AMI BIOS 只会从“A:”或“C:”启动。我的根文件系统位于 SCSI 驱动器上的分区中。

解决方案是将内核、映射文件和链加载程序存储在第一个 IDE 上的 Linux 分区中。请注意,不必将内核保留在根分区上。

我的第一个 IDE 上的第二个分区(/dev/hda2,用于启动系统的 Linux 分区)挂载在 /u2 上。这是我使用的 /etc/lilo.conf 文件。

#  Install Lilo on the Master Boot Record
#  on the first IDE.
#
boot = /dev/hda
#  /sbin/lilo (the installer) copies the Lilo boot record
#  from the following file to the MBR location.
install = /u2/etc/lilo/boot.b
#
#  I wrote a verbose boot menu.  Lilo finds it here.
message = /u2/etc/lilo/message
#  The installer will build the following file. It tells
#  the boot-loader where the blocks of the kernels are.
map = /u2/etc/lilo/map
compact
prompt
#  Wait 10 seconds, then boot the 1.2.1 kernel by default.
timeout = 100
#  The kernel is stored where BIOS can see it by doing this:
#      cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
        label = 1.2.1
#  Lilo tells the kernel to mount the first SCSI partition
#  as root.  BIOS does not have to be able to see it.
        root = /dev/sda1
#  This partition will be checked and remounted by /etc/rc.d/rc.S
        read-only
#  I kept an old Slackware kernel lying around in case I built a
#  kernel that doesn't work.  I actually needed this once.
image = /u2/z1.0.9
        label = 1.0.9
        root = /dev/sda1
        read-only
#  My DR-DOS 6 partition.
other = /dev/hda1
        loader=/u2/etc/lilo/chain.b
        label = dos
        alias = m


6. 我如何知道我的 SCSI 磁盘的 BIOS 编号

马克·唐吉 (mtanguy@ens.uvsq.fr) 的贡献,2001-09-27

6.1 理论

实际上,有两种方法可以知道它

如果您有 adaptec scsi 卡(2940u2、29160、39160),您只需使用“诊断”模式(建议使用 BIOS v3.10.0)。必须在 scsi 卡 BIOS 菜单中激活它。然后您只需要等待并查看类似以下内容


... IDLUN供应商产品版本大小同步总线HD#
... 0 0 QUANTUMATLAS10K2DDD617GB 160 16 80h
... 1 0 QUANTUMATLAS10K2DDD617GB 160 16 81h
... 2 0 IBMDDRSDC1B4GB 80 16 82h
... 3 0 IBMDNESSAH09GB 80 16 83h

如果您没有 adaptec 卡,您必须知道什么是“启动”磁盘(通常是 ID 0,但不是必须的,可以在 scsi 卡 BIOS 中定义),LILO 将在其中找到并启动:这是第一个磁盘,因此其编号为 0x80。然后很简单,BIOS 遵循 ID。

例如

ID 0 -> boot  -> 0x80
ID 1 -> empty
ID 2 -> disk  -> 0x81
ID 3 -> disk  -> 0x82

或者

ID 0 -> disk  -> 0x81
ID 1 -> empty
ID 2 -> disk  -> 0x82
ID 3 -> boot  -> 0x80
ID 4 -> disk  -> 0x83

这部分完全不关心 scsi 驱动器上安装了什么。但您应该注意,如果您使用的 ID 高于 SCSI 适配器,则可能会出现问题。因此,您应始终尝试在 SCSI 设备 ID 之后设置 SCSI 适配器 ID。

6.2 如何交换 Linux 和 NT 启动?

好的,但是 NT 必须是第一个启动的磁盘,所以我想让它在 0x80 中,但我已经在 0x80 中有了 LILO 和一个完全 ext2 的驱动器,而我的 NT 驱动器在 0x83 中。我如何“交换”Linux 和 NT?这非常容易:您只需要告诉 BIOS NT 驱动器现在是 0x80,而 Linux 驱动器是 0x83。

other=/dev/sdd1
      label=nt
      map-drive = 0x83
      to = 0x80
      map-drive = 0x80
      to = 0x83

此更改将产生警告

  Warning: BIOS drive 0x8? may not be accessible

但是如果您知道自己在做什么,它将毫无问题地运行。

我将其用于具有 Red Hat Linux 7.1 和 Windows 2000 Pro 的此配置

Name        Flags      Part Type  FS Type          [Label]        Size (MB)

Disk Drive: /dev/sda - 0x80
sda1        Boot        Primary   Linux ext2       [/boot]            24.68
sda2                    Primary   Linux Swap                         139.83
sda3                    Primary   Linux ext2       [/usr]           3150.29
sda4                    Primary   Linux ext2       [/home]         15044.04

Disk Drive: /dev/sdb - 0x81
sdb1                    Primary   Linux Swap                         139.83
sdb2                    Primary   Linux ext2       [/]              3150.29
sdb3                    Primary   Linux ext2       [/opt]           1052.84
sdb4                    Primary   Linux ext2       [/public]       14015.88

Disk Drive: /dev/sdc - 0x82
sdc1                    Primary   Linux ext2       [/var]           1052.84
sdc2                    Primary   Linux ext2       [/tmp]            106.93
sdc3                    Primary   Linux ext2       [/cache]         1052.84
sdc4                    Primary   Linux ext2       [/chroot]        2352.44

Disk Drive: /dev/sdd - 0x83
sdd1        Boot        Primary   NTFS             [WINDOWS_2000]   9162.97

我的完整 /etc/lilo.conf

boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
default=Linux
read-only
compact
image=/boot/vmlinuz
  label=Linux
  root=/dev/sdb2
other=/dev/sdd1
  label=Windows
  map-drive = 0x83
  to = 0x80
  map-drive = 0x80
  to = 0x83

6.3 杂项

我刚刚插入了一个新的 scsi 驱动器,现在 LILO 拒绝启动,发生了什么事?

当您插入磁盘时,您必须小心 ID。如果您在两个已插入的磁盘之间添加驱动器,BIOS 编号将更改

         Before            ---->             After
scsi id -       - BIOS id        scsi id -          - BIOS id
ID 0    - disk  - 0x80           ID 0    - disk     - 0x80
ID 1    - empty                  ID 1    - new disk - 0x81
ID 2    - disk  - 0x81           ID 2    - disk     - 0x82 !!

如果您更改了 BIOS id,则必须重新评估它们。


7. 当 BIOS 无法识别时访问大容量磁盘

注意:1GB 是“大容量”?嗯,曾几何时...

我办公室的系统有一个 1GB IDE 驱动器。BIOS 只能识别 IDE 的前 504 MB。(其中 MB 表示 2**20 字节,而不是 10**6 字节。)因此,我在 350 MB 分区 /dev/hda1 上安装了 MS-DOS,在 120 MB 分区 /dev/hda2 上安装了 Linux 根目录。

Hauke Laging (hauke@laging.de) 和 Bob Hall (bhall@hallfire.org) 注意到上面有一个小错误,因此他们建议 MB 为 2**20 字节而不是 2**10 字节。感谢您的更正。此外,Hauke 想更多地了解他所谓的“LILO 启动时的字符代码,当 LILO 因 LI、LI-、LIL- 或其他任何原因而死机时”。我很感谢与此问题相关的贡献或有效的网络链接。

这是它(Zohar Stolar,zohar@numericable.fr 的贡献)

B. LILO 启动错误代码

http://www.tldp.org/HOWTO/Bootdisk-HOWTO/a1483.html

感谢链接。

当驱动器是全新的时,MS-DOS 无法正确安装自身。Novell DOS 7 也遇到了同样的问题。对我来说幸运的是,“Options by IBM”忘记将“OnTrack”软盘放入驱动器的包装盒中。该驱动器本应附带一个名为“OnTrack Disk Manager”的产品。如果您只有 MSDOS,我想您必须使用它。

因此,我使用 Linux 的 fdisk 制作了一个分区表。MSDOS-6.2 拒绝安装到 /dev/hda1 中。它说类似“此版本的 MS-DOS 适用于新安装。您的计算机已经安装了 MS-DOS,因此您需要从经销商处获取升级版本。”实际上,磁盘是全新的。

真是胡说八道!因此,我再次运行 Linux 的 fdisk,并从表中删除了分区 1。这使 MS-DOS 6.2 感到满意,它继续创建了我刚刚删除的完全相同的分区 1 并安装了自身。MS-DOS 6.2 将其主引导记录写入驱动器,但它无法启动。

幸运的是,我有一张软盘上的 Slackware 内核(由 Slackware 安装程序“setup”制作),因此我启动了 Linux 并将 Lilo 写入 MS-DOS 的损坏的 MBR 上。这行得通。这是我使用的 /etc/lilo.conf 文件

boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0             # Turns off ramdisk in Slackware kernel
timeout = 100
prompt
disk = /dev/hda         # BIOS only sees first 500 MB.
   bios = 0x80          # specifies the first IDE.
   sectors = 63         # get the numbers from your drive's docs.
   heads = 16
   cylinders = 2100
image = /vmlinuz
  append = "hd=2100,16,63"
  root = /dev/hda2
  label = linux
  read-only
  vga = extended
other = /dev/hda1
  label = msdos
  table = /dev/hda
  loader = /boot/chain.b

在安装这些系统后,我验证了包含 zImage、boot.b、map、chain.b 和 message 文件的分区可以使用 msdos 文件系统,只要它不是“stackered”或“doublespaced”。因此,我可以将 /dev/hda1 上的 DOS 分区设为 500 MB。

我还了解到,“OnTrack”会在驱动器开始处的几十个字节处写入分区表,而不是在开头,并且可以破解 Linux IDE 驱动程序来解决此问题。但是使用预编译的 Slackware 内核进行安装是不可能的。最终,IBM 寄给我一张“OnTrack”软盘。我致电 OnTrack 的技术支持。他们告诉我 Linux 已损坏,因为 Linux 不使用 BIOS。我把他们的软盘送人了。


8. 从救援软盘启动

接下来,我在我的办公室系统上安装了 Windows-95。它吹走了我漂亮的 Lilo MBR,但它让我的 Linux 分区保持原样。从软盘加载内核需要很长时间,因此我制作了一个软盘,其中包含可用的 Lilo 设置,该设置可以从 IDE 启动我的内核。

我像这样制作了 lilo 软盘

  fdformat /dev/fd0H1440      #  lay tracks on virgin diskette
  mkfs -t minix /dev/fd0 1440 #  make file system of type minix
  mount /dev/fd0 /mnt         #  mount in the standard tmp mount point
  cp -p /boot/chain.b /mnt    #  copy the chain loader over
  lilo -C /etc/lilo.flop      #  install Lilo and the map on the diskette.
  umount /mnt

请注意,运行安装程序时,必须挂载软盘,以便 Lilo 可以正确写入其映射文件。

此文件是 /etc/lilo.flop。它几乎与最后一个相同

#  Makes a floppy that can boot kernels from HD.
boot = /dev/fd0
map = /mnt/lilo-map
delay = 100
ramdisk = 0
timeout = 100
prompt
disk = /dev/hda     # 1 GB IDE, BIOS only sees first 500 MB.
   bios=0x80
   sectors = 63
   heads = 16
   cylinders = 2100
image = /vmlinuz
  append = "hd=2100,16,63"
  root = /dev/hda2
  label = linux
  read-only
  vga = extended
other = /dev/hda1
  label = msdos
  table = /dev/hda
  loader = /mnt/chain.b

最后,我需要在我的办公室系统上安装 MS-DOS 6.2,但我不想触碰第一个驱动器。我添加了一个 SCSI 控制器和驱动器,使用 Linux 的 mkdosfs 在其上制作了一个 msdos 文件系统,Windows-95 将其视为“D:”。但当然 MSDOS 不会从 D: 启动。当您有 Lilo 时,这不是问题。我在示例 2 的 lilo.conf 中添加了以下内容。

other = /dev/sda1
  label = d6.2
  table = /dev/sda
  loader = /boot/any_d.b

通过此修改,MSDOS-6.2 可以运行,并且它认为它在 C: 上,而 Windows-95 在 D: 上。


9. 在 HP 产品上安装 Mandrake Linux 9.1 后使用 LILO

2003-11-19

9.1 本实验中使用的产品描述

注意:各位,这部分绝不是任何形式的 HP 产品商业广告!事实上,我一直在使用的一系列 HP 电脑都出现了电源单元故障、硬盘问题等。另一方面,笔记本电脑的电池消耗速度比预期的要快。除了这些问题,HP 机器还是不错的。

HP Omnibook 6000

Omnibook 6000 笔记本电脑配备了“可启动”DVD 驱动器,最近,在一次 ICT 会议上,我购买了一张带有 Mandrake Linux 9.1 安装程序的可启动 DVD-ROM。使用该可启动 DVD 启动笔记本电脑后,它会直接进入 Linux 安装菜单。

HP Vectra VL420(用作服务器)

相反,HP Vectra VL420 没有 DVD 驱动器(它只有 CD 驱动器),因此无法直接从该特定安装 DVD 进行安装。但是,可以选择制作可启动软盘来启动安装过程。事实上,对于那些没有(可启动或不可启动)DVD 驱动器的用户,有几个启动映像可用。其中一个映像是“网络”映像。这意味着,在局域网中,必须有 NFS、FTP 或 HTTP 服务器,安装将从该服务器进行。

HP Vectra VL420(用作工作站)

我使用的另一台 VL420 桌面系统也有一块备用硬盘,它来自之前的 Windows 2000 服务器安装(实际上,那块 IDE 硬盘是从另一台电脑上移过来的,在那里它是主硬盘,而在这里它是第二块硬盘,用于备份数据)。 它的优点是安装了 HTTP 和 FTP 服务器(当然,如果从该硬盘启动系统就可以使用)。 这很好,所以我现在可以使用其中一个服务器。

因此,我制作了一张“网络”启动软盘,并用它启动了第一台 Vectra VL420(计划作为 Linux 服务器)。 过了一会儿,它到了选择安装方法(NFS 或 FTP 或 HTTP 服务器)的步骤。 起初,我想使用上面提到的另一台 Vectra 上的第二个“备用” HTTP 服务器,但是无论我尝试给 Windows 用户“Everyone”组什么权限,我总是从 Linux 设置中得到以下回复

错误:无法获取文件 ...(或类似的东西)

然后我尝试使用第二台 Vectra 上的 FTP“备用”服务器,起初它也要求输入本地和远程 IP 地址。 那次成功了,它开始将一部分远程 Linux 文件加载到其内存中,没有任何报错。 不久之后,它就到了与 Omnibook 6000 相同的位置:它直接进入安装菜单,要求用户选择安装使用的语言。

>从那时起,安装过程几乎相同...

我已选择/确认以下项目

- 要使用的语言,除了默认的英语(美国):我添加了 Unicode 和塞尔维亚语(西里尔字母和拉丁字母); - 鼠标和键盘; - 安全级别 - 我接受了默认值:笔记本电脑为“标准”,服务器为“较高”;

下一个重要的任务是选择 DrakX 分区选项之一

- 对于笔记本电脑,我选择了“使用 Windows 分区上的可用空间”,因为该笔记本电脑只有一个 IDE 硬盘,我希望它使用其中的一部分用于 Linux(除了已安装的 Windows 2000 Prof.)。 Windows 的磁盘管理报告

Disk 0  15      MB      FAT     (HP Diagnostics or like)
        7.13    GB      FAT32   (C: "HPNOTEBOOK")
        20.80   GB      Free space

这两个分区(FAT 和 FAT32)是在安装过程中使用 HP 提供的安装光盘创建的。

起初,Linux 安装程序抱怨我的 Windows 分区“碎片过多”,并要求我在 Windows 下重启,运行“碎片整理”工具,然后重新启动 Mandrake Linux 安装。 碎片整理过程耗时约 1.5 小时才完成! 当重新启动安装程序时,它想使用 7.13 GB 的 Windows 分区,而不是 20.80 GB。 我选择“使用可用空间”。 然后它为 Linux 创建了分区:/dev/hda5 和 /dev/hda7。

- 对于 Vectra VL420,我使用了“自定义磁盘分区”,因为那里我有两个 SCSI 磁盘,其中一个已经安装了 Windows 2000 Server,另一个我希望完全用于 Linux 服务器。 顺便说一句,我不确定“擦除整个磁盘”选项在下一步(擦除整个磁盘还是分区?)会做什么,尽管它也可能是正确的解决方案。 DrakX 识别出两个 SCSI 磁盘为 sdasdb,我选择了 sdb 来安装 Linux。 第一步是“全部清除”,然后是“自动分配”第二个磁盘上的空间。 最后,在“完成”之后,它似乎创建了 /dev/sdb1 和 /dev/sdb6 Linux 分区。

9.2 LILO 在这些 HP 产品上的外观

HP Omnibook 6000

boot=/dev/hda
map=/boot/map
vga=normal
default="windows"
keytable=/boot/us.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
        label="linux"
        root=/dev/hda5
        initrd=/boot/initrd.img
        append="quiet devfs=mount acpi=off"
        read-only
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/hda5
        initrd=/boot/initrd.img
        append="failsafe devfs=nomount acpi=off"
        read-only
other=/dev/hda2                                 <--- /dev/hda1 seems to be reserved for some HP diags.
        label="windows"
        table=/dev/hda
other=/dev/fd0
        label="floppy"
        unsafe

HP Vectra VL420(安装为桌面客户端 Linux 系统)

boot=/dev/hda
map=/boot/map
vga=normal
default="windows"
keytable=/boot/us.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
        label="linux"
        root=/dev/hda5
        initrd=/boot/initrd.img
        append="quiet devfs=mount acpi=off"
        vga=788                                 <--- that line is missing at laptop with LCD screen above.
        read-only
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/hda5
        initrd=/boot/initrd.img
        append="devfs=mount acpi=off"
        read-only
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/hda5
        initrd=/boot/initrd.img
        append="failsafe devfs=nomount acpi=off"
        read-only
other=/dev/hda1                                 <--- /dev/hda1 seems not to be reserved for HP diags here.
        label="windows"                                 There I have Windows 2000 Professional already 
        table=/dev/hda                                  installed (probably without HP's supplied CD's).
other=/dev/hdb1                                 <--- that is the spare disk with Windows 2000 Server.
        label="windows2"                                Actually I had some data on it and used it as a
        table=/dev/hdb                                  second, backup disk on that desktop workstation.
        map-drive=0x80                                  I have never tried to boot the computer from it, but
           to=0x81                                      Mandrake's setup offered it as a boot option.
        map-drive=0x81                                  (And that was useful as a FTP server, needed to install
           to=0x80                                      Mandrake Linux on the other box - without DVD drive too).
other=/dev/fd0
        label="floppy"
        unsafe

HP Vectra VL420(安装为具有服务器功能的桌面 Linux 系统)

boot=/dev/sda                                   <--- /dev/sda is the first SCSI disk where LILO resides (MBR).
map=/boot/map
vga=normal
default="windows"
keytable=/boot/us.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
        label="linux"
        root=/dev/sdb1                          <--- /dev/sdb1 is the second SCSI disk where Linux resides.
        initrd=/boot/initrd.img
        append="quiet devfs=mount acpi=off"
        vga=788
        read-only
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sdb1
        initrd=/boot/initrd.img
        append="devfs=mount acpi=off"
        read-only
image=/boot/vmlinuz-secure
        label="linux-secure"                    <--- something related to the Linux server security?
        root=/dev/sdb1
        initrd=/boot/initrd-secure.img
        append="quiet devfs=mount acpi=off"
        read-only
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sdb1
        initrd=/boot/initrd.img
        append="failsafe devfs=nomount acpi=off"
        read-only
other=/dev/sda1                                 <--- /dev/sda1 is the first partition on the first SCSI disk where Windows resides.
        label="windows"
        table=/dev/sda

9.3 结论

>从上面的例子中,你可以看到我一直在使用各种计算机形式以及各种类型的硬盘。 有些地方只有一个 IDE 驱动器,有些地方有两个,还有些地方有几个 SCSI 驱动器等等。 尽管如此,我总是尝试将 LILO 放入 MBR - 位于第一个磁盘上。 现在看来 Linux 终于解决了旧的 1024 柱面 问题。 事实上,LILO 似乎能够启动 Linux,无论它是否靠近 Linux 分区的其余部分。

还有一些与上述实验相关的其他考虑因素,但它们是另一份优秀文档的一部分:Linux+WindowsNT mini-HOWTO。


10. 参考书目

2010-07-18

注意:我经常参加在塞尔维亚和国外举办的各种(国际)ICT 会议,展示技术论文并提供半天和全天的教程,内容涵盖业余无线电爱好的基本理念和有用使命及其在工程教育中的可能用途。 我一直在做的是尽可能广泛地传播关于现有开源产品(包括 Linux 和业余无线电自由软件)的知识。 除此之外,我还为各种科学和其他杂志撰写了各种文章。 这里列出了提交给会议的那些文章和论文主题。

如果您想将我的志愿者论文作品重新发表或转发给周围的一些期刊或其他公共媒体,请随时与我联系。 我的一些论文是用塞尔维亚西里尔字母写的,一些是用英文写的,还有一些甚至是混合写的!

      - "U prilog I.A.C.", MI (the youth scientists' organization
         newspaper), No. 69, 1990.

      - "U prilog I.A.C. (2)", MI (the youth scientists' organization
         newspaper), No. 70, 1990.

      - "Vise od radio-amaterskog hobija", Vojska, No. 163, 1995.

      - "Korak ka zvezdama", Vojska, No. 200, 1996.

      - "Die Gefahr von Innen - Internet gegen Amateurfunk",
         AMSAT-DL Journal, No. 4, Dez./Feb. 96/97.

      - "Kakva nam organizacija (ne) treba?", Radioamater,
         Feb. 1997.

      - "Kakva nam organizacija (ne) treba? (2)", Radioamater,
         Apr./May. 1997.

      - "Sateliti umiru padajuci", Vojska, No. 235, 1997.

      - "The Internet is not the Enemy", QST, Aug. 1998.

      - "Novi radio-amateri za novi vek", Antena, June 2000.

      - "Racunarske komunikacije putem radio-veza i
         zastita pristupa", Bezbednost, No. 3, 2000.

      - "Paket-radio - Racunarske komunikacije putem radio-veza",
         proceedings, "Info-Teh", Vrnjacka Banja, Serbia, 2001.

      - "Racunarske komunikacije putem radio-amaterskih veza",
         proceedings, "YU-Info", Kopaonik, Serbia, 2002.

      - "Computer Communications over radio", presentation,
        "Linux FEST", Belgrade, Serbia, 2002.

      - "Paket-radio - Radio-amaterske digitalne veze",
         proceedings, "Kongres JISA", Herceg Novi, Montenegro, 2002.

      - "Paket-radio (2) - Modemi za radio-veze",
         proceedings, "Info-Teh", Vrnjacka Banja, Serbia, 2002.

      - "Alternativne racunarske mreze", festival catalog,
        "INFOFEST", Budva, Montenegro, 2002.

      - "Alternative computer networks", proceedings, "TELFOR",
         Belgrade, Serbia, 2002.

      - "With rule and regulation improvements to the progress"
         proceedings, "TELFOR", Belgrade, Serbia, 2002.

      - "Racunarske komunikacije putem radio-amaterskih veza (2)",
         proceedings, "YU-Info", Kopaonik, Serbia, 2003.

      - "Racunarske komunikacije putem radio-amaterskih veza (3)",
         proceedings, "YU-Info", Kopaonik, Serbia, 2003.

      - "Paket-radio (3) - Programske mogucnosti na strani servera",
         proceedings, "Info-Teh", Vrnjacka Banja, Serbia, 2003.

      - "Paket-radio (4) - Legal rules and regulations in the amateur
         computer networks", proceedings, "Info-Teh", Vrnjacka Banja, 
         Serbia, 2003.

      - "Packet-radio (2) - With rule and regulation improvements to the progress",
         proceedings, "Kongres JISA", Herceg Novi, Montenegro, 2003.

      - "Alternativne racunarske mreze (2)", festival catalog,
        "INFOFEST", Budva, Montenegro, 2003.

      - "Alternativne racunarske komunikacije putem radio-veza",
         Info M, 6-7/2003.

      - "Legal Rules and Regulations in the Amateur Radio Computer Networks",
         proceedings, "22nd ARRL and TAPR Digital Communications Conference",
         Hartford, CT USA, 2003.

      - "Favoritism", IEEE Potentials, Oct/Nov 2003
            
      - "Alternative computer networks (2)", proceedings, "TELFOR",
         Belgrade, Serbia, 2003.

      - "With rule and regulation improvements to the progress (2)"
         proceedings, "TELFOR", Belgrade, Serbia, 2003.
      
      - "XI Telekomunikacioni forum - TELFOR 2003", Info M, 8/2003.

      - "Aktivnosti organizacije IEEE Computer Society - YU Chapter"
        Info M, 8/2003.
      
      - "Yugoslavia IEEE Student Branch", IEEE Region 8 News,
        Vol. 7 No. 1, Feb/Mar 2004

      - "Radio-amaterske racunarske mreze", tutorial, "Info-Teh", 
        Vrnjacka Banja, Serbia, 2004.

      - "Radio-amaterske racunarske mreze", tutorial, "Kongres 
        JISA", Herceg Novi, Montenegro, 2004.
      
      - "The Amateur Radio as a Learning Technology in
        Developing Countries", proceedings, "ICALT/TEDC 2004",
        Joensuu, Finland, 2004.

      - "The Amateur Radio in Engineering Education", seminar, 
        "IEEE-EESTEC Technical Conference 2004", Arcavacata 
        di Rende (Cosenza), Italy, 2004.

      - "The Conference Low-Down", IEEE Potentials, Feb/Mar 2005

      - "ICALT 2004, IEEE Novi Sad SB, Serbia & Montenegro", 
        IEEE Region 8 News, Vol. 8 No. 1, Mar 2005
      
      - "The Conference Low-Down", IEEE Potentials, Apr/May 2005
      
      - "The Amateur Radio Networking And Computing", proceedings,
        "PSU-UNS ICEE 2005", Novi Sad, Serbia, 2005

      - "Radio-amaterske racunarske mreze", tutorial, "Info-Teh", 
        Vrnjacka Banja, Serbia, 2005 (intro: dr D. Surla, PMF)

      - "Radio-veze", round table session, "Kongres JISA", Herceg 
        Novi, Montenegro, 2005.

      - "The New Amateur Radio University Network - AMUNET", 
        proceedings, "9th WSEAS CSCC Multiconference", 
        Vouliagmeni, Athens, Greece, 2005.

      - "The perspectives of the Amateur University Network - 
        AMUNET", WSEAS Transactions on Communications, Vol 4,
        pp 834, Sep. 2005.

      - "Conferences in Serbia and Montenegro", IEEE Region 8 News,
        Vol. 8 No. 3, Sep 2005.

      - "The Conference Low-Down", IEEE Potentials, Dec 2005

      - "Divided We Fall", The Institute, IEEE, Dec 2005

      - "University Networking Through the Amateur Radio Communications",
        plenary lecture, "3rd WSEAS/IASME Int. Conf. on Engineering
        Education", Vouliagmeni, Athens, Greece, 2006.

      - "The New Amateur Radio University Network - AMUNET (Part 2)",
        proceedings, "10th WSEAS CSCC Multiconference",
        Vouliagmeni, Athens, Greece, 2006.

      - "University Networking Through the Amateur Radio Communications",
        tutorial, "10th WSEAS CSCC Multiconference",
        Vouliagmeni, Athens, Greece, 2006.

      - "Education in Peril", The Institute, IEEE, Sep 2006

      - "The Conference Low-Down", IEEE Potentials, Dec 2006

      - "Amateur Radio in Engineering Education", tutorial, "Info-Teh",
        Vrnjacka Banja, Serbia, 2007.

      - "Paket-radio (5) - Programske mogucnosti na strani klijenta",
         proceedings, "Info-Teh", Vrnjacka Banja, Serbia, 2007.

      - "Summer Schools on the Amateur Radio Computing", proceedings,
        "12th Annual Conference on Innovation & Technology in Computer
         Science Education", ACM ITiCSE 2007, Dundee, Scotland, 2007.

      - "Amateur Radio in Engineering Education", tutorial, "EUROCON",
        Warsaw, Poland, 2007.

      - "Bringing New Life in Old Computers", proceedings, "26th ARRL
        and TAPR Digital Communications Conference", Hartford, CT USA,
        2007.

      - "The Conference Low-Down", IEEE Potentials, Sep/Oct 2007

      - "My trip to Eurocon - a member's view", IEEE Region 8 News,
        Vol. 10 No. 3, Dec 2007.

      - "Amateur Radio in Engineering Education", tutorial, "Info-Teh",
        Vrnjacka Banja, Serbia, 2008.

      - "Paket-radio (6) - Privatnost podataka i zastita ucesnika u
        radio-amaterskim mrezama", proceedings, "Info-Teh", Vrnjacka
        Banja, Serbia, 2008.

      - "Amateur Radio in Engineering Education",
        tutorial, "5th WSEAS/IASME Int. Conf. on Engineering
        Education", Heraklion, Crete, Greece, 2008.

      - "The New Amateur Radio University Network - AMUNET (Part 3)",
        proceedings, "12th WSEAS CSCC Multiconference",
        Heraklion, Crete, Greece, 2008.

      - "Amateur Radio Telecommunications and Networking in Education",
        tutorial, "IARIA ICWMC 2008", Vouliagmeni, Athens, Greece, 2008.

      - "The Conference Low-Down", IEEE Potentials, Sep/Oct 2008

      - "Amateur Radio in Engineering Education", workshop,
        "TELFOR", Belgrade, Serbia, 2008.

      - "Amateur Radio: More than a hobby!", tutorial,
        "IAENG IMECS 2009", Hong Kong, China, 2009.

      - "Wasted Gear", IEEE Computer, Feb 2009

      - "Amateur Radio: More than a hobby!", tutorial,
        "6th WSEAS/IASME Int. Conf. on Engineering Education",
        Rodos, Greece, 2009.

      - "The New Amateur Radio University Network - AMUNET (Part 4)",
        proceedings, "13th WSEAS CSCC Multiconference",
        Rodos, Greece, 2009.

      - "Amateur Radio in Education", book chapter in "Handbook of
        Research on Human Performance and Instructional Technology",
        ISBN: 978-1-60566-782-9, October 2009

      - "Surveillance as a service", IEEE Computer, Dec 2009

      - "Amateur Radio: More than a hobby!", tutorial, IEEE
        "ICACT 2010", Phoenix Park, Korea, 2010.

      - "Amateur Radio: More than a hobby!", tutorial, DIRF
        "NDT 2010", Prague, Czech Republic, 2010.     
      

除了已发表的文章和展示的作品外,我还是一些协会的成员:IEEE 计算机协会、IEEE 通信协会、WSEAS 和 ACM。 此外,我正在努力建立一个学术计算机网络,该网络将使用业余无线电台作为媒体。 地球上其他地方存在一些类似的拟议网络,我邀请他们的管理员与我联系以进行合作。


11. 更多信息

11.1 版权

版权 (c) 2000-2010 Miroslav "Misko" Skoric, YT7MPB。

根据 GNU 自由文档许可证 1.1 版或自由软件基金会发布的任何后续版本的条款,允许复制、分发和/或修改本文档; 没有不变章节,没有封面文字,也没有封底文字。 许可证副本可从 http://www.fsf.org/licenses/fdl.html 获取。

11.2 免责声明

使用本文档中的信息风险自负。 我不承担本文档的任何潜在责任。 使用本文档的概念、示例和/或其他内容完全由您自行承担风险。

所有版权均归其所有者所有,除非另有明确说明。 在本文档中使用术语不应被视为影响任何商标或服务标志的有效性。

对特定产品或品牌的命名不应被视为认可。

强烈建议您在重大安装之前备份您的系统,并定期备份。

11.3 新闻

除了 Lilo 文档外,还有许多 mini-howto 对您的需求可能很有用。 它们都称为``Linux+foobar-OS'',对于某些 foobar-OS,它们处理 Linux 和其他操作系统共存的问题。 例如,Bernd Reichert 的“NT OS Loader + Linux mini-HOWTO”描述了如何在现有 Windows NT Loader 的菜单下为 Linux 添加条目。 接下来,您有我自己编写的 Linux+WindowsNT mini-HOWTO,其中介绍了如何在现有 Linux Lilo 菜单下为 NT 添加条目(比此处更详细)。 此外,“Multiboot-with-LILO”描述了如何使各种 Windows 版本与 Linux 共存。

本 mini-HOWTO 会不时改进。 如果您认为 Linux 安装光盘上的 HOWTO 有些过时,您可以查看互联网上的最新版本。 它可以在主要的 Linux 文档项目 或其某些镜像中找到。

11.4 致谢

本版本的 mini-HOWTO 感谢

Cameron Spitzer (cls@truffula.sj.ca.us)
Alessandro Rubini (rubini@linux.it)
Tony Harris (tony@nmr.mgh.harvard.edu)
Marc Tanguy (mtanguy@ens.uvsq.fr)
Dragomir Kalaba, a local Linux 'guru'

任何意见或建议都可以发送到我的电子邮件地址:skoric at eunet dot rs

11.5 HOWTO

这些旨在作为获取背景信息以及向您展示如何解决特定问题的主要起点。 一些相关的 HOWTO 包括 BootdiskInstallationSCSIUMSDOS。 这些的主要站点是 Metalab(以前称为 Sunsite)的 LDP 存档

11.6 Mini-HOWTO

这些是 HOWTO 的较小的自由文本相关文档。 一些相关的 mini-HOWTO 包括 Backup-With-MSDOSDisklessLILOLarge DiskLinux+DOS+Win95+OS2Linux+OS2+DOSLinux+Win95Linux+WindowsNTLinux+NT-LoaderNFS-RootWin95+Win+LinuxZIP DriveFBB packet-radio BBS。 您可以在与 HOWTO 相同的位置找到这些文档,通常在名为 mini 的子目录中。 请注意,这些文档计划在不久的将来转换为 SGML 并成为正式的 HOWTO。

11.7 本地资源

在大多数 Linux 发行版中,都安装了一个文档目录,请查看 /usr/doc 目录。 大多数软件包都在其中存储其主要文档和 README 文件等。 在这里您还将找到格式化好的 HOWTO 的 HOWTO 存档(/usr/doc/HOWTO)以及纯文本文档的 mini-HOWTO 存档(/usr/doc/HOWTO/mini)。

许多前面提到的配置文件都可以在 /etc 目录中找到。 特别是,您将需要使用 /etc/fstab 文件来设置分区的挂载,并且可能还需要使用 /etc/mdtab 文件,该文件用于 md 系统来设置 RAID。

/usr/src/linux 中的内核源代码当然是最终的文档。 换句话说,使用源代码,卢克。 还应该指出的是,内核不仅附带了源代码(甚至有注释,至少是部分注释),而且还附带了一个信息丰富的 documentation 目录。 如果您要询问有关内核的任何问题,您应该首先阅读此目录,这将为您和许多其他人节省大量时间,并可能避免尴尬。

还要查看您的系统日志文件(/var/log/messages)以查看发生了什么,特别是如果屏幕上滚动的内容过多,启动过程是如何进行的。 在单独的窗口或屏幕中使用 tail -f /var/log/messages 将为您提供系统正在发生的事情的持续更新。

您还可以利用 /proc 文件系统,它是了解系统内部工作原理的窗口。 使用 cat 而不是 more 来查看文件,因为它们被报告为零长度。 报告表明 less 在这里效果很好。

11.8 网页

那里有大量的 informative 网页,并且由于其性质,它们变化很快,因此如果这些链接很快过时,请不要感到惊讶。

一个好的起点当然是 Linux 文档项目 主页,或者这个:Linux 文档项目,这是一个文档、项目页面以及更多内容的资讯中心。

如果您有任何其他可能感兴趣的线索,请告诉我。


12. 获取帮助

最后,您可能会发现自己无法解决问题,需要别人的帮助。 最有效的方法是向当地人或您最近的 Linux 用户组寻求帮助,在网上搜索最近的 Linux 用户组。

另一种可能性是在 Usenet 新闻组的众多新闻组之一中提问。 问题是这些新闻组的容量和噪声非常高(称为低信噪比),以至于您的问题很容易被忽略而得不到解答。

无论您在哪里提问,重要的是要问好,否则您将不会被认真对待。 仅仅说我的磁盘不工作 对您没有帮助,反而会进一步增加噪声水平,如果您幸运的话,有人会要求您澄清。

相反,请详细描述您的问题,以便人们能够帮助您。 问题可能出在您意想不到的地方。 因此,建议您列出有关您系统的以下信息

硬件

软件

外围设备

请记住,启动文本会记录到 /var/log/messages 中,这可以回答上面大多数问题。 显然,如果驱动器发生故障,您可能无法将日志保存到磁盘,但您至少可以使用 SHIFTPAGE UP 键向上滚动屏幕。 在您的求助请求中包含部分内容也可能很有用,但不要过分,保持简洁,因为将完整的日志文件转储到 Usenet 新闻组有点令人讨厌。