电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

深入解剖 LILO


发布日期:2019/6/24
 

本文我们将深入底层来讲述LILO 的技术细节也将告诉读者怎样去掉LILO 以及重新安装LILO

本文我们将讲述LILO 的内部技术细节以及启动时的主要操作及其功能以帮助我们调整LILO 的安装LILO 最大的好处就是它独立于文件系统可以启动各种操作系统从MicrosoftOS/SCO UnixUnixwarePCDOS到Linux等等

LILO 能处理最多个不同的映像LILO 写入MBR 时就作为主引导程序写入扩展分区的引导扇区时就是第二引导程序采用LILO可以有多种组合方式启动系统

我们先来看看引导过程硬盘上的数据被准确的分配到对应的磁道扇区硬盘上的数据分布首先是引导扇区然后是文件分配表(FAT)接下来就是数据区

硬盘分区时被分为基本分区和扩展分区基本分区可以作为引导分区可以通过任何引导程序标记为可引导扩展分区可以分成好几个逻辑分区很多的BIOS 不允许从逻辑分区启动

Linux 最多支持个基本分区如果需要额外的分区那么就要其中的一个基本分区变成扩展分区然后在扩展分区里面划分逻辑分区很重要的一点是有些逻辑分区的分区表不能被识别为设备的第一块分区表通常存放于分区的引导扇区而且通常只有整个盘的分区启动扇区用作引导扇区称为主引导记录(MBR)

LILO 可以用于以下情形

第一硬盘的引导扇区

软盘的引导扇区

位于第一硬盘的Linux 文件系统分区上的引导扇区

LILO 不能用于以下情形

交换分区

扩展分区中的逻辑分区的引导扇区

所以如果你在第二硬盘上安装了Linux 而不能启动的话可以采取在第一硬盘上建立 /boot 的办法来解决

引导加载过程由很多程序组成我们先来看看LILO 安装

时的各种不同程序

MAP 安装程序这个程序把LILO 的文件放到合适的位置

并记录这些信息(会在LILO 启动时用到)这个程序就是

/sbin/lilo 每次配置文件有改动或者有新内核时需要重新运行一遍

/boot/**其他LILO 启动时需要的文件存放在 /boot 目录下map 文件是十分重要的map 安装程序把新内核的位置记录到这个文件

引导加载程序这个程序无需多言是最重要的部件了它被

BIOS 调入内存然后调用内核或者其他操作系统的引导扇区

包含引导加载程序第一部分的引导扇区被调入内存然后调用引导加载程序的第二部分一般位于文件 /boot/bootb接下来就启动内核

如果从可引导软盘启动的话BIOS 把软盘的第一个扇区调入内存一般这个扇区包含一段程序来启动对应的操作系统和软盘一样如果LILO 写入MBR 那么MBR 就被调入内存执行对应的操作给用户提示选择需要引导的操作系统具体地说MBR 的头 个字节由引导加载程序利用剩余的 字节是分区表信息还剩下的两个字节就是分区激活标志 AA

在软盘上备份 MBR 信息

bash# dd if=/dev/hda of=/dev/fd bs= count=

恢复(万一的情况下)

bash# dd if=/dev/fd of=/dev/hda bs= count=

删除 LILO

c:> fdisk /mbr

恢复 LILO

重新安装 Windows 以后就会把LILO 干掉无论什么原因

我们都应该知道怎样恢复LILO

最好手头有一张安装 CD 这年头干净并且确实好用的

软盘太少了所以不推荐你使用软盘当然如果你认为

你的软盘质量可靠那么可以从CDROM

上建立应急启动盘

dd if=/cdrom/disks/rescue of=/dev/fd

在 DOS 下面采用

rawrite imagename a:

也可以在 上下载一个按照说明制作一张启动磁盘

如果从 CD 启动的话各个不同的Linux 版本有不同的方法进入应急状态Red Hat 启动后有一个应急模式SuSE 的话需要先进入安装界面然后按Ctrl+Alt+Fn 键找到shell 提示符可以在这个提示符下来恢复

下面介绍恢复步骤

首先建立挂接点

mkdir mount

然后把丢失的 Linux 挂接到这里

mount /dev/hda mount

如果 /boot 位于另外的分区

需要把他挂接到 mount/boot 目录下例如

mount /dev/hda mount/boot

使用 chroot 命令把 mount 作为根目录cd /boot

命令实际上进入的是 mount/boot 目录

chroot mount

运行 /sbin/lilo 这样就把 LILO 安装回了 MBR重新启动就会看到 LILO 提示符回来了

上一篇:层次树添加节点、删除节点

下一篇:关于约束、CASE语句和游标的一些介绍