linux 内核删除(如何查看linux内核版本)
其实linux 内核删除的问题并不复杂,但是又很多的朋友都不太了解如何查看linux内核版本,因此呢,今天小编就来为大家分享linux 内核删除的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
Linux清除旧内核让系统保持最新状态linux删除旧的内核
Linux操作系统在市场上占有的份额较大,它的免费和开源的特性比起其它类型的操作系统使用者更多,其服务器也大多使用在服务器和网络设备之中,因此偶尔需要更新Linux内核,比如修复漏洞,增加新功能,这时候我们需要清除旧内核使系统始终保持最新状态。
Linux内核清除有两种方式,一种是手动清除,另一种是自动清除。若手动清除,那需要使用Linux命令行进行。首先,查询本地安装的内核:
`$ rpm-q kernel`
查看的结果显示所有本地安装的内核以及它们的版本号,然后手动选择你希望删除的内核,例如:kernel:2.6.32-695,再使用以下命令卸载:
`$ rpm-e kernel-2.6.32-695`
这种方式清除可以更轻松地把旧内核删除,而不影响新内核的正常使用。
若使用自动清除,并支持英特尔硬件,可以用yum(全称为 Yellowdog Updater, Modified,一个性能优秀的rpm软件包管理工具)来清除不需要的内核,只需:
`$ sudo yum remove‘kernel-devel-uname-r== 2.6.31-607’ `
以上yum命令可以自动的搜索和删除指定型号内核,不管是当前使用的还是其它未使用的。旧内核清除完毕后,可以再次使用如上rpm命令查看是否还存在未使用的内核版本,如果还存在,就可以重复上述操作将其一一删除。
另外,如果需要更新内核,可以先查看当前最新的内核版本:
`$ yum list kernel `
此外,可以下载新内核放置到/usr/src目录中:(下载地址)
`$ wget linux-2.6.32.tar.gz`
然后使用rpm将它安装到本地系统:
`$ rpm-ivh linux-2.6.32.tar.gz`
更新完毕之后,再重启系统让更新立即生效:
`$ reboot`
总之,定期的清除旧内核是一种好习惯,可以保证Linux系统始终处于最新状态,有更好的安全性和更好的稳定性。
如何删除linux旧内核
在删除旧内核之前,记住最好留有2个最近的内核(最新的和上一个版本),以防主要的版本出错。现在就让我们看看如何在Ubuntu上清理旧内核。在Ubuntu内核镜像包含了以下的包。
linux-image-:内核镜像
linux-image-extra-:额外的内核模块
linux-headers-:内核头文件
首先检查系统中安装的内核镜像。
$ dpkg--list| grep linux-image
$ dpkg--list| grep linux-headers
在列出的内核镜像中,你可以移除一个特定的版本(比如3.19.0-15)。
$ sudo apt-get purge linux-image-3.19.0-15
$ sudo apt-get purge linux-headers-3.19.0-15
上面的命令会删除内核镜像和它相关联的内核模块和头文件。
注意如果你还没有升级内核那么删除旧内核会自动触发安装新内核。这样在删除旧内核之后,GRUB配置会自动升级来移除GRUB菜单中相关GRUB入口。
如果你有很多没用的内核,你可以用shell表达式来一次性地删除多个内核。注意这个括号表达式只在bash或者兼容的shell中才有效。
$ sudo apt-get purge linux-image-3.19.0-{18,20,21,25}
$ sudo apt-get purge linux-headers-3.19.0-{18,20,21,25}
上面的命令会删除4个内核镜像:3.19.0-18、3.19.0-20、3.19.0-21和 3.19.0-25。
如果GRUB配置由于任何原因在删除旧内核后没有正确升级,你可以尝试手动用update-grub2命令来更新配置。
$ sudo update-grub2
现在就重启来验证GRUB菜单是否已经正确清理了。
linux操作系统中,加载和删除内核模块的命令是什么。
modprobe命令
Linux命令:modprobe。
功能说明:自动处理可载入模块。
语法:modprobe [-acdlrtvV][--help][模块文件][符号名称=符号值]。
补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
内容
1、modprobe命令是根据depmod-a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。
2、删除模块的命令是:modprobe-r filename。
3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命令也可显示相同内容。
4、在内核中有一个“Automatic kernel module loading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或/etc/modprobe.conf文件是一个自动处理内核模块的控制文件。
modprobe命令主要用于在Linux 2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载,如下所示:
1)加载RAID1阵列级别模块:
[root@rhel5 boot]# modprobe raid1
2)显示已加载的RAID1阵列级别模块:
[root@rhel5 boot]# lsmod|grep raid1 raid1 25153 0
3)删除RAID1阵列级别模块:
[root@rhel5 boot]# modprobe-r raid1
4)显示RAID1阵列级别模块:
[root@rhel5 boot]# lsmod|grep raid1
modprobe命令在加载模块时会自动解决依赖的模块。当加载的模块需依赖另一个模块时,系统会自动将此模块加载。而当用户使用insmod命令加载模块时,则不会自动解决相对应的依赖模块。
modprobe命令中的"-r"参数表示删除指定模块,"-c"参数表示显示/etc/modprobe.conf配置文件的参数,"-C"参数表示指定内核配置文件,"-f"表示覆盖,"-l"表示显示模块的绝对路径。
[root@rhel5 boot]# modprobe-l|grep raid/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko
以上命令表示显示系统中所有的编译模块,并过滤包含有raid字符串的模块。