论坛: UNIX系统 标题: 备份和修复Linux LILO指南 复制本贴地址    
作者: sbbfwt [sbbfwt]    论坛用户   登录


作者:Jephe Wu(吴阿亭) 



一:本文目的 
本文旨在如何给工作的系统做LILO和内核的软盘备份,因为大多数Linux服务器使用LILO 
进行引导,同时也给出紧急修复办法。 

二:测试环境 
Redhat Linux ,IDE和SCSI启动硬盘。 

三:备份措施 

当我们设置完新的服务器后,除了常规的服务器重要配置文件和系统备份之外,最好也要 
做LILO和内核的软盘备份,万一由于某种原因导致LILO不能引导系统。 

1. 第一种方法 

适用范围: 自己编译的内核,所有的支持模块已经编译进内核,如果有SCSI硬盘,必须 
编译进SCSI支持进内 核,也就是说内核已经包含了所有引导需要的东西 

步骤: 

格式化一张空白软盘,不要生成文件系统,直接写内核到软盘,然后改变内核文件中的根 
文件系统分区定义 

fdformat /dev/fd0h1440 
dd if=/boot/vmlinuz of=/dev/fd0 (用你自己的内核文件名替代vmlinuz) 

rdev /dev/fd0 /dev/sda3 (用你的根分区设备名称替代/dev/sda3) 

rdev -R /dev/fd0 1 (安装根文件系统成只读模式) 

作用: 这样当系统LILO失败时,可用该软盘引导系统且安装硬盘根文件系统。 

2. 第二种方法 

适用范围: 内核需要一系列模块帮助引导,如SCSI硬盘驱动程序,则需要用下面的方法 
生成带LILO的引导软盘 

步骤: 放一张新的软盘,不要格式化和分区,直接用mkbootdisk创建引导盘 

mkbootdisk --device /dev/fd0 2.2.12-20 (用你的内核版本代替2.2.12-20, 
可用uname -a查看) 

3. 第三种方法 

适用范围: mkbootdisk命令不可用,或者无论什么理由你想手动创建一张带LILO的引导 
软盘 

步骤: 
fdformat /dev/fd0h1440 (低级格式化软盘) 
/sbin/mkfs.minix /dev/fd0 1440 (在软盘上创建minix文件系统) 
/bin/mount /dev/fd0 /mnt/floppy (安装软盘到/mnt/floppy目录) 

cd /mnt/floppy 
mkdir boot etc dev 

cp -a /boot/vmlinuz /boot/initrd.img /boot/boot.b boot/ 

注:用你的内核文件名代替vmlinuz 
用你的initrd映像文件名代替initrd.img 

cp -a /dev/fd0 /dev/null /dev/zero /dev/hd[abcd]* /dev/sd[abcd]* dev/ 

注: 如果你没有SCSI设备,可不用拷贝/dev/sd[abcd]* 

创建/mnt/floppy/etc/lilo.conf如下 

boot=/dev/fd0 
read-only 
prompt 
image = /boot/vmlinuz 
initrd=/boot/initrd.img 
root = /dev/sda1 # 把/dev/sda1换成你的根文件系统设备名称 
label = linux 

最后运行 lilo -r /mnt/floppy 在软盘上安装LILO (将自动生成/boot/map文件包括内 
核的物理映像位置) 

4. 剖析initrd.img 

如果你是用SCSI硬盘启动,内核必须能装入SCSI驱动程序才能转入你的硬盘根文件系统引 
导系统。 
如果你的内核没有编译进SCSI驱动程序,则需要用mkinitrd创建RAM驱动映像 

想知道你的initrd.img中包含了哪些驱动程序吗? 

cat initrd.img | gunzip > /tmp/myinitrdfs 
mkdir /mnt/tmp 
mount -o loop -t ext2 /tmp/myinitrdfs /mnt/tmp 

然后查看/mnt/tmp中的文件linuxrc中的内容即可知道启动时会装入哪些驱动程序 

你也可以更改其中的内容,假设我们想加另一种SCSI驱动aic7xxx.o进入你的initrd.img 


cd /mnt/tmp 
vi linuxrc 加上一行 insmod /lib/aic7xxx.o 
cp /lib/modules/`uname -r`/scsi/aic7xxx.o lib/ 

cd / 

umount /mnt/tmp 
dd if=/tmp/myinitrdfs | gzip > /boot/initrd2.img 

至此,新的initrd文件initrd2.img就包含了aic7xxx的驱动程序了。 

四: 紧急修复 


地主 发表时间: 05/13 11:20

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号