Chinaunix首页 | 论坛 | 博客
  • 博客访问: 771112
  • 博文数量: 803
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:29
文章分类

全部博文(803)

文章存档

2011年(1)

2008年(802)

我的朋友

分类:

2008-10-29 11:49:11


  本文我们将深入底层来讲述LILO 的技术细节,也将告诉读者怎样去掉LILO 以及重新安装LILO。
  
  本文我们将讲述LILO 的内部技术细节以及启动时的主要操作及其功能,以帮助我们调整LILO 的安装。LILO 最大的好处就是它独立于文件系统,可以启动各种操作系统:从Microsoft、OS/2、SCO Unix、Unixware、PC-DOS到Linux等等。
  
  LILO 能处理最多16个不同的映像,LILO 写入MBR 时就作为主引导程序,写入扩展分区的引导扇区时就是第二引导程序。采用LILO,可以有多种组合方式启动系统。
  
  我们先来看看引导过程,硬盘上的数据被准确的分配到对应的“磁道”和“扇区”,硬盘上的数据分布首先是引导扇区,然后是文件分配表(FAT),接下来就是数据区。
  
  硬盘分区时,被分为基本分区和扩展分区。基本分区可以作为引导分区,可以通过任何引导程序标记为可引导。扩展分区可以分成好几个逻辑分区,很多的BIOS 不允许从逻辑分区启动。
  
  Linux 最多支持4个基本分区,如果需要额外的分区,那么就要其中的一个基本分区变成扩展分区,然后在扩展分区里面,划分逻辑分区。很重要的一点是有些逻辑分区的分区表不能被识别为设备的第一块。分区表通常存放于分区的引导扇区,而且,通常只有整个盘的分区启动扇区用作引导扇区,称为主引导记录(MBR)。
  
  LILO 可以用于以下情形:
  
  1、第一硬盘的引导扇区。
  2、软盘的引导扇区。
  3、位于第一硬盘的Linux 文件系统分区上的引导扇区。
  
  LILO 不能用于以下情形:
  
  1、分区。
  2、扩展分区中的逻辑分区的引导扇区。
  
  所以,如果你在第二硬盘上安装了Linux ,而不能启动的话,可以采取在第一硬盘上建立 /boot 的办法来解决。
  
  引导加载过程由很多程序组成,我们先来看看LILO 安装
  时的各种不同程序:
  
  MAP 安装程序:这个程序把LILO 的文件放到合适的位置
  并记录这些信息(会在LILO 启动时用到),这个程序就是
  /sbin/lilo ,每次配置文件有改动或者有新内核时,需要重新运行一遍。
  
  /boot/*.*:其他LILO 启动时需要的文件存放在 /boot 目录下,map 文件是十分重要的,map 安装程序把新内核的位置记录到这个文件。
  
  引导加载程序:这个程序无需多言是最重要的部件了。它被
  BIOS 调入内存,然后调用内核或者其他操作系统的引导扇区。
  
  包含引导加载程序第一部分的引导扇区被调入内存,然后调用引导加载程序的第二部分,一般位于文件 /boot/boot.b,接下来就启动内核。
  
  如果从可引导软盘启动的话,BIOS 把软盘的第一个扇区调入内存,一般,这个扇区包含一段程序来启动对应的操作系统。和软盘一样,如果LILO 写入MBR ,那么,MBR 就被调入内存,执行对应的操作,给用户提示选择需要引导的操作系统。具体地说,MBR 的头 446 个字节由引导加载程序利用,剩余的64 字节是分区表信息。还剩下的两个字节就是分区激活标志“55 AA” 了。
  
  在软盘上备份 MBR 信息:
  
  bash# dd if=/dev/hda of=/dev/fd0 bs=512 count=1
  
  恢复:(万一的情况下)
  
  bash# dd if=/dev/fd0 of=/dev/hda bs=446 count=1
  
  删除 LILO:
  
  c:> fdisk /mbr
  
  恢复 LILO:
  
  重新安装 以后,就会把LILO 干掉。无论什么原因
  我们都应该知道怎样恢复LILO。
  
  最好手头有一张安装 CD ,这年头,干净并且确实好用的
  软盘太少了。所以不推荐你使用软盘。当然,如果你认为
  你的软盘质量可靠,那么可以从CD-ROM
  上建立应急启动盘:
  
  dd if=/cdrom/disks/rescue of=/dev/fd0
  
  在 DOS 下面,采用:
  
  rawrite image-name a:
  
  也可以在 上一个,按照说明制作一张启动磁盘。
  
  如果从 CD 启动的话,各个不同的Linux 版本有不同的方法进入应急状态。Red Hat 启动后有一个应急模式,SuSE 的话,需要先进入安装界面,然后按Ctrl+Alt+Fn 键找到shell 提示符,可以在这个提示符下来恢复。
  
  下面介绍恢复步骤:
  
  首先建立挂接点:
  mkdir mount
  
  然后把丢失的 Linux 挂接到这里:
  mount /dev/hda6 mount
  
  如果 /boot 位于另外的分区,
  需要把他挂接到 mount/boot 目录下,例如:
  mount /dev/hda1 mount/boot
  
  使用 chroot 命令,把 mount 作为根目录,cd /boot
  命令实际上进入的是 "mount/boot" 目录:
  
  chroot mount
  
  运行 /sbin/lilo ,这样就把 LILO 安装回了 MBR,重新启动就会看到 LILO 提示符回来了。
  
【责编:admin】

--------------------next---------------------

阅读(347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~