linux内核升级

本文详细介绍了解决虚拟机磁盘空间不足问题的方法,并提供了在虚拟机上升级内核的具体步骤,包括创建快照、下载内核源码、配置编译参数及安装新内核等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

升级内核时主要遇到的问题有
1.虚拟机磁盘空间不够,装虚拟机时只给了8G空间,当编译内核产生了很多临时文件导致磁盘空间不足
虚拟机磁盘空间拓展http://www.extend-partition.com/resource/vmware-expand-disk.html
2.加载系统时volume group not found
General setup –>
[*] enable deprecated sysfs features to support old userspace tools
修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点
ps:我刚开始拿的是3.7.1的内核,编译是X86默认选项CONFIG_PERF_EVENTS部分代码编译不过去。实在解决不了,就换了个内核版本。
步骤如下:
1.首先启动虚拟机,创建一个当天的虚拟机快照,方便恢复。
2.到www.kernel.org上下一个稳定版本的内核 标志:stabel为稳定版本
2.将压缩包通过SMB放到虚拟机下。解压缩,当前目录 /jason/kernel/
3.将红帽子的/usr/src/kernel/2.6.18-53.e15-i686/ 的.config文件拷贝到解压缩的内核文件的根目录下(/jason/kernel/)
4.编译步骤
(1)make clean; 清除临时文件保留.config文件
make mrproper;清除临时文件,.config文件以及文件备份
make distclean;mrproper+编辑文件备份文件

(2)make menuconfig
(3)make bzImage 制作内核文件
如果仅仅为了能编译通过,编译时出错,看错的文件所在目录的Makefile找到对应的宏在.config文件中注释掉,有些宏可能有依赖关系,注释掉后还会变回来,那就只能改出错文件所在目录的Makefile,宏包着的所有内容全注释掉。有兴趣的同学可以研究看看为什么会出错。
(4)make modules 编译各个模块
(5)make modules_install 生成内核加载用模块文件
(6) make install (拷贝bzImage文件到/boot 修改bootloader 调用mkinitrd)或者 mkinitrd vmlinuz-版本号 /lib/modules/目录下对应模块文件的文件夹名
5.如果用的make install 就不需要修改grub配置,具体看系统用的什么bootloader有可能是LILO。修改grub配置,参照/etc/grub.conf文件存在的内容配置。
1、拷贝arch/对应处理器/boot/bzImage 到/boot/下,名字vmlinuz-版本号
2、拷贝编译根目录下initrd-版本号 到/boot/下
3 配置grub.conf
title My Linux(2.6.34.13)
root (hd0,0)
kernel /vmlinuz-2.6.34.13 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M
initrd /initrd-2.6.34.13
6.reboot 选中My Linux 成功进入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值