注意:1GB 是“大容量”?好吧,曾几何时...
我办公室的系统有一块 1GB IDE 硬盘。BIOS 只能看到 IDE 的前 504 MB。(MB 指的是 2**20 字节,而不是 10**6 字节。)所以我有一个 350 MB 的 MS-DOS 分区 /dev/hda1
和一个 120 MB 的 Linux 根分区 /dev/hda2
。
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 也有同样的问题。幸运的是, “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。我把他们的软盘扔掉了。