原来的开发服务器是一个单独的PC上安装的,P4 + 512M + 80G IDE ,安装了FC5,由于机器现在问题不断,又由于考虑到服务器的负载并不重,所以计划把服务器硬盘摘下来,挂在我的笔记本上的虚拟机上(P4 + 1.5G + 40G IDE 安装window xp home + VMware5.5)。
首先回家找海天买了个IDE硬盘盒,然后,建了一个虚拟机,内存分配了512M,硬盘设置为使用真实的硬盘,然后开始运行起到虚拟机,结果老是提示"no volume groups found",然后kernel panic.
先在网上搜索了大批的文档,都是不知所云
看来还得靠自己,首先怀疑是grub的问题,是不是参数不对,后来找来大批资料,发现这个和grub没有关系
后来又考虑到是不是LVM是不是依赖硬盘的类型呢?也就是说,是不是在硬盘上有/dev/hda1 => PV之类的绑定呢?如果绑定的话,原来在PC机上硬盘类型为hda ,现在挂在我的虚拟机上,变成了sda了;找了很多资料,没有提及绑定,晕了,都想放弃了
那么还是老老实实看代码吧(重装实在是太累了,很多工作要做),根据启动画面看来,内核应该是被grub找到了的,那么grub内核配置是没有问题的,看看"no volume groups found"这个错误是哪儿提示的吧?在网上找到了一篇文章说,initrd这个内存根系统的说明,觉得估计是这个里面的某个脚本打印出来的,如是解压initrd,观察了其中的init脚本,果然有lvm vgscan,这个命令,那么就是这个了,我就打开了画面的信息输出,看看为什么不能找到volume groups,根据在网上找到的一篇文章,这个lvm vgscan是依赖于底层的驱动的,原来在pc机上之所以可以找到volume groups,是因为IDE驱动是加载了的,所以lvm 能够通过搜索ide硬盘找到volume groups,那么在我的虚拟机上就不行,估计是没有加载scsi驱动的原因,于是我在initrd中的lib中加入了scsi相关ko模块,然后再修改initrd中的init脚本,加载了这些模块,生成新的img后,再重启
一切都好了,我又回到了好时光了。
----------------------------------------------------------------------------------------------
通过解决这个问题:
温习了以下知识
grub
fstab
lvm
内核启动过程
内核编译和模块
内存根系统的制作
另外之所以用虚拟机来做服务:
这个真正的移动方案,只要带上硬盘,服务器也就带上了,可以挂在不同人的虚拟机上,也可以再挂到单独的PC机上。
--
胡志文
QQ :54219308
Mobile :13510180486
Web :
http://www.tigerinfo.cn