当前位置: 首页>>技术教程>>正文


“卷启动仅剩余0字节磁盘空间”

,

问题描述

最近更新之后,我收到一条警报,说:

The volume boot has only 0 bytes disk space remaining

但是我的计算机有足够的可用高清空间。有谁知道我如何解决这个问题。 (如果相关,我正在使用Ubuntu 12.04的备用安装映像的整个磁盘加密功能)。

最佳方案

列出所有内核: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

次佳方案

原因确实是旧的内核映像。要清理所有我要做的事情,请运行一行:

sudo apt-get autoclean && sudo apt-get autoremove

这会自动识别旧内核并将其删除。

第三种方案

随着时间的推移,您的/boot分区可能累积了太多的内核版本。该分区可能与大磁盘分区(安装为/)分开。您可以像这样检查/boot分区空间(查找带有/boot的行):

df -h

how to remove old kernels上有一个漂亮的页面。

简而言之,检查您当前的内核版本,获取已安装版本的列表,然后apt-get删除旧版本。页面上还有一个”magic” one-liner命令将为您完成所有操作。但是使用它需要您自担风险。

详细说明:

  1. 获取当前的内核版本,您要保留的版本:

    uname -r
    
  2. 获取所有已安装内核的列表:

    dpkg -l | grep linux-image-
    
  3. 在要删除的内核上运行apt-get remove。不是最新的!例如:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

更多说明:

  • dpkg -l会在软件包名称前告诉您status of the (kernel) package。例如:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • “rc”表示该软件包已删除并具有配置文件。这些您不需要再删除。

    • “ii”表示该软件包已标记为已安装并已安装

    基于此,您可以仅列出已安装的内核软件包:

    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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9538.html,未经允许,请勿转载。