LiloLILO是在x86体系下最常用的Linux装入程序;下面我将使用Lilo代替LILO是因为我不喜欢使用大写。这篇文章描述了一些典型的关于Lilo的安装。作为Lilo用户的使用指南。我认为例子相当有用,即使你的情况与我的不太相同。我希望这可以帮助你解决问题。由于Lilo本身的文档也是非常好的,如果有兴趣,可以/usr/doc/lilo*找到。 1、介绍 尽管在/usr/doc/lilo-version下找到的Lilo的文档是非常完整的,但是一些Linux用户在配置他们的/etc/lilo.conf文件时依然经历一些问题。这个文档则是通过描述5个例子来帮助他们: 第一个例子是经典的"Linux 和 其他系统"的共存安装。 第二个例子是展示了如果将Lilo安装在一个连接为/dev/hdc的硬盘驱动器上,它将作为/dev/hda启动。 这些过程通常在你安装了一个新的内核程序后都要经历。当你的BIOS足够新的情况下,它也会告诉你如果从SCSI磁盘上启动。 第三个例子告诉你如果在BIOS不能访问root分区时如何引导Linux系统。 第四个示例是用来告诉你如何访问容量巨大的磁盘,这是在BIOS和DOS都不能访问的情况下。 最后一个示例是告诉你如果恢复一个损坏的磁盘,如果是由于安装了另一个操作系统而损坏的。 2、背景信息和普通安装 当Lilo启动了系统,它使用BIOS调用从磁盘上装入Linux内核(IDE驱动器,软盘或其它一些)。这样的话,内核就必须存在于某些介质的某个地方,它可以被bios访问。 在启动时,Lilo没有能力读取文件系统的数据,以及在你写入/etc/lilo.conf文件中的任何的路径名。安装的时候,程序建立了什么扇区由什么文件使用的表,从而引导系统。所有的这些文件必须在一个分区,它可以被BIOS访问(这些文件一般情况下定位在/boot目录下,这就意味着只有你的Linux系统的root分区需要通过BIOS来访问。) 另外的一个基于BIOS的问题就是你需要在每次修改了Lilo设置以后,重新安装装入程序(i.e.你需要调用/sbin/lilo)。当你重新编译你的内核并且覆盖你旧的映像时,你必须重装Lilo。 2.1.我将Lilo装在什么地方? 操作符boot=在/etc/lilo.conf文件中告诉Lilo在什么地方安装了它的主引导器。一般情况下,你可以指定主引导记录(/dev/hda)或你的Linux安装的root分区(通常是/dev/hda1或/dev/hda2)。 如果你有另一个操作系统安装在你的硬盘上的话,你最好将Lilo安装在root分区上而不是MBR分区上。因此,你必须将这个分区标记为"bootable",可以使用fdisk的"a"命令和cfdisk的"b"。如果你不覆盖主引导扇区,你将发现如果必要,可以轻易地卸下Linux和Lilo。 2.2. 如何设置我的IDE硬盘? 我个人不使用BIOS中的LBA和LARGE的设置(但是我运行Linux);在PC世界中,这是设计中的一个非常讨厌的约束。 这就要求内核存放在第一个1024柱面之中,但是在你为你的硬盘分区并且将root分区作地很小时这并不是一个问题。 如果你的硬盘已经有了另一个操作系统,请不要修改BIOS的设置,否则旧的系统将不会工作。最近的Lilo的版本都能处理LBA和LARGE的磁盘设置。 注意在/etc/lilo.conf中的"linear"关键字可以处理一些问题。这个关键字使得Lilo使用线性的扇区编址而代替扇区/磁头/柱面的寻址方式。转换成3维的地址的方式虽然延迟了运行的时间,但是却解决了这个磁盘寻址的几何问题。 如果你有不只一个硬盘,并且只用于Linux而且不参与启动过程,你可以告诉BIOS,它们没有被安装。你的系统将会较快地启动并且Linux将立刻地自动检测所有的硬盘。我经常在自己的计算机上切换硬盘,但不是通过BIOS的设置。 2.3 如何在启动时交互操作 当你看见Lilo提示符时,你可以敲击 如果你选择启动一个Linux内核,在你可以在你选择的系统名称后加入命令行参数。内核接受许多命令行参数。所以的这些参数在“BootPrompt-HOWTO”中可以找到。一些命令行是非常重要的,所以这里不得不提一下: root=:你可以告诉Linux内核t挂起一个不同的分区作为root分区。比如,我的系统有一个小分区,安装了一个最小化的Linux,并且我没有能力在错误地损坏了root分区之后再启动系统。 init=:1.3.43以后的Linux内核能够运行另一种命令,而代替/sbin/init,就是在命令行指定。如果你在启动时遇到了问题,你可以通过指定init=/bin/sh来访问一个裸系统(当你使用最喜欢的shell的提示符下,你需要挂起你的磁盘:"mount -w -n -o remount /: mount -a "并且记住在关机前"umount -a"。 一个数:在内核的命令行中指定一个数,你的操作将会进入一个特别的运行级别(默认值通过是3或2,根据你选择的发布版本的不同)。建议看一个init的文档。 2.4 我如何卸载Lilo? 当Lilo覆盖了一个启动扇区,它保存了一个备份在/boot/boot.xxyy,xxyy是设备的主与次的号码,是用十六进制的。你可以看一看你的磁盘或分区的主次号码:"ls -l /dev/device"。例如,在/dev/hda上的第一个扇区(主号3,次号0)将被存在/boot/boot.0300,安装在/dev/fd0上的Lilo建立/boot/boot.0200,安装在/dev/sdb3(主号8,次号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状态正的"fisk/mbr",容易得多了:它允许你不需要启动除Linux以外的任何系统就可以干净地把Linux从磁盘上清楚。在删除了Lilo之后,记住需要运行Linux的fdisk来除去每一个Linux分区(dos的fdisk有时不灵)。 上一篇:《UNIX系列系统入侵教程》之二 下一篇:多层次负载平衡之一 更多相关文章
|
推荐文章
精彩文章
|