VMware环境下Linux内核编译过程详细解析
2007-11-09 13:42:33 来源:WEB开发网核心提示:终于可以在vmware中使用新编译的内核调试驱动了,虽然也比较经常在vmware里使用linux,VMware环境下Linux内核编译过程详细解析,但是还从没有在里面编译过内核,所以不知道居然还有这么多的道道,呵呵,linux上的这些事儿好像多是这样子,编译内核的过程就不说了,除了通用的编译过程
终于可以在vmware中使用新编译的内核调试驱动了,虽然也比较经常在vmware里使用linux,但是还从没有在里面编译过内核,所以不知道居然还有这么多的道道。编译内核的过程就不说了,除了通用的编译过程,各个发行版可能还会有自己特有的编译命令,比如我使用的debian。下面只列出我在编译过程中尝试过的步骤。
1、从kernel.org上下了2.6.18的sourcecode,编译安装后使用新的内核启动,看到下面让人讨厌的错误:
VFS:Cannot open root device "sda" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
这样的错误到也不是第一次亲密接触了,比如很久以前使用dd将系统copy到另一块硬盘上,并使用新的硬盘启动时也遇到过这样的错误,那是因为没有将硬盘接到与原来硬盘对应的IDE接口上,不过这绝对不是让它追随我在这里出现的原因,当然久经风浪脸皮已经跟brass一样厚的我是觉得不会在这里倒下的,于是没有多想(惭愧),随即使用大家都最常使用的重启大法,寄望于它刚才是一时的疏忽。但是在几十秒之后,它又赧然出现在我的眼前,无它,只好google了。
2、从google的结果来看,同道(一同着道)中人还真不少,五花八门的过程揭露了大致无二的解决方法。主要是内核的配置选项了,并且主要集中在
Device Drivers--->SCSI device support--->SCSI low-level drivers--->BusLogic SCSI support
主要是因为使用scsi时,vmware需要它,还有文件系统,我用的是ext3,因为看到有人说没有将它们直接编译进内核导致启动仍然不成功,给自己个懒的理由,也就不多尝试了,直接将它们built-in了,然后执行
make-kpkg –revision=1.0 kernel-image
编译,且使用dpkg安装后重启,让人沮丧的是,前面那几行可爱的错误又出现了。
3、再回头检查内核的配置选项,觉得相关的都已经选上了,按理说不应该会再找不到root文件系统了啊,要不试试initrd?虽说已经将上面的几个模块编进了内核,是不是还需要创建initrd那?权且试试吧,于是重新编译内核
make-kpkg –revision=1.0 kernel-image –initrd
再安装重启,居然甩开了那个粘人的panic,不过仍然还有点云里雾里的,呵呵,linux上的这些事儿好像多是这样子,抽空深入研究下initrd去。
1、从kernel.org上下了2.6.18的sourcecode,编译安装后使用新的内核启动,看到下面让人讨厌的错误:
VFS:Cannot open root device "sda" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
这样的错误到也不是第一次亲密接触了,比如很久以前使用dd将系统copy到另一块硬盘上,并使用新的硬盘启动时也遇到过这样的错误,那是因为没有将硬盘接到与原来硬盘对应的IDE接口上,不过这绝对不是让它追随我在这里出现的原因,当然久经风浪脸皮已经跟brass一样厚的我是觉得不会在这里倒下的,于是没有多想(惭愧),随即使用大家都最常使用的重启大法,寄望于它刚才是一时的疏忽。但是在几十秒之后,它又赧然出现在我的眼前,无它,只好google了。
2、从google的结果来看,同道(一同着道)中人还真不少,五花八门的过程揭露了大致无二的解决方法。主要是内核的配置选项了,并且主要集中在
Device Drivers--->SCSI device support--->SCSI low-level drivers--->BusLogic SCSI support
主要是因为使用scsi时,vmware需要它,还有文件系统,我用的是ext3,因为看到有人说没有将它们直接编译进内核导致启动仍然不成功,给自己个懒的理由,也就不多尝试了,直接将它们built-in了,然后执行
make-kpkg –revision=1.0 kernel-image
编译,且使用dpkg安装后重启,让人沮丧的是,前面那几行可爱的错误又出现了。
3、再回头检查内核的配置选项,觉得相关的都已经选上了,按理说不应该会再找不到root文件系统了啊,要不试试initrd?虽说已经将上面的几个模块编进了内核,是不是还需要创建initrd那?权且试试吧,于是重新编译内核
make-kpkg –revision=1.0 kernel-image –initrd
再安装重启,居然甩开了那个粘人的panic,不过仍然还有点云里雾里的,呵呵,linux上的这些事儿好像多是这样子,抽空深入研究下initrd去。
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
更多精彩
赞助商链接