本文旨在如何给工作的系统做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中的内容即可知道启动时会装入哪些驱动程序。你
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 指南 修复 备份 系统 文件 内核 软盘 SCSI 引导 LILO |
注册
个人空间
