一、关于Linux内核一些小知识
Linux内核是一种开源电脑操作系统内核,类似于Windows一样,它是一个C语言写成的,符合POSIX标准的类Unix操作系统,它最早是由芬兰的Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。
在CentOS操作系统下,查看自己的内核相关信息的命令行如下:
查询内核版本:uname -r,即可显示自己的内核版本,一般默认为3.10.0-1127.13.1.el7.x86_64;
当想查询所有信息,比如时区等:uname -a,即可显示内核版本,架构类型(SMP:对称多处理器),时间,时区,处理器架构(X86_64,IA等);
查看centos版本:cat /etc/redhat-release,即可显示自己的CentOS型号;
查看操作系统版本信息:cat /proc/version,功能类似于uname -a;
查看CPU信息:cat /proc/cpuinfo,通过该方式即可查询CPU相关信息,比如CPU核数,CPU主频等信息;
查询CPU运行位数模式:getconf LONG_BIT,通过该方式即可查询CPU工作在32位还是64位模式下,32位不代表CPU不支持64位;
查询服务器名称:hostname,该方式可查询hosts定义的服务器名称;
查询磁盘信息(块):lsblk, 列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息,如图所示:
centos 显示两个内核 查看centos内核_经验分享
查看磁盘实体情况:fdisk -l,可以显示出磁盘的分区情况;
查看每个分区使用情况:df -h,可以看每个分区的大小,使用量和可用量;
查看CPU使用情况:free -h,可以查看CPU的信息,比如CPU容量,CPU使用量,CPU空闲空间,CPU的cache缓存容量;
二、升级内核的准备
①首先需要去查询自己目前的内核版本,然后将重要数据进行备份,因为升级内核万一失败了,还有备份数据可以使用,不然就完了;
②更新仓库:通过yum -y update,将仓库进行更新;
③启用ELRepo仓库:该仓库是基于社区的用于企业级Linux仓库,提供对多个操作系统的支持,方式为:
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
④确定升级内核的方式:自己找内核包,或者应用yum进行系统版本的更新;其中用yum更新的方式可以选择的内核版本较少,一般为最新的版本或者稳定版等,自己找内核包可供的选择较多,以下为一些内核下载链接:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/?h=v5.1-rc7
http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel //开发包下载
http://rpmfind.net/linux/rpm2html/search.php?query=linux
http://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-headers //header包
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
http://hkg.mirror.rackspace.com/elrepo/archive/kernel/el7/x86_64/RPMS/
三、升级内核
1、yum 升级内核:
①查看可用的系统内核包:首先查看自己操作系统可用的系统内核包,命令行为:
yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
一般会有一到两个内核可供选择:比如:4.4.118-1.el7.elrepo(kernel-lt)和4.15.6-1.el7.elrepo(kernel-ml)
②安装最新的内核:如果有多个内核版本可供选择,需要选择对应的内核版本进行安装,命令行为:
yum –enablerepo=elrepo-kernel install kernel-ml
–enablerepo选项可用来选择CentOS系统上查询出来的指定仓库,默认为elrepo,可替换为需要的版本,比如①内的4.4.118-1.el7.elrepo则在install后跟上kernel-lt,4.15.6-1.el7.elrepo则跟上kernel-ml。
2、自己下载的内核包进行安装
(1)如果是下载的RPM包进行安装,则直接通过命令行安装:
rpm -ivh your_kernel_name.rpm
-i:安装一个RPM包;-v:在安装过程中显示正在安装的文件信息;-h:在安装过程中显示正在安装的文件信息及安装进度;
注意:RPM包一般不会包含devel开发包和header包,所以需要在第二部下载对应的包进行安装。
(2)如果下载安装包为tar类型压缩包,则通过以下方式安装:
①#tar -zxvf your_kernel_name.tar.gz 或#tar -xvf your_kernel_name.tar
②然后进入解压好的内核包内:#cd /path/your_kernel
③#make menuconfig //它是一种基于文本选单的配置界面,配置比较直观简单。通过该方式可以进行Linux内核配置,如不需要对内核进行有关配置,则可以跳过或者退出;
④#make //通过make去编译内核,为安装做准备;
⑤#make modules_install //因为一般硬件有很多的驱动,如果在编译内核的时候就将驱动编译到内核,就会让内核变得很大,时间也会更长,所以一般只有部分通用的驱动会编译进去,而其他的则作为模块,通过make modules和make modules_install完成,从而将编译好的内核模块安装到/lib/modules下,这样以后每次系统启动的时候就可以直接从dep下加载模块,而不需要每次手动加载需要的模块;
⑥#make install //在内核和模块都编译完成之后,就需要进行最后的内核安装了。
注意:一般装了系统是没有GCC等编译器的,所以需要安装它们才能进行make等操作,比如gcc,flex,openssl,j4等多个必要软件。
四、设置内核启动顺序
1、查看内核上所有可用的内核
sudo awk -F\’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg
centos 显示两个内核 查看centos内核_centos_02
即可看见系统已装内核版本,比如:上图的3.10.0-1127.13.1.el7.x86_64和4.19.37等
2、设置grub2
通过设置该选项,从而改变我们的内核启动顺序,有两种方案:
①通过命令行改变:
grub2-set-default 1 //其中1是第一步等到的4.19.37内核的内核顺序,即可设置好默认从4.19.37内核启动
②通过改配置文件进行改变:
vim /etc/default/grub //通过编辑grub文件也可以改变我们的内核默认启动顺序;内容如下图:
centos 显示两个内核 查看centos内核_运维_03
设置 GRUB_DEFAULT=1,即可以4.19.37为默认内核进行启动,顺序也是从第一步得到的内核顺序。
3、启动和验证
在通过命令行或者更改配置文件的方式改变了启动的默认内核时,需要重新生成boot启动加载文件grub.cfg,命令行如下:
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
通过该方式去重新生成开机引导文件grub.cfg,并重启,之后启动则可以以更改后的默认内核进行启动;
注意:有时候第一次更改会失败,因为在重启之后,内核的默认启动顺序改变了,所以需要重新做一下更改和配置。
验证方式为:#uname -r //变为你想要的启动内核及已经变更成功,否则按如上注意处理。
五、删除旧版本内核(非必选项)
当我们的操作系统装了多个内核的时候,是很占用咱们的空间的,这个时候就有必要去掉一些不会用到的旧版本内核了,我们一般有两种方式可以去掉旧的内核版本。
1、查看旧的内核版本,可以通过如下方法:
rpm -qa | grep kernel
centos 显示两个内核 查看centos内核_服务器_04
从图中我们可以看到存在两个不同的内核版本,以及它们对应的一些devel开发板和header包等。
2、删除旧版本的内核RPM包:方式1:
yum remove your_kernel_name your_kernel_tools your_kernel_devel your_kernel_headers
通过以上方法即可很方便的将我们不需要的旧版本内核轻松删掉。
3、通过其他工具删除内核:方式2:
使用工具yum-utils,该工具既可以自动的,也可以手动的删除我们不需要的旧版本内核包,如果我们安装的内核不多于3个,则yum-utils工具不会主动删除内核包,但是超过三个时,就会主动的将旧内核版本进行删除;如果想主动删除内核版本则通过以下方式:
①安装yum-utils:# yum install -y yum-utils //系统默认不会有该工具,所以需要自己进行安装
②删除旧版本内核:#package-cleanup –oldkernels –count=X //其中X为需要保留的旧版本内核数量,其他的则会自动删除。
以上即为本人的相关经验!!!!!!!!
评论前必须登录!
注册