尝试释放空间以进行某些更新,但尝试删除/清除时没有依赖问题

尝试释放空间以进行某些更新,但尝试删除/清除时没有依赖问题

我正在使用 ansible 部署到我的服务器,在我开始安装/更新软件包之前,它的一部分会运行一堆“更新”命令。我最近收到有关磁盘空间的错误,但似乎在试图修复它时陷入了困境,下面是我能想到的关于发生了什么的信息。

启动错误:

sudo apt-get --fix-broken install -y

给出了以下内容:

sudo:无法解析主机 myserver-001
正在读取软件包列表... 完成 正在
构建依赖关系树
正在读取状态信息... 完成
正在更正依赖关系... 完成
将安装以下额外软件包:
linux-headers-3.13.0-160
将安装以下新软件包:
linux-headers-3.13.0-160
已升级 0 个软件包,新安装 1 个软件包,要删除 0 个软件包,未升级 0 个软件包。
未完全安装或删除 4 个软件包。
需要获取 0 B/8,911 kB 的档案。
此操作后,将使用 63.6 MB 的额外磁盘空间。
(正在读取数据库... 当前安装了 505365 个文件和目录。)
准备解压 .../linux-headers-3.13.0-160_3.13.0-160.210_all.deb...
正在解压 linux-headers-3.13.0-160(3.13.0-160.210)...
dpkg:错误处理存档/var/cache/apt/archives/linux-headers-3.13.0-160_3.13.0-160.210_all.deb(--unpack):
错误创建目录`./usr/src/linux-headers-3.13.0-160/drivers/staging/lustre/lustre/osc':设备上没有剩余空间
没有写入 apport 报告,因为错误消息表明磁盘已满
dpkg-deb:错误:子进程 paste 被信号杀死(管道断裂)
错误处理时遇到:
/var/cache/apt/archives/linux-headers-3.13.0-160_3.13.0-160.210_all.deb
E:子进程 /usr/bin/dpkg 返回错误代码 (1)

对我来说,重要的是:

error creating directory `./usr/src/linux-headers-3.13.0-160/drivers/staging/lustre/lustre/osc': No space left on device  

没有写入 apport 报告,因为错误消息表明磁盘已满错误

因此,经过一番谷歌搜索后,我找到了这些地方:/boot 和 /usr/src/,并检查了 innodes

df /boot | df /usr/src:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda1       8115168 5474876   2205016  72% /

DF-我:

Filesystem     Inodes  IUsed  IFree IUse% Mounted on
udev           480531    391 480140    1% /dev
tmpfs          481833    312 481521    1% /run
/dev/xvda1     524288 521345   2943  100% /
none           481833      2 481831    1% /sys/fs/cgroup
none           481833      1 481832    1% /run/lock
none           481833      1 481832    1% /run/shm
none           481833      2 481831    1% /run/user
/dev/xvdb      262144     11 262133    1% /mnt

uname -r:

3.13.0-158-generic

我不太擅长这个,因此尝试提供尽可能多的信息。如果这些信息没有用,我深表歉意。

在 /usr/src 中我有很多 linux-header:

drwxr-xr-x 24 root root 4096 2016 年 11 月 24 日 linux-headers-3.13.0-101
drwxr-xr-x 7 root root 4096 2016 年 11 月 24 日 linux-headers-3.13.0-101-generic
drwxr-xr-x 24 root root 4096 2017 年 1 月 20 日 linux-headers-3.13.0-107
drwxr-xr-x 7 root root 4096 2017 年 1 月 20 日 linux-headers-3.13.0-107-generic
drwxr-xr-x 24 root root 4096 2017 年 3 月 9 日 linux-headers-3.13.0-112
drwxr-xr-x 7 root root 4096 2017 年 3 月 9 日linux-headers-3.13.0-112-generic
drwxr-xr-x 24 root root 4096 2017 年 4 月 7 日 linux-headers-3.13.0-116
drwxr-xr-x 7 root root 4096 2017 年 4 月 7 日 linux-headers-3.13.0-116-generic
drwxr-xr-x 24 root root 4096 2017 年 5 月 4 日 linux-headers-3.13.0-117
drwxr-xr-x 7 root root 4096 2017 年 5 月 4 日 linux-headers-3.13.0-117-generic
drwxr-xr-x 24 root root 4096 2017 年 5 月 18 日 linux-headers-3.13.0-119
drwxr-xr-x 7 root root 4096 2017 年 5 月 18 日 linux-headers-3.13.0-119-generic
drwxr-xr-x 24 root root 4096 2017 年 6 月 22 日 linux-headers-3.13.0-121
drwxr-xr-x 7 root root 4096 2017 年 6 月 22 日 linux-headers-3.13.0-121-generic
drwxr-xr-x 24 root root 4096 2017 年 7 月 7 日 linux-headers-3.13.0-123
drwxr-xr-x 7 root root 4096 2017 年 7 月 7 日 linux-headers-3.13.0-123-generic
drwxr-xr-x 24 root root 4096 2017 年 7 月 18 日linux-headers-3.13.0-125
drwxr-xr-x 7 root root 4096 2017 年 7 月 18 日 linux-headers-3.13.0-125-generic
drwxr-xr-x 24 root root 4096 2017 年 8 月 31 日 linux-headers-3.13.0-129
drwxr-xr-x 7 root root 4096 2017 年 8 月 31 日 linux-headers-3.13.0-129-generic
drwxr-xr-x 24 root root 4096 2018 年 1 月 25 日 linux-headers-3.13.0-141
drwxr-xr-x 7 root root 4096 2018 年 1 月 25 日 linux-headers-3.13.0-141-generic
drwxr-xr-x 24 root root 4096 2018 年 2 月 22 日 linux-headers-3.13.0-142
drwxr-xr-x 7 root root 4096 2018 年 2 月 22 日 linux-headers-3.13.0-142-generic
drwxr-xr-x 24 root root 4096 2018 年 3 月 27 日 linux-headers-3.13.0-143
drwxr-xr-x 7 root root 4096 2018 年 3 月 27 日 linux-headers-3.13.0-143-generic
drwxr-xr-x 24 root root 4096 4 月 27 日 13:47 linux-headers-3.13.0-145
drwxr-xr-x 7 root root 4096 4 月 27 日 13:47 linux-headers-3.13.0-145-generic
drwxr-xr-x 24 root root 4096 5月 14 11:11 linux-headers-3.13.0-147
drwxr-xr-x 7 root root 4096 5月 14 11:11 linux-headers-3.13.0-147-generic
drwxr-xr-x 24 root root 4096 5月 23 11:04 linux-headers-3.13.0-149
drwxr-xr-x 7 root root 4096 5月 23 11:04 linux-headers-3.13.0-149-generic
drwxr-xr-x 24 root root 4096 9月 12 15:19 linux-headers-3.13.0-158
drwxr-xr-x 7 root root 4096 9月12日 15:19 linux-headers-3.13.0-158-generic
drwxr-xr-x 7 root root 4096 十月 12 11:15 linux-headers-3.13.0-160-generic
drwxr-xr-x 24 root root 4096 2015 年 3 月 25 日 linux-headers-3.13.0-48
drwxr-xr-x 7 root root 4096 2015 年 3 月 25 日 linux-headers-3.13.0-48-generic

我认为我不需要其中的很多,但是当我尝试卸载 2015 内核时,我收到与以前相同的错误,该错误抱怨最新的错误以及它无法安装其依赖项的事实:

sudo apt-get remove linux-headers-3.13.0-48

sudo: 无法解析主机 myserver-001
正在读取软件包列表... 完成 正在
构建依赖关系树
正在读取状态信息... 完成
您可能需要运行“apt-get -f install”来更正这些问题:
以下软件包具有未满足的依赖关系:
linux-headers-3.13.0-160-generic:依赖:linux-headers-3.13.0-160 但不会安装
linux-headers-3.13.0-48-generic:依赖:linux-headers-3.13.0-48 但不会安装
E:未满足的依赖关系。尝试不使用任何软件包执行“apt-get -f install”(或指定解决方案)。

如果我尝试“apt-get -f install”,我会收到与之前相同的关于没有空间的消息。

/启动

 abi-3.13.0-101-generic     config-3.13.0-149-generic      System.map-3.13.0-117-generic
 abi-3.13.0-107-generic     config-3.13.0-158-generic      System.map-3.13.0-119-generic
 abi-3.13.0-112-generic     config-3.13.0-160-generic      System.map-3.13.0-121-generic
 abi-3.13.0-116-generic     config-3.13.0-48-generic       System.map-3.13.0-123-generic
 abi-3.13.0-117-generic     grub                           System.map-3.13.0-125-generic
 abi-3.13.0-119-generic     initrd.img-3.13.0-101-generic  System.map-3.13.0-129-generic
 abi-3.13.0-121-generic     initrd.img-3.13.0-107-generic  System.map-3.13.0-141-generic
 abi-3.13.0-123-generic     initrd.img-3.13.0-112-generic  System.map-3.13.0-142-generic
 abi-3.13.0-125-generic     initrd.img-3.13.0-116-generic  System.map-3.13.0-143-generic
 abi-3.13.0-129-generic     initrd.img-3.13.0-117-generic  System.map-3.13.0-145-generic
 abi-3.13.0-141-generic     initrd.img-3.13.0-119-generic  System.map-3.13.0-147-generic
 abi-3.13.0-142-generic     initrd.img-3.13.0-121-generic  System.map-3.13.0-149-generic
 abi-3.13.0-143-generic     initrd.img-3.13.0-123-generic  System.map-3.13.0-158-generic
 abi-3.13.0-145-generic     initrd.img-3.13.0-125-generic  System.map-3.13.0-160-generic
 abi-3.13.0-147-generic     initrd.img-3.13.0-129-generic  System.map-3.13.0-48-generic
 abi-3.13.0-149-generic     initrd.img-3.13.0-141-generic  vmlinuz-3.13.0-101-generic
 abi-3.13.0-158-generic     initrd.img-3.13.0-142-generic  vmlinuz-3.13.0-107-generic
 abi-3.13.0-160-generic     initrd.img-3.13.0-143-generic  vmlinuz-3.13.0-112-generic
 abi-3.13.0-48-generic      initrd.img-3.13.0-145-generic  vmlinuz-3.13.0-116-generic
 config-3.13.0-101-generic  initrd.img-3.13.0-147-generic  vmlinuz-3.13.0-117-generic
 config-3.13.0-107-generic  initrd.img-3.13.0-149-generic  vmlinuz-3.13.0-119-generic
 config-3.13.0-112-generic  initrd.img-3.13.0-158-generic  vmlinuz-3.13.0-121-generic
 config-3.13.0-116-generic  initrd.img-3.13.0-160-generic  vmlinuz-3.13.0-123-generic
 config-3.13.0-117-generic  initrd.img-3.13.0-48-generic   vmlinuz-3.13.0-125-generic
 config-3.13.0-119-generic  retpoline-3.13.0-143-generic   vmlinuz-3.13.0-129-generic
 config-3.13.0-121-generic  retpoline-3.13.0-145-generic   vmlinuz-3.13.0-141-generic
 config-3.13.0-123-generic  retpoline-3.13.0-147-generic   vmlinuz-3.13.0-142-generic
 config-3.13.0-125-generic  retpoline-3.13.0-149-generic   vmlinuz-3.13.0-143-generic
 config-3.13.0-129-generic  retpoline-3.13.0-158-generic   vmlinuz-3.13.0-145-generic
 config-3.13.0-141-generic  retpoline-3.13.0-160-generic   vmlinuz-3.13.0-147-generic
 config-3.13.0-142-generic  System.map-3.13.0-101-generic  vmlinuz-3.13.0-149-generic
 config-3.13.0-143-generic  System.map-3.13.0-107-generic  vmlinuz-3.13.0-158-generic
 config-3.13.0-145-generic  System.map-3.13.0-112-generic  vmlinuz-3.13.0-160-generic
 config-3.13.0-147-generic  System.map-3.13.0-116-generic  vmlinuz-3.13.0-48-generic

我尝试从这里删除最新的内核 - 似乎已部分安装:sudo apt-get purge linux-image-3.13.0-160

给了我这个:

正在读取软件包列表...完成 正在
构建依赖关系树
正在读取状态信息...完成
注意,为正则表达式“linux-image-3.13.0-160”选择
“linux-image-3.13.0-160-lowlatency” 注意,为正则表达式“linux-image-3.13.0-160”选择“linux-image-3.13.0-160-generic”
软件包“linux-image-3.13.0-160-lowlatency”未安装,因此未被删除
您可能需要运行“apt-get -f install”来更正这些问题:
以下软件包具有未满足的依赖关系:
linux-headers-3.13.0-160-generic:依赖:linux-headers-3.13.0-160 但不会安装
linux-image-virtual:依赖:linux-image-3.13.0-160-generic 但不会安装
E:未满足依赖项。尝试不使用任何软件包的“apt-get -f install”(或指定解决方案)。

我真的很困惑该怎么做。如果有人能给我指明正确的方向,那就太好了!我是不是要用 rm 删除 /boot 或 /usr/src 中的一些旧文件?因为大多数帖子建议不要这样做,而是使用 apt-get remove 等命令。谢谢

答案1

您的 inode 确实用完了(您已经知道这一点)。

这种情况确实是由所有这些内核头包引起的(您也知道这一点)。

Apt 无法执行卸载,因为完成进程内安装在队列中更早……并且这些进程内安装由于 inode 不足而中止。Apt总是尝试在新操作之前完成正在进行的操作。(你也知道这一点)

正确简单的技巧是使用 dpkg 而不是 apt 卸载第一个内核头文件包。这将释放足够的 inode 来疏通 apt。后续卸载可使用 apt 完成。

sudo dpkg --remove linux-headers-3.13.0-48 linux-headers-3.13.0-48-generic
sudo apt-get remove linux-headers-3.13.0-101 linux-headers-3.13.0-101-generic

还有一些清理工作要做 - 更多的内核头,以及大量挂在 /boot 中的过时内核映像。

专家提示:切勿使用rm删除包管理器放置的文件。您只会用下周的丢失文件错误替换今天的空间不足错误……这可能更难修复。始终使用包管理器删除它放置的文件。

答案2

尝试安装 Ubuntu 调整。它至少可以帮助您删除旧内核,并且可以获得一些可用空间。

还可以尝试以下命令:

sudo apt-get install --fix-missing --fix-broken

sudo dpkg --configure -a

或者使用有错误的特定包名称重新配置它

sudo dpkg-reconfigure <pakcage name>

[编辑]

由于您没有空间执行任何操作,最好截断一些错误/访问日志文件。

使用truncate --size 0 [path to the log file]

如果您想保留这些文件的内容,请先将它们下载到本地机器上。在您的数据库中,如果系统正在使用任何类型的日志记录/缓存,请清空这些表。

相关内容