Ubuntu下升级内核:(纯属折腾篇)
----------------------------------------------------------------------------
1. 下载比较新的内核到/usr/src/下面
2. 解压,生成/usr/src/linux-2.6.39
#tar jxvf linux-2.6.39.tar.bz2
3. 进入文件夹/usr/src/linux-2.6.39,执行命令
$ make mrproper
4. 配置,可以根据菜单提示,选择编译配置选项,并保存配置文件为.config
$ make menuconfig
5. 确定依赖性
$ make dep
6. 清除中间文件
$ make clean
7. 编译新内核
$ make bzImage
8. 生成Modules
$ make modules
9. 安装modules
$ make modules_install
10. 建立要载入的ramdisk映像文件
mkinitramfs -o /boot/initrd.img-2.6.39 2.6.39
如果你的linux不是ubuntu,而是其他的发行版本,那么使用的命令可能不是mkinitramfs,而是mkinitrd,但功能和用法类似。
出现错误信息:
意思是:/boot分区已经没有空间了。
查看/boot 分区具体文件的大小:
book@book-desktop:/usr/src/linux-2.6.39$ sudo du -sh /boot/
86M /boot/
book@book-desktop:/usr/src/linux-2.6.39$ sudo du -sh /boot/*
615K /boot/abi-2.6.31-14-generic
109K /boot/config-2.6.31-14-generic
790K /boot/grub
7.3M /boot/initrd.img-2.6.31-14-generic
72M /boot/initrd.img-2.6.39 这个文件太大了,root分区容不下了。所以报错
12K /boot/lost+found
126K /boot/memtest86+.bin
1.6M /boot/System.map-2.6.31-14-generic
2.0K /boot/vmcoreinfo-2.6.31-14-generic
3.8M /boot/vmlinuz-2.6.31-14-generic
55K /boot/vmlinuz-2.6.39
先mark在这里吧,网上也有很多方法。具体没有去试,可以重新分区,将/root分区加大。
11. 安装内核
$ make install
此时系统会把linux内核的镜像文件还有System.map考入到/boot下,然后会自动生成引导菜单。
12. 配置grub引导程序
首先用chmod更改该文件的只读属性。然后参照里面的已有内容添加一个新启动项。
menuentry 'Ubuntu,Linux 2.6.39' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root ee7c3a4d-5305-46b1-807e-fa9f39a5d13e
linux /boot/vmlinuz-2.6.39 root=UUID=ee7c3a4d-5305-46b1-807e-fa9f39a5d13e ro quiet splash $vt_handoff
initrd /boot/initrd.img-2.6.39 (名字要正确)
}
menuentry 'Ubuntu,Linux 2.6.39 (恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root ee7c3a4d-5305-46b1-807e-fa9f39a5d13e
echo '载入 Linux 2.6.39 ...'
linux /boot/vmlinuz-2.6.39 root=UUID=ee7c3a4d-5305-46b1-807e-fa9f39a5d13e ro recovery nomodeset
echo '载入初始化内存盘...'
initrd /boot/initrd.img-2.6.39
}
阅读(1686) | 评论(0) | 转发(0) |