使用其他机器上的硬盘启动Centos5系统panic问题解决方法
来源:互联网 发布:动力节点java视频下载 编辑:程序博客网 时间:2024/05/18 18:14
将一块包含有RHEL5.6系统的硬盘换到另外一台pc时,发生下面panic情况
panic信息:
Unable to access resume device (/dev/sda2)
mount : could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init !
思路:
1.无法访问/dev/sda2,sda2是swap分区,将/etc/fstab中swap分区注释掉,尝试一下,发现没有作用。
2.猜测是不是没有驱动,无法使用sda硬盘:用可以启动该pc的硬盘启动,检查硬盘控制器驱动,
通过sysfs文件系统,发现sda对应的控制器该驱动时ata_piix.ko,检查另一块RHEL5.6的initrd文件解压方法
见下面,解压后发现它lib目录下的模块中没有ata_piix.ko这个驱动。判断原因可能就是因为这个。
3.将该驱动加入RHEL5.6的initrd文件中,从RHEL5.6系统的/lib/modules/`uname -r`/目录中搜索ata_piix.ko驱动,
将其加入initrd解压后的lib目录中,在initrd解压出的init文件中加入insmod 该模块的操作。使用压缩命令,生成
新的initrd文件,替换/boot下的旧文件。压缩命令见下面。
4.重启后发现又报了这样的错误:
insmod : error inserting '/lib/ata_piix.ko': -1 Unknown symbol in module
原因分析:插入模块失败,可能由于依赖性,检查RHEL5.6的/lib/modules/`uname -r`/目录总的modules.dep文件
发现ata_piix.ko依赖libata.ko和scsi_mod.ko,在initrd解压后的lib目录中检查时否有这两个驱动模块,在init文件
中将插入ata_piix.ko的命令放在插入libata.ko和scsi_mod.ko命令之后。
5.重启,成功开机!!
initrd解压方法:
方法1:
mkdir /tmp/initrd
cd /tmp/initrd
gzip -cd /boot/initrd-xxxxxxxxx.img | cpio -imd --quiet
方法2:
cd /tmp/initrd
gzip -cd /boot/initrd-xxxxxxxxx.img | cpio -imd --quiet
方法2:
zcat /boot/initrd-xxxxxxxxx.img | cpio -id
initrd压缩方法:
cd /tmp/initrd
find . | cpio -co | gzip -9 > /boot/initrd-xxxxxxxxx.img
解压缩ISO自带的initrd.img时遇到不知道initrd.img格式无法解压的问题,按照如下方法解决
initrd.img使用lzma高压缩比的工具压缩了!言归正转,开始
#yum 安装lzma软件,也可以在安装盘中找相关的4个包,devel包是不需要的,二种方法任选其一。
yum install xz-lzma-compat
xz-4.999.9-0.3.beta.20091007git.el6.i686.rpm
xz-devel-4.999.9-0.3.beta.20091007git.el6.i686.rpm
xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.i686.rpm
xz-libs-4.999.9-0.3.beta.20091007git.el6.i686.rpm
#修改文件名,不修改它还不认。郁闷
mv initrd.img initrd.lzma
#解压,解压出来是一个initrd文件
lzma -d initrd.lzma
#cpio解压得到所有的文件
cpio -ivmd < initrd
下面是模拟修改驱动,当然我不是修改CDROM驱动哈
cd ./modules/2.6.32-220.el6.i686/kernel/drivers/cdrom
#增加模块
gunzip cdrom.ko.gz
gzip cdrom.ko cdrom.ko.gz
显示模块CDROM的信息
modinfo cdrom.ko
#修改相应的CDROM模块相关文件(根据自己的需要增加相应文件的信息)
cd /root/wj/modules/2.6.32-220.el6.i686
ll modules.*
-rw-r--r-- 1 root root 221143 Dec 13 2011 modules.alias
-rw-r--r-- 1 root root 207574 Dec 13 2011 modules.alias.bin
-rw-r--r-- 1 root root 1376 Dec 7 2011 modules.block
-rw-r--r-- 1 root root 39594 Dec 13 2011 modules.dep
-rw-r--r-- 1 root root 61932 Dec 13 2011 modules.dep.bin
-rw-r--r-- 1 root root 68 Dec 7 2011 modules.drm
-rw-r--r-- 1 root root 29 Dec 7 2011 modules.modesetting
-rw-r--r-- 1 root root 1887 Dec 7 2011 modules.networking
-rw-r--r-- 1 root root 74502 Dec 7 2011 modules.order
-rw-r--r-- 1 root root 131724 Dec 13 2011 modules.symbols
-rw-r--r-- 1 root root 164303 Dec 13 2011 modules.symbols.bin
#打包
find . |cpio -o -H newc >initrd
lzma initrd initrd.lzma
mv initrd.lzma initrd.img
希望光盘上安装就把文件复制到ISO中重新刻录,
也可以选用PXE,直接覆盖安装就可以了!
剩下的就是测试了!
0 0
- 使用其他机器上的硬盘启动Centos5系统panic问题解决方法
- PC上linux开机显示kernel panic问题解决方法
- 创建空白的引导分区用于使用Grub4Dos启动硬盘上的所有系统
- XP系统,使用ISO映像,从硬盘上启动CDLinux
- windows编译的库无法在其他机器上使用
- Linux kernel panic问题解决方法
- Linux kernel panic问题解决方法
- Linux kernel panic问题解决方法
- Linux kernel panic问题解决方法
- RHEL5/CentOS5 上支持 Ext4的方法
- win7操作系统下,将硬盘模式更改成AHCI模式后机器启动蓝屏无法进入操作系统的问题解决
- Boost在linux和其他系统上的使用
- win7系统下硬盘安装CentOS5.5
- intent启动新activity / 使用其他类的方法
- CentOS5.5 NFS不能启动问题解决
- ubuntu、win7、centos5.3三系统的启动修复
- 在个人机器(XP系统)上安装Oracle后本地能访问,而其他机器不能访问的问题
- 使用Win PE修改其他硬盘中的系统注册表
- Spring MVC Thymeleaf
- 零基础unity3d游戏开发系列目录
- 约瑟夫环
- 查看证书 certmgr.msc
- BIEE用户使用代理账号身份访问Analytics页面
- 使用其他机器上的硬盘启动Centos5系统panic问题解决方法
- OSI七层参考模型每一层都有哪些协议
- android ImageView scaleType属性
- DOS系统功能调用表(INT 21H)
- ubuntu 启动背景图片替换方法
- ios 近距离传感器的使用
- Matlab与C++混合MEX编程
- 学生关灯问题
- android源码地址及下载介绍