修改.img文件(ram disk映像)让Esx Server支持我的SCSI硬盘

公司有一台DELL PowerEdge SC1425,配置如下
处理器: Intel Xeon 主频(MHz) 2800
内存: ECC DDR2 SDRAM 1G
SCSI控制器: Ultra320 SCSI
硬盘: 74GB*2
网卡: 1000M网卡*2
昨天用它安装了最新的VMware ESX Server 3.0.2 52542,遇到的些许挫折一一解决,下面是过程记录。在BIOS中将两块硬盘做成了RAID0(没有使用RAID卡),开机从光盘启动后按照提示进行安装,突然出现Warning,No hard drive have been found …最初以为是做了RAID的缘故,重启,打散RAID0,再安装时问题依旧,还好vmware的waring下还有一个…Would you like to select drivers now,选择了yes将驱动列表中的驱动一一试过,当选择Adeptec Aic79xx SCSI…(aic79xx)时认出了光盘,欣喜万分后再次重启,重做RAID0,再次安装时加载驱动aic79xx,结果认出的还是两块单硬盘,不认RAID,只好再次重启打散RAID重装,还好加载驱动aic79xx后的安装很顺利。
重启后见到了久违的GRUB界面,不幸系统无法正常启动,停留在一个buzybox的shell下,初步判断还是SCSI硬盘驱动问题,又分别尝试了debug mode和troubleshooting mode启动,troubleshooting mode可以正常识别硬盘顺利启动,遂决定修改启动是用的内存映像文件(.img文件)手动添加SCSI硬盘驱动,过程如下:
[root@vmware boot]# ls -l /boot
-rw-r–r– 1 root root 5732715 Sep 7 12:50 initrd-2.4.21-47.0.1.ELvmnix.img(这个就是我们要修改的文件)
-rw-r–r– 1 root root 217408 Sep 7 11:29 initrd-2.4.21-47.0.1.ELvmnix.img-sc
将要用到的文件拷贝到/tmp目录下
[root@vmware boot]# cp /boot/initrd-2.4.21-47.0.1.ELvmnix.img /tmp
[root@vmware boot]# cp /boot/initrd-2.4.21-47.0.1.ELvmnix.img-sc /tmp
[root@vmware boot]# cd /tmp
用file命令查看一下文件类型,可以看出两个文件都是gzip压缩文件
[root@vmware tmp]# file initrd-2.4.21-47.0.1.ELvmnix.img
initrd-2.4.21-47.0.1.ELvmnix.img: gzip compressed data, from Unix, max compression
[root@vmware tmp]# file initrd-2.4.21-47.0.1.ELvmnix.img-sc
initrd-2.4.21-47.0.1.ELvmnix.img-sc: gzip compressed data, from Unix, max compression
解压缩
[root@vmware tmp]# gzip -dc initrd-2.4.21-47.0.1.ELvmnix.img >initrd.img
[root@vmware tmp]# gzip -dc initrd-2.4.21-47.0.1.ELvmnix.img-sc >initrd-sc.img
[root@vmware tmp]# file initrd.img
initrd.img: Linux rev 1.0 ext2 filesystem data
[root@vmware tmp]# file initrd-sc.img
initrd-sc.img: Linux rev 1.0 ext2 filesystem data
创建用来临时挂载.img的目录
[root@vmware tmp]# mkdir img imgsc
挂载.img文件到临时目录,默认的挂载就有rw选项,可读写挂载。
[root@vmware tmp]# mount -o loop initrd.img img
[root@vmware tmp]# mount -o loop initrd-sc.img imgsc/
将troubleshooting mode中的模块拷贝到正常模式启动用的映像中
[root@vmware lib]# cd /tmp/img/lib
[root@vmware lib]# cp ../../imgsc/lib/* .
[root@vmware lib]# cd ..
进入img目录,修改启动脚本linuxrc
[root@vmware img]# vi linuxrc
将linuxrc的内容改成:
#!/bin/ash
echo “Mounting /proc filesystem”
mount -t proc /proc /proc
echo “Loading aic79xx.o module”
insmod /lib/aic79xx.o
echo “Loading adma100.o module”
insmod /lib/adma100.o
echo “Loading pdc202xx_old.o mod

zhhk  发表于: 2009-07-16

我要回答

电子邮件地址不会被公开。 必填项已用*标注

敬请读者进行回答,本站保留删除与本问题无关和不雅内容的权力。

相关推荐