用了一段时间的ubuntu 16.04的系统后,中间出现过几次提示boot分区空间不足的问题,大体的提示如下:The volume "boot" has only 5.2 MB disk space remaining.
.
当时在网上搜了很多解决办法,最后问题也解决了,不过由于boot分区空间的问题以后还会出现,所以做一个博客整理一下遇到的问题以及解决方法。
打开终端,
$ df -h /boot
查看boot分区信息,显示如下:
一开始装双系统的时候,自己给boot分区只分了135M的空间,现在看来还是太小了。
输入命令,查看目前系统中安装的内核镜像
$ dpkg --get-selections |grep linux-image
出现如下信息:
在Ubuntu的内核镜像中包含了以下的包:
linux-image- (内核镜像)
linux-image-extra- (额外的内核模块)
键入命令,查看本机系统的内核版本:
$ uname -r
输出显示是: 4.8.0-58-generic
所以对于我的电脑系统来说,需要删除的是linux-image-4.8.0-56-generic与linux-image-extra-4.8.0-56-generic,只留下4.8.0-58版本的两个包以及linux-image-generic-hwe-16.04文件,所以输入以下命令:
$ sudo apt-get remove linux-image-4.8.0-56-generic linux-image-extra-4.8.0-56-generic
经过一段时间,卸载完成,输入相关命令查看此时系统中所含有的内核镜像
$ dpkg --get-selections |grep linux-image
出现如下信息:
发现刚刚删除的两个镜像文件已经是deinstall状态了,此时查看boot分区空间信息
$ df -h /boot
显示信息:
可用空间变为了56M,说明卸载成功了。
至于为什么还会出现deinstall信息,原因就是因为remove命令只会删除相应的文件,并不会删除相应的配置信息,要删除相应的配置信息,需要采用purge命令
$ sudo dpkg -P linux-image-4.8.0-56-generic linux-image-extra-4.8.0-56-generic
再次查看内核信息
带有deinstall信息的包都已经被删除了,至此,操作完成。
注:在此记录一下apt-get命令与dpkg命令下包的删除操作,两条命令下都含有remove以及purge参数,具体的不同,查看了一下apt-get与dpkg的命令手册。
首先是apt-get命令:
remove命令会保留相应的配置文件,所以上面apt-get remove命令后还会有deinstall文件就不难理解了。然后是dpkg命令:
命令描述比较长,简单来说,dpkg命令下的-r 或者 -remove命令会删除除了配置文件之外的所有文件,而-P或者 --purge命令会将包括配置文件在内的内容一起删除,所以删除的时候看自己的爱好选择了。
另外,自己试了一下,把旧的内核头文件删除,步骤如下:
查看内核头文件:
$ dpkg --get-selections |grep linux-headers
显示如下:
采用dpkg命令下的-P命令
$ sudo dpkg -P linux-headers-4.8.0-56 linux-headers-4.8.0-56-generic
再次显示头文件信息:
操作完成,此时没有出现deinstall文件。
注:有关linux-image-extra package的内容可参考网址:
https://askubuntu.com/questions/153023/what-is-the-linux-image-extra-package-for-and-do-i-need-it
有关hwe(hardware enablement)有关的内容可参考网址:
https://askubuntu.com/questions/248914/what-is-hardware-enablement-hwe