Linux的boot分区空间不足,旧内核太多怎么办?

Linux系统在分区的时候一般不会分配过多的磁盘空间给启动分区/boot,通常情况下是500MB左右。通常在升级内核后,系统并不会自动删除旧内核,在多次升级内核之后,在系统启动选项中会出现多个内核选项,久而久之就会出现/boot分区逐渐减小、最后boot分区空间不足导致无法更新内核的情况。我们可以删除一些较旧的内核解决这个问题,下面以RHEL和CentOS为例,介绍删除旧的内核方法。
方法一:使用yum命令删除旧的内核软件包,这种方法不用安装额外的YUM工具,手动一个一个地删除内核,比较麻烦。
1. 查看系统当前使用的内核版本,别把当前的内核给删除了。
#uname -a
2. 查看系统中所有已安装的内核RPM包。
#rpm -qa | grep kernel
3. 自行选择删除旧内核的RPM包。
#yum -y remove kernel-version-number
注:此命令仅为举例说明,请以系统中实际存在的内核包为准。
方法二:使用yum工具删除旧的内核软件包。需要安装额外的YUM工具,但操作简单不容易出错。
1. 安装YUM工具。
#yum -y install yum-utils
2. 查看系统中所有已安装的内核RPM包。
#rpm -qa kernel
3. 使用命令package-cleanup命令清理旧的不再需要的内核,count参数值表示你想保留的较新的内核个数。
#package-cleanup --oldkernels --count=2
使用以上任一种方法清理旧的不再需要的内核之后,使用命令df -h 查看当前/boot分区的使用情况。
另外你可以在YUM配置文件中根据实际的boot分区大小和业务需要设置需要保留的内核个数,这样后面就不会boot分区空间不足了,系统默认保留内核个数为3,假如你想设置为2,修改 /etc/yum.conf ,设置:
installonly_limit=2
