关于ubuntu内核编译的问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:29:13
想看一下ubuntu的内核源代码 但是 我装的ubuntu8.10里的内核没经过编译 先问一下 这个系统自带的内核 可不可以编译 还是必须下载内核源代码 然后编译
然后我就从网上下载了linux的内核源代码 2.6.27版本号
然后按照网上的教程(那个被很多次引用的教程)
用了差不多20分钟就OK了(貌似是我的机子比较快) 不知道别的怎么用了那么长时间 也许我的编译过程出了什么问题?
然后 在/boot/grub/menu.lst中也有了新内核的选项
然后重新启动 进入新内核的系统 但是 出错了 !!!!!
下面是出错信息:

Booting "ubuntu 8.10,kernal 2.6.27-custom"
Filesystem type is ntfs.partition type 0x07
The current working directory(i.e.,the relative path,is /ubuntu/disks.
[linux-bzimage,setup=0x2c00,size=0x1008b0]
[linux-initrd@0x7f999000,0x536400 bytes]
Loading ,please wait...
usplash:setting mode 1152X864 failed
usplash:using mode 1024x768
Gave up waiting for root device.common problems:
-Boot args(cat /proc/cmdline)
-check rootdelay=(did the system wait long enough?)
-check root=(did the system wait for the right device?)
-missing modules(cat /proc/modules; ls /dev)
ALERT! /dev/disk/by -uuid/1684

解决办法 修改 menu.lst 将 root=/UUIDxxxxxxx 这个改为 root=/dev/sdax
另外 从Filesystem type is ntfs.partition type 0x07 这一行我大概可看出,你是wubi安装的, 这种情况 我建议你重新编译内核并生成initrd, 因为内核不支持uuid的,initrd才支持,如果把filesystem编译进内核了,启动不用initrd.img的话,就只能用root=/dev/sdax的参数作为内核引导参数…

所以关键在于 一定要打开initrd支持并生成initrd

至于具体在那里,我这边环境所限无法告知, 麻烦你自己在make menuconfig里面仔细看看或者google一下

/dev/sdxx 是你的硬盘的/的设备名称 可以用正常启动的内核引导后 输入sudo df -h或者 sudo fdisk -l

目前的机器来讲 编译20分钟很正常, 我的内核优化的很小 大概十分钟左右就编译完了 .

另外 内核源码解开后会占用接近200M的空间, 而gcc编译内核和大型软件时候产生的临时文件占用好几百M乃至上G是很常见的的, 可以进入源代码文件夹运行 make clean && make mrproper 来清理一下