我使用 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': No space left on device
没有写入 apport 报告,因为错误消息表明磁盘已满错误
dpkg-deb: error: subprocess paste is killed by signal (Broken pipe)
遇到错误处理时:
/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
没有写入报告报告,因为错误消息指示磁盘已满错误
所以,经过一番谷歌搜索,我最终找到了这些地方:/boot 和 /usr/src/,并检查了 innodes
df /启动 | df /usr/src:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 8115168 5474876 2205016 72% /
df -i:
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
unname -r:
3.13.0-158-generic
我不擅长这些东西,因此试图提供尽可能多的信息。如果其中任何一个没用,我深表歉意。
在 /usr/src 我有很多 linux-headers:
drwxr-xr-x 24 根 4096 2016 年 11 月 24 日 linux-headers-3.13.0-101
drwxr-xr-x 7 根 4096 2016 年 11 月 24 日 linux-headers-3.13.0-101-通用
drwxr-xr-x 24根根 4096 2017 年 1 月 20 日 linux-headers-3.13.0-107
drwxr-xr-x 7 根根 4096 2017 年 1 月 20 日 linux-headers-3.13.0-107-generic
drwxr-xr-x 24 根 4096 2017 年 3 月 9 日linux-headers-3.13.0-112
drwxr-xr-x 7 根 4096 2017 年 3 月 9 日 linux-headers-3.13.0-112-generic
drwxr-xr-x 24 根 4096 2017 年 4 月 7 日 linux-headers-3.13。 0-116
drwxr-xr-x 7 根 4096 2017 年 4 月 7 日 linux-headers-3.13.0-116-generic
drwxr-xr-x 24 根 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根根 4096 2017 年 6 月 22 日 linux-headers-3.13.0-121
drwxr-xr-x 7 根根 4096 2017 年 6 月 22 日 linux-headers-3.13.0-121-generic
drwxr-xr-x 24 根 4096 2017 年 7 月 7 日linux-headers-3.13.0-123
drwxr-xr-x 7 根 4096 2017 年 7 月 7 日 linux-headers-3.13.0-123-generic
drwxr-xr-x 24 根 4096 2017 年 7 月 18 日 linux-headers-3.13。 0-125
drwxr-xr-x 7 根 4096 2017 年 7 月 18 日 linux-headers-3.13.0-125-generic
drwxr-xr-x 24 根 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 根 4096 2018 年 1 月 25 日 linux-headers-3.13.0-141
drwxr-xr-x 7 根 4096 2018 年 1 月 25 日 linux-headers-3.13.0-141-通用
drwxr-xr-x 24根根 4096 2018 年 2 月 22 日 linux-headers-3.13.0-142
drwxr-xr-x 7 根根 4096 2018 年 2 月 22 日 linux-headers-3.13.0-142-generic
drwxr-xr-x 24 根 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 Apr 27 13:47 linux-headers- 3.13.0-145
drwxr-xr-x 7 root root 4096 Apr 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 根 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 Sep 12 15:19 linux-headers-3.13.0-158
drwxr-xr-x 7 root root 4096 Sep 12 15:19 linux-headers-3.13.0-158-generic
drwxr-xr- x 7 root root 4096 Oct 12 11:15 linux-headers-3.13.0-160-generic
drwxr-xr-x 24 root root 4096 Mar 25 2015 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”,我会收到与以前一样的关于没有空间的消息。
/启动 ls
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-generic' 用于正则表达式 'linux-image-3.13.0-160'
包 '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 等。命令干杯
尝试安装 Ubuntu 调整。它至少会帮助您删除旧内核,并且您可以申请一些可用空间。
还可以尝试以下命令:
或者使用带有错误的特定包名称重新配置它
[编辑]
由于您没有空间做任何事情,最好截断一些错误/访问日志文件。
利用
truncate --size 0 [path to the log file]
如果要保留这些文件的内容,请先将它们下载到本地计算机上。在您的数据库中,如果系统正在使用任何类型的日志记录/缓存,请清空这些表。
你确实没有 inode(你已经知道了)。
这种情况确实是由所有那些内核头包引起的(你也知道)。
Apt 无法执行卸载,因为完成进程内安装在队列中较早......并且这些进程内安装由于 inode 外而中止。Apt总是尝试在新操作之前完成正在进行的操作。(你也想出来了)
这里正确的简单技巧是使用 dpkg 而不是 apt 卸载第一个内核头包。这将释放足够多的 inode 来疏通 apt。可以使用 apt 完成后续卸载。
还有更多的清理工作要做——更多的内核头文件,以及大量挂在 /boot 中的过时内核映像。
专业提示:切勿用于
rm
删除包管理器放置的文件。您只需将今天的空间不足错误替换为下周的文件丢失错误……这可能更难修复。始终使用包管理器删除它放置的文件。