免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 899 | 回复: 0
打印 上一主题 下一主题

linux 内核升级失败处理方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-28 15:53 |只看该作者 |倒序浏览


为了解决某处linux kernel升级失败而采取的快速方法,不需要无数次的编译测试
主要思想为,根据正常启动的intrd文件制作新kernle的intrd文件,来保证系统正常引导
copy升级后的initrd-2.4.20-28.7smp.img文件,解压mount 后和正常启动的 initrd-2.4.18-3.img 文件内容进行比较,发现了问题。
1.查看正常情况下的磁盘驱动情况
  grep scsi_mod /proc/modules | tr '[]' "  "  | cut -c33-
2.对initrd文件做解压成image文件,然后mount后进行对比
     RD=/boot/initrd-2.4.18-3smp.img
     cp ${RD} ${RD}.Original
     gunzip  /tmp/initrd.img
     mkdir /tmp/initrd.mnt
     mount -o loop /tmp/initrd.img /tmp/initrd.mnt
同样操作对升级后的initrd文件,mont到另外一个位置,然后对比文件核心驱动模块加载文件linuxrc发现有一下不同



---
> echo "Loading aacraid module"
> insmod /lib/aacraid.o

7.3 kernel的升级(土法秘制高汤。谨慎使用)分2种情况
1.raid的机器
A.直接从以前正常的机器copy /boot 下面需要升级的kernel文件,initrd等文件 /lib/modules//lib/modules/2.4.20-28.7
B.修改lilo 或者grub即可
2.没有raid的机器,先按照有raid的机器做好上面AB 两步然后
A.   解开升级后的initrd驱动文件
     RD=/boot/ /boot/initrd-2.4.20-28.7smp.img
     cp ${RD} ${RD}.Original
     gunzip  /tmp/initrd.img
     mkdir /tmp/initrd.mnt
     mount -o loop /tmp/initrd.img /tmp/initrd.mnt
B.修改/tmp/initrd.mnt/linuxrc 文件中的
     echo "Loading aacraid module"
     insmod /lib/aacraid.o
     2行为
     echo "Loading aic7xxx module"
     insmod /lib/aic7xxx.o
C.copy /lib/modules/2.4.20-28.7smp/kernel/drivers/scsi/aic7xxx/aic7xxx.o 文件到 /tmp/initrd.mnt/lib/
D.对修改好的initrd文件打包,替换/boot下有问题的initrd img文件
      Sync
      Umount /mnt/initrd.img
      Cd /tmp ; Gzip   initrd-2.4.20-28.7smp.img
      Cp initrd-2.4.20-28.7smp.img /boot/
至此完成自制的驱动的修改,由于 /lib/modules/ 下面的驱动文件非常丰富,这样就比较省事的替换了驱动,驱动和kernel版本要严格一直。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/47198/showart_369719.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP