最近更新之后,我收到一条警报,说:
The volume boot has only 0 bytes disk space remaining
但是我的计算机有足够的可用高清空间。有谁知道我如何解决这个问题。(如果相关,我正在使用Ubuntu 12.04的备用安装映像的整个磁盘加密功能)。
最近更新之后,我收到一条警报,说:
The volume boot has only 0 bytes disk space remaining
但是我的计算机有足够的可用高清空间。有谁知道我如何解决这个问题。(如果相关,我正在使用Ubuntu 12.04的备用安装映像的整个磁盘加密功能)。
Answers:
列出所有内核:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1
结果看起来像这样:
linux-image-3.19.0-7-generic
linux-image-3.18.0-13-generic
linux-image-3.16.0-23-generic
接下来,让我们删除3.16内核,
sudo apt-get purge linux-image-3.16.0-23-generic
然后是系统中所有未使用的软件包:
sudo apt-get autoclean && sudo apt-get autoremove
extra
,例如linux-image-3.13.0-40-generic
和linux-image-extra-3.13.0-40-generic
。我可以用删除它们extra
吗?
find /boot/ -type f | xargs du | sort -n
。我当前正在运行的内核是3.13.0-66-generic
,因此请注意不要删除与之相关的任何内容,但确实删除了以下内容:sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-generic
。最终,在旧内核上运行清除操作成功。
/boot
随着时间的推移,您的分区可能累积了太多的内核版本。该分区可能与大磁盘分区(安装为/
)分开。您可以/boot
像这样检查分区空间(使用/ boot查找行):
df -h
关于如何删除旧内核,有一个不错的页面。
简而言之,请检查您当前的内核版本,获取已安装版本的列表,然后apt-get删除旧版本。页面上还有一个“魔术”单线命令,它将为您完成所有操作。但是使用它需要您自担风险。
详细说明:
获取当前的内核版本,即您要保留的版本:
uname -r
获取所有已安装内核的列表:
dpkg -l | grep linux-image-
在要删除的内核上运行apt-get remove。不是最新的!例如:
sudo apt-get remove linux-image-2.6.32-22-generic
更多说明:
dpkg -l
会在软件包名称之前告诉您(内核)软件包的状态。例如:
rc linux-image-3.13.0-39-generic ...
ii linux-image-3.13.0-40-generic ...
基于此,您可以仅列出已安装的内核软件包:
dpkg -l | grep "ii.*linux-image-"
使用GUI工具Ubuntu Tweak的替代解决方案。
安装并转到“计算机管理员”,检查“系统”->“旧内核”和“系统->不需要”软件包,然后按“清理”。
使用此脚本,以便删除所有其他具有当前版本和先前版本(最后1个内核版本)的旧内核。
KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`
KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`
for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do
apt-get autoremove -y && apt-get purge $PURGEKERNEL -y
done