简介
首先我们需要清楚Linux内核和Linux发行版本不是一个概念。
Linux内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。Linux发行版:它是一个可以高效使用Linux 内核的操作系统,即它涵盖了Linux内核,此外还包含一些GNU程序库和工具,命令行shell,图形界面和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。典型的有CentOS、Ubuntu、RedHat、SUSE等。
安装CentOS
首先从官网下载CentOS镜像下载,然后按照教程在虚拟机中安装CentOS。
对于CentOS 6.x,官方不再进行维护,需要修改yum软件源,以能够联网安装环境。一键更换yum源为CentOS的Vault源的操作如下:
1 | wget -O /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo |
内核编译
当使用了指定发行版本后,有时需要将内核版本升级到指定版本,这里有两种方法,第一种是使用elrepo
进行在线更新,操作简单,但是对于有些指定版本,在上面可能找不到;第二种方法是编译内核版本的源码,这种方法的操作比骄傲复杂,但是灵活性比较高,可以安装任意版本的内核,且可以自己对内核进行再开发。
使用elrepo
安装elrepo软件库的key
1
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
将软件库添加到源
1
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # centos-7
查看可用的软件源
1
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装内核
1
yum --enablerepo=elrepo-kernel install kernel-ml
从源码编译内核
从官方网站下载指定版本的内核,网址如下:https://www.kernel.org/,例如linux-4.14.1.tar.xz
安装开发工具包,包括内核源码编译所需要的一些环境:
1
yum groupinstall "Development Tools" -y
安装常用工具软件
1
yum install -y elfutils-libelf-devel bc openssl-devel ncurses-devel wget ntpdate vim net-tools
同步时间,时间错误可能导致编译失败
1
ntpdate -u times.aliyun.com
解压内核源码
1
tar xf linux-4.14.1.tar.xz -C /usr/src
进行刚刚解压的内核源码的目录
1
cd /usr/src/linux-4.14.1/
将之前的内核版本的配置文件,拷贝一份到当前目录
1
cp /boot/config-3.10.0-1127.el7.x86_64 .config
修改配置文件
1
sh -c 'yes "" | make oldconfig'
进行编译
1
2
3
4make -j2 bzImage
make -j2 modules
make -j2 modules_install
make install # may some error, ignore it查看编译是否成功
1
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
将内核设置为默认启动,并重新启动
1
2grub2-set-default 0 && init 6 # centos-7
sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf # centos-6重启成功后,检查内核是否安装成功
1
uname -r
常用命令
查看发行版本
1 | cat /etc/issue |
查看系统内核
1 | uname -r |