skoric at eunet dot rs
此版本的 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 中找到。
hdc
以作为 hda
启动并使用 bios=
尽管在 Lilo 源代码中找到的文档(安装在 /usr/doc/lilo
-version 中的文档)非常全面,但大多数 Linux 用户在构建自己的 /etc/lilo.conf
文件时都会遇到一些麻烦。本文档旨在通过提供最少的信息和展示五个示例安装来为他们提供支持
/dev/hdc
的硬盘驱动器上安装 Lilo,该硬盘驱动器将作为 /dev/hda
启动。当您从自己运行的系统安装新的 Linux 驱动器时,通常需要这样做。这也说明了当您的 BIOS 足够新时如何从 SCSI 磁盘启动。最后三个示例来自卡梅伦,cls@truffula.sj.ca.us
,他编写了原始文档。亚历山德罗 rubini@linux.it
除了 Linux 之外什么都不运行,因此他无法亲自检查或更新它们。不用说,欢迎任何反馈。
当 Lilo 启动系统时,它使用 BIOS 调用从磁盘(IDE 驱动器、软盘或其他任何介质)加载 Linux 内核。因此,内核必须位于 BIOS 可以访问的某个位置。
在启动时,Lilo 无法读取文件系统数据,并且您在 /etc/lilo.conf
中输入的任何路径名都在安装时(当您调用 /sbin/lilo 时)解析。安装时是程序构建表的时刻,这些表列出了用于加载操作系统的文件使用的扇区。因此,所有这些文件都必须位于 BIOS 可以访问的分区中(这些文件通常位于 /boot
目录中,这意味着只有 Linux 系统的根分区需要通过 BIOS 访问)。
基于 BIOS 的另一个结果是,每当您修改 Lilo 设置时,都必须重新安装加载器(即,您必须重新调用 /sbin/lilo)。每当您重新编译内核并覆盖旧映像时,都必须重新安装 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 时,也发生了同样的事情。
我个人不在 BIOS 中使用 LBA 或 LARGE 设置(但我只运行 Linux);它们是 PC 世界中设计缺陷强加的可怕的临时解决方案。这要求内核位于前 1024 个柱面中,但这不成问题,只要您对硬盘驱动器进行分区并保持根分区较小(无论如何您都应该这样做)。
如果您的硬盘已经承载了另一个操作系统,您将无法修改 BIOS 设置,否则旧系统将无法再工作。所有最新的 Lilo 发行版都能够处理 LBA 和 LARGE 磁盘设置。
请注意,/etc/lilo.conf
中的 "linear"
关键字可以帮助处理几何问题。该关键字指示 Lilo 使用线性扇区地址而不是扇区/磁头/柱面元组。到 3D 地址的转换延迟到运行时进行,因此使设置更不易受几何问题的影响。
如果您有多个硬盘驱动器,其中一些硬盘驱动器仅供 Linux 使用且未参与启动过程,您可以告诉 BIOS 它们未安装。您的系统将启动得更快,并且 Linux 将立即自动检测所有磁盘。我经常在我的计算机中切换磁盘,但我从不触碰 BIOS 配置。
当您看到 Lilo 提示符时,您可以按 <Tab> 键显示可能的选择列表。如果 Lilo 未配置为交互式,请在出现“LILO”消息之前按住 <Alt> 或 <Shift> 键。
如果您选择启动 Linux 内核,您可以在您选择的系统名称后添加命令行参数。内核接受许多命令行参数。所有参数都在 Paul Gortmaker 的“BootPrompt-HOWTO”中列出,我不会在此处重复。但是,一些命令行参数特别重要,值得在此处描述
root=
:您可以告诉 Linux 内核挂载与 /lilo.conf
中显示的分区不同的分区作为根分区。例如,我的系统有一个微小的分区,托管着一个最小的 Linux 安装,并且在错误地破坏了我的根分区后,我仍然能够启动系统。init=
:Linux 内核的 1.3.43 及更高版本可以执行另一个命令来代替 /sbin/init,如命令行中指定的那样。如果您在启动过程中遇到严重问题,您可以通过指定 init=/bin/sh
来访问裸系统(当您在 shell 提示符下时,您很可能需要挂载您的磁盘:尝试“mount -w -n -o remount /; mount -a”,并记住在关闭计算机之前“umount -a”)。/etc/inittab
和 /etc/rc*.d
以进行进一步探究。当 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 分区标记为可引导。
注意:如果您发现下一节难以阅读,您也可以查找网页:http://surfer.nmr.mgh.harvard.edu/partition/ramdisk.html
,您将在其中找到此贡献的“原始”版本...
作者:Tony Harris
2000 年 10 月 16 日
ram 磁盘小指南
如果您的根文件系统位于内核没有内置驱动程序的设备上,您将需要使用 lilo
在启动周期的早期加载该驱动程序作为模块。只有两个简单的步骤
lilo.conf
以指向该映像首先,我 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
中。
大多数 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 中配置多个内核映像并不少见,至少如果您跟上内核开发的步伐。
如果您编译“zImage”内核,并且它太大而无法容纳在半兆字节中(这在新的 2.1 内核中很常见),您应该构建一个“big zImage”来代替:“make bzImage
”。要启动大型内核映像,不需要任何特殊操作,但您需要 Lilo 的版本 18 或更高版本。如果您的安装较旧,则应升级您的 Lilo 软件包。
在这里,我将为您提供一个例程顺序,如果您想在 Lilo 菜单下同时拥有 Linux 和 NT 条目,您必须执行这些例程
嗯,您可以使用与上述相同的过程。我建议您阅读 Linux+WindowsNT mini-HOWTO,其中也讨论了启动 Windows 2000,它安装在磁盘的同一部分,Windows NT 之前 安装在那里。您将在那里找到许多关于各种 Linux+WinNT/2000/98 组合的有用细节。
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
我有两个 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
马克·唐吉 (mtanguy@ens.uvsq.fr) 的贡献,2001-09-27
实际上,有两种方法可以知道它
如果您有 adaptec scsi 卡(2940u2、29160、39160),您只需使用“诊断”模式(建议使用 BIOS v3.10.0)。必须在 scsi 卡 BIOS 菜单中激活它。然后您只需要等待并查看类似以下内容
... | ID | LUN | 供应商 | 产品 | 版本 | 大小 | 同步 | 总线 | HD# |
... | 0 | 0 | QUANTUM | ATLAS10K2 | DDD6 | 17GB | 160 | 16 | 80h |
... | 1 | 0 | QUANTUM | ATLAS10K2 | DDD6 | 17GB | 160 | 16 | 81h |
... | 2 | 0 | IBM | DDRS | DC1B | 4GB | 80 | 16 | 82h |
... | 3 | 0 | IBM | DNES | SAH0 | 9GB | 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。
好的,但是 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
我刚刚插入了一个新的 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,则必须重新评估它们。
注意: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。我把他们的软盘送人了。
接下来,我在我的办公室系统上安装了 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: 上。
2003-11-19
注意:各位,这部分绝不是任何形式的 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 磁盘为 sda 和 sdb,我选择了 sdb 来安装 Linux。 第一步是“全部清除”,然后是“自动分配”第二个磁盘上的空间。 最后,在“完成”之后,它似乎创建了 /dev/sdb1 和 /dev/sdb6 Linux 分区。
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
>从上面的例子中,你可以看到我一直在使用各种计算机形式以及各种类型的硬盘。 有些地方只有一个 IDE 驱动器,有些地方有两个,还有些地方有几个 SCSI 驱动器等等。 尽管如此,我总是尝试将 LILO 放入 MBR - 位于第一个磁盘上。 现在看来 Linux 终于解决了旧的 1024 柱面 问题。 事实上,LILO 似乎能够启动 Linux,无论它是否靠近 Linux 分区的其余部分。
还有一些与上述实验相关的其他考虑因素,但它们是另一份优秀文档的一部分:Linux+WindowsNT mini-HOWTO。
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。 此外,我正在努力建立一个学术计算机网络,该网络将使用业余无线电台作为媒体。 地球上其他地方存在一些类似的拟议网络,我邀请他们的管理员与我联系以进行合作。
版权 (c) 2000-2010 Miroslav "Misko" Skoric, YT7MPB。
根据 GNU 自由文档许可证 1.1 版或自由软件基金会发布的任何后续版本的条款,允许复制、分发和/或修改本文档; 没有不变章节,没有封面文字,也没有封底文字。 许可证副本可从 http://www.fsf.org/licenses/fdl.html 获取。
使用本文档中的信息风险自负。 我不承担本文档的任何潜在责任。 使用本文档的概念、示例和/或其他内容完全由您自行承担风险。
所有版权均归其所有者所有,除非另有明确说明。 在本文档中使用术语不应被视为影响任何商标或服务标志的有效性。
对特定产品或品牌的命名不应被视为认可。
强烈建议您在重大安装之前备份您的系统,并定期备份。
除了 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 文档项目 或其某些镜像中找到。
本版本的 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
这些旨在作为获取背景信息以及向您展示如何解决特定问题的主要起点。 一些相关的 HOWTO 包括 Bootdisk
、Installation
、SCSI
和 UMSDOS
。 这些的主要站点是 Metalab(以前称为 Sunsite)的 LDP 存档。
这些是 HOWTO 的较小的自由文本相关文档。 一些相关的 mini-HOWTO 包括 Backup-With-MSDOS
、Diskless
、LILO
、Large Disk
、Linux+DOS+Win95+OS2
、Linux+OS2+DOS
、Linux+Win95
、Linux+WindowsNT
、Linux+NT-Loader
、NFS-Root
、Win95+Win+Linux
、ZIP Drive
、FBB packet-radio BBS
。 您可以在与 HOWTO 相同的位置找到这些文档,通常在名为 mini
的子目录中。 请注意,这些文档计划在不久的将来转换为 SGML 并成为正式的 HOWTO。
在大多数 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
在这里效果很好。
那里有大量的 informative 网页,并且由于其性质,它们变化很快,因此如果这些链接很快过时,请不要感到惊讶。
一个好的起点当然是 Linux 文档项目 主页,或者这个:Linux 文档项目,这是一个文档、项目页面以及更多内容的资讯中心。
如果您有任何其他可能感兴趣的线索,请告诉我。
最后,您可能会发现自己无法解决问题,需要别人的帮助。 最有效的方法是向当地人或您最近的 Linux 用户组寻求帮助,在网上搜索最近的 Linux 用户组。
另一种可能性是在 Usenet 新闻组的众多新闻组之一中提问。 问题是这些新闻组的容量和噪声非常高(称为低信噪比),以至于您的问题很容易被忽略而得不到解答。
无论您在哪里提问,重要的是要问好,否则您将不会被认真对待。 仅仅说我的磁盘不工作 对您没有帮助,反而会进一步增加噪声水平,如果您幸运的话,有人会要求您澄清。
相反,请详细描述您的问题,以便人们能够帮助您。 问题可能出在您意想不到的地方。 因此,建议您列出有关您系统的以下信息
请记住,启动文本会记录到 /var/log/messages
中,这可以回答上面大多数问题。 显然,如果驱动器发生故障,您可能无法将日志保存到磁盘,但您至少可以使用 SHIFT
和 PAGE UP
键向上滚动屏幕。 在您的求助请求中包含部分内容也可能很有用,但不要过分,保持简洁,因为将完整的日志文件转储到 Usenet 新闻组有点令人讨厌。