由于最近想要在服务器上跑IOU,但是在部署VMware后发现不能正常启动,总是提示内核无法载入,什么C header files matching your running kernel were not found.之类的,网上google了各种方法,两天没有解决,后来觉得可能是内核版本太低或者真的是需要重新编译一下现有的内核,没办法,只能尝试升级内核。

目前的内核版本 uname -r 为2.6.32,在这里先mark一下官方内核下载的网址:

https://www.kernel.org/pub/linux/kernel/    (很强大好用)

我用的是3.2.14,看了别人的博客,有提到在内核2.0的大版本中,以第二个数字序号的奇偶来区分是稳定版还是开发版,偶数代表稳定版,奇数代表开发版,但在内核3.0中,就和这个没关了。

首先,wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.14.tar.bz2  随便选了个3.0的大版本,然后解压到/usr/src/kernel/目录下,tar -xvf linux-3.2.14.tar.gz -C /usr/src/kernels

进入解压的目录,yum install ncurses-devel   (升级ncurses,用于提供字符终端处理库,由于ncurses的其他依赖项我都有装,如gcc,make,sed,glibc等等,此处不再说明)

#make mrproper     用来消除原来编译的影响,对之前没编译过内核的可以跳过此步,但建议使用一下这条命令 。

# cp /boot/config-‘uname -r’ /usr/src/kernels/linux3.2.14/.config   #把原来的配置文件

# make menuconfig      #通过菜单配置内核,在此有几点需要注意的:

一定要勾选(输入y选中,M编译为模块)
a、General setup→[*] enable deprecated sysfs features to support old userspace tools
b、Processor type and features→HighMemory Support。
c、找到以下选中选项并选中:
networking support → networking options → network packet filtering framework(netfilter)
(1)Corenetfilter configuration
. 勾中"Netfilter connection tracking support" -m state相关模块是依赖它的,不选则没有。
. 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错
. 勾中"Netfilter Xtables support (required for ip_tables)"

(2)IP: Netfilter Configuration
. 将 "IPv4 connection tracking support (require for NAT)" 编译成模块。
. 勾中IP tables support (required for filtering/masq/NAT) 。
. 将 "Full NAT" 下的 "MASQUERADE target support" 和 "REDIRECT target support" 编译成模块

这里貌似是每个不同的版本进入菜单的画面以及选项有所不同,看了网上其他版本进入菜单的画面,发现和我这个3.2.14版本内核的画面完全不同。可能类似于不同型号的笔记本进入的BIOS有所差别吧。

然后,终于可以编译安装了:

# make clean          //清除下内核编译的目标文件
# make bzImage    // 生成内核文件
# make modules    // 编码模块   (以上三部分耗时较长)    也可以用make完全编译代替这三条命令
# make modules_install // 安装模块
# make install         // 安装

其中,在make install时可能会提示一些ERROR,有一些模块无法载入,记得有vsock,power什么之类的,网上有人说一般只要遇到某某模块没找到,就修改.config文件找到相应的CONFIG_XX_XX=y改为CONFIG_XX__=m,但是添加之后,然并卵,在此我先忽略了它们。

去修改grub.conf

#vim /etc/grub.conf

将(原来为1),默认情况下,新编译的内核的default值为0

#reboot

ok!!!! 完成!

在查看uname -r  可以看到内核版本变为3.2.14

我们也可以移除掉之前的内核:

yum remove kernel-2.6.32-642.1.1.el6.x86_64 (不移除也ok)

最后附上内核的主要模块组件:

. 进程管理(process management) 
. 定时器(timer)
. 中断管理(interrupt management)
. 内存管理(memory management)
. 模块管理(module management)
. 虚拟文件系统接口(VFS layer)
. 文件系统(file system)
. 设备驱动程序(device driver)
. 进程间通信(inter-process communication)
. 网络管理(network management
. 系统启动(system init)等操作系统功能的实现。

参考博客:http://blog.chinaunix.net/uid-26000296-id-4208526.html

http://blog.163.com/chengwei_1104/blog/static/5364527420126992015682/

CentOS6.5升级内核从2.6.32到3.2.14的更多相关文章

  1. CentOS6.5升级内核到3.10.28 --已验证

    本文适用于CentOS 6.4, CentOS 6.5,估计也适用于其他Linux发行版. 1. 准备工作 确认内核及版本信息 [root@hostname ~]# uname -r 2.6.32-2 ...

  2. Centos6.x升级内核方法支持Docker

    Centos6升级内核方法_百度经验https://jingyan.baidu.com/article/7e4409531bda252fc1e2ef4c.html

  3. centos6.5升级内核到3.0

    因为是使用centos6.5安装的docker,而docker需要内核3.0以上的支持,所以必须升级内核 1. 导入public key rpm --import https://www.elrepo ...

  4. 因kernel too old 而 centos6.8 升级内核

    因为docker运行centos 的时候,报错了,错误为kernel too old .我看了一下是因为os的内核不行了,需要升级下内核. 查看默认版本: uname -r 忘记截图了,内核大概是2. ...

  5. centos6.9 升级内核版本

    想在centos6.9上安装docket,不过因为内核版本是2.6的故而想升级到最新的内核版本 晚上有编译升级的比较麻烦,不过有助于理解内核升级,我使用的直接升级到最新版方法 1. 导入public ...

  6. 阿里云服务器centos6.x升级内核以能安装docker

    centos版本为6.9,因为需要安装docker,所以需要将内核升级 升级步骤: 先导入公钥: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elr ...

  7. CentOS6.X 升级内核至 3.10

    1.1 查看当前版本 [root@localhost ~]# uname -r -.el6.x86_64 1.2 导入public key [root@localhost ~]# rpm --impo ...

  8. CentOS 升级内核

    因为要安装go,尝试升级内核到 2.6.32.61,出现了一些问题,参考如下文档,多谢各位 http://liaozy.blog.51cto.com/921527/553921 http://www. ...

  9. centos6.5 内核 :2.6.32 升级内核

    问题:    CentOS 6.5 的内核一般都是2.6,在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到更高版本,本次教程升级版本为4.4.102 一.升级内核 1.查看内核版本 u ...

随机推荐

  1. 一、Ubuntu 简介

    Ubuntu 是一个Linux 系统 Apt-Get apt-get 命令是一个强大的命令行工具,用于同 Ubuntu 的 Advanced Packaging Tool (APT) 一起执行诸如安装 ...

  2. Codeforces 703D Mishka and Interesting sum(离线 + 树状数组)

    题目链接  Mishka and Interesting sum 题意  给定一个数列和$q$个询问,每次询问区间$[l, r]$中出现次数为偶数的所有数的异或和. 设区间$[l, r]$的异或和为$ ...

  3. 10.1综合强化刷题 Day1 morning

    位运算1(bit) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK拥有一个十进制的数N.它赋予了N一个新的意义:将N每一位都拆开来后再加起来就是N所拥有 ...

  4. poj1185 [NOI2001]炮兵阵地

    http://poj.org/problem?id=1185 三维装压dp,压缩上一行状态与本行状态,枚举上两行状态转移 第一维可以滚掉,实际复杂度只枚举符合情况的情况,每行状态不会超过60并非$2^ ...

  5. Delphi 异或校验方法

    //数据异或校验function BytesXor(buffer:array of byte):Integer;var i:integer;begin Result:=$0; for i:=Low(b ...

  6. Android开发初期之后怎么提升?怎么才能叫精通?方向在哪?

    hi大头鬼hi Android开发专家     先mark一下,好多人我发现始终停留在两三年的水平上没有突破. 另外还有一个误区就是越底层越牛逼 第三个就是,我认识的大部分所谓的做过rom开发的对fr ...

  7. 卷积 convolution

    这东西大学学过,然后我忘记了,后来就只记得这个名字了. https://zh.wikipedia.org/wiki/%E5%8D%B7%E7%A7%AF http://www.guokr.com/po ...

  8. Mogodb集群搭建

    1.上传解压软件包 cd /home/dinpay/ 解压:tar -zxvf  mongodb-linux-x86_64-rhel62-3.2.2.tgz 重命名:  mv  mongodb-lin ...

  9. 启动mongodb报错问题

    [root@zk-datanode-02 mongodb]# bin/mongod -f config/mongo.cnf &[1] 30549[root@zk-datanode-02 mon ...

  10. linux中du的用法

    du:Disk Usage的缩写,命令功能为显示目录(或文件)所占磁盘空间的大小. 语 法:du [-abcDhHklmsSx0] [-L][-X File][--block-size=SIZE][- ...