首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将旧内核映像移除到空闲磁盘空间以解决“linux映像-.但它没有安装”/“写入失败(设备上没有空间)”

无法将旧内核映像移除到空闲磁盘空间以解决“linux映像-.但它没有安装”/“写入失败(设备上没有空间)”
EN

Unix & Linux用户
提问于 2022-08-11 09:55:17
回答 1查看 871关注 0票数 0

当我运行sudo apt-get upgradesudo apt-get autoremove时,它返回:

代码语言:javascript
复制
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

然后,当我运行sudo apt --fix-broken install时,它返回:

代码语言:javascript
复制
[...]
Preparing to unpack .../linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb ...
Unpacking linux-image-5.10.0-16-amd64 (5.10.127-2) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-5.10.0-16-amd64' to '/boot/vmlinuz-5.10.0-16-amd64.dpkg-new': failed to write (No space left on device)
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb

我在第二台Debian11 11/KDE计算机上有几乎相同的错误,具有相同的错误信息。

在那里,我可以使用这两个命令来解决这个问题,以释放引导分区上的磁盘空间。但是,删除不需要的内核映像的命令在这台计算机上不起作用:当我运行

代码语言:javascript
复制
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

它显示了许多内核映像文件名,但是当我运行完整的命令时

代码语言:javascript
复制
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs sudo apt -y purge

它不能移除它们。当我运行前一个命令时,相同的文件名仍然显示,并且没有释放磁盘空间,所以我的问题仍然存在。上述各项的产出如下:

代码语言:javascript
复制
The following packages have unmet dependencies:
linux-headers-amd64 : Depends: linux-headers-5.10.0-14-amd64 (= 5.10.113-1) but it is not going to be installed
linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
  • 首先,所有这些都不应该是必需的,因为升级应该运行顺利,并且非常容易做到,基本上大多数奶奶都能做到。如果存在可用磁盘空间问题,it应该提示用户(在控制台中,以及在GUI中,如用于升级的话),根据所需磁盘空间的大小和位置,执行诸如清除旧内核映像(可能使用上面的命令)、运行sudo rm -rf /var/cache/apt/archives/*或清除/tmp或运行sudo apt-get autoremove/autoclean或其他事情。它应该计算需要多少磁盘空间,并检查是否有足够的可用空间。或者,如果可用的空间不足,它可以一次运行一次升级并在每次更新之后清理,或者通知用户并中止升级,直到有足够的磁盘空间来防止出现任何问题。这可能是另一个问题/问题。它非常不方便,过时,不安全和用户不友好。
  • How来删除那些旧的内核映像来释放所需的磁盘空间?如果这不是解决这个问题的推荐方法(同样,它在我也有此问题的另一台计算机上工作),那么请(也是?)补充一下你会如何解决这个问题。
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-08-11 10:14:15

我帮不了你的第一颗子弹。要解决第二个问题,您必须暂时删除linux-headers-amd64linux-image-amd64

代码语言:javascript
复制
sudo apt remove linux-{headers,image}-amd64

然后显式删除与正在运行的内核对应的包以外的任何已安装的内核包:

代码语言:javascript
复制
dpkg -l linux-{image,headers}-"[0-9]*" | awk "NR>5 && \!/^un/ && \!/$(uname -r | cut -d- -f-2)/ { print \$2 }" | xargs sudo apt -y purge

最后,安装最新的内核:

代码语言:javascript
复制
sudo apt install linux-{headers,image}-amd64

如果您安装了unattended-upgrades,它将负责在不再需要时为您删除自动安装的内核。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/713269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档