先说明一下,我是在安装完debian8.3,自带内核3.6的基础上自编译升级内核的。
以前升级自编译内核是相当烦琐的事情,不仅耗时费力,而且容易出错不成功。
现在随着Linux版本的提高,在处理自编译内核上,也相应简单简便。
开始吧。
1、下载当前最新稳定版
#wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.1.tar.xz
2、解包文件至当前路径,(tar可以直接解压xz文件,如果不行,需要在xz官方http://tukaani.org/xz/下载,具体方法不在这赘述)
#tar xvJf ***.tar.xz
3、进入目录,准备编译前工作(网上资料说必须放至在 /usr/src 这个目录中,实测放哪都行。要是条件允许就按官方的说法放在/usr/src吧,我是因为系统分区只有5G,不够地方给编译,所以放在其他区的目录下进行)
4、进入目录后先做一次清除命令,预防有残余编译文件留下。make mrproper && make clean
5、形成编译需要的配置表,文件名为 .config,可以用三种方法形成这个文件
a、用当前系统的配置参数:输入#cp /boot/config-,然后按下Tab键,系统会自动填上该目录下符合条件的文件名,然后继续输入 .config,目的是使用在boot目录下的原配置文件。#cp /boot/config-<tab> .config
b、用 #make defconfig命令获取当前系统参数
c、#make localmodconfig,问答式配置过程,想细心配置的,可以逐个逐条去看。实在不想看的,一路按着回车按默认设置就可以了。
d、#make oldconfig,建议用这种方式,通过命令界面配置内核,会自动载入既有的.config配置文件,并且只有在遇到先前没有设定过的选项时,才会要求你手动设定。
6、.config参数配置已经生成,如果感兴趣或者需要微调的,用 make menuconfig 进入一个半图形界面,很清晰看到即将编译的配置内容。(第一次编译出来的结果,iptables默认不支持nat,而且竟然不支持多虚拟IP,所以才进来微调的)
7、OK,到这里为止,可以开始正式了,就一个命令
# make
编译过程有快有慢,我用的是VPS的Server架构,仅需要很基础的东西,所以编译内容不多,用时9Min。
8、编译安装模块,这个过程很快。
#make modules && make modules_install
9、安装新内核并自动配置启动文件
#make install
(是的,你没看错,之前确实需要自动动手去配置启动文件,现在就make install就可以了。也许我太落后,再上一次编译内核是2.x升级至3.x时候了。)
我记得之前2.x版本的时候,需要mkinitramfs、update-initramfs等等操作下才能正确启动到自编译内核。
#reboot。到此就结束了,再次说明我是在Debian8.3自带内核3.6的基础上升级自编译至内核4.4.1的,按此方法我是成功了升级三台的VPS,包括Linode的。这只代表我能看懂,给我自己看的,要是有人看了之后有什么后果,什么数据不见了,什么LP跟人跑了,我可不管也管不着。
这个是我第一个成功编译至内核4.4.1的VPS,时间戳为:2016/02/14 23:11:34。gcc也随之升级至4.9.2-10。
删除旧内核的方法
#dpkg –list ‘linux-image*’
然后在结果中找出你要删除的内核就可以了,例如这样
#apt-get remove linux-image-3.2.0*
#apt-get autoremove
CentOS
# rpm -qa | grep kernel