因为手动修改或软件安装,导致现有LILO开机档案毁损,以最短的时间内,恢复原有Linux系统功能的手段。
LILO的安装模式
安装LILO的模式包括MBR开机扇区与根目录扇区两部份,看一下范例:
{/etc/lilo.conf}
boot=/dev/hda
map=/boot/map
vga=normal
default=linux
keytable=/boot/us.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label=linux
root=/dev/hdb6
initrd=/boot/initrd.img
append="quiet devfs=mount"
vga=788
read-only
other=/dev/hda1
label=windows
table=/dev/hda
从以上的组态中,可以知道boot menu里边有两个开机选项,第一个是linux,安装在第二颗硬盘的hdb6扇区上,第二个开机选项是windows,开机扇区配置在hda1上。
当LILO无法正常开机,最常见到的状况可能是灌软件覆盖原有MBR位置,像是win98就会干这一档事,此时您需要做的工作只是恢复原有LILO机能。
本说明文章不包括扇区与系统执行档案毁损的复原,扇区毁损考验您系统备份的能力!
开机片准备
用磁盘片开机也可以,但是有一点古老,请您用任何可以开机安装Linux的光盘片开机(MDK or RH…),于boot选项输入:
linux rescue
进入救援模式!等待系统出现shell命令列模式。
LILO恢复
关于lilo.conf组态,相关目录/boot与/etc不可缺失,先移开开机影像文件的原有路径,别挡路!
# mv /etc /etc_
# mv /boot /boot_
接下来挂载根目录上的路径至/mnt上:
# mount /dev/hdb6 /mnt/disk
进入/mnt/disk里边,可以看见boot与etc两个目录在里边,这时候以软式链接路径挂在影像文件的系统里边!
# ln ?s /mnt/disk/etc /etc
# ln ?s /mnt/disk/boot /boot
进入原/sbin路径,进行还魂:
# cd /mnt/disk/sbin
# ./lilo ?v ?v ?v
如同正常开机情形下,修改lilo.conf的更新动作,此时画面会出现正常的lilo更新讯息,表示lilo已经安装在第一行boot的选项中!
只是因为windows系统安装覆盖原有MBR,以上的恢复动作应可完成救援动作!
由spfdisk拿下bootmenu
上面的lilo.conf叙述中,开机位置由MBR的lilo控制,或许您想要利用spfdisk等多重开机控制程序替代,此时将lilo.conf的第一行boot=/dev/hda修改开机位置至/dev/hdb6,接着一样执行:
# lilo ?v ?v -v
确定lilo已经将开机功能移至/dev/hdb6上,接着开机进入windows的dos模式,先用fdisk革除MBR的lilo:
C:\ fdisk /mbr
接着使用spfdisk建立于/hdb6的linux开机选项就可以了,也别忘了在/hda1上的microsoft,预设在linux上吧!