VMware 环境下 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
评论0
最新资源