我是 Linux 新手,经常收到这个错误“错误“update-grub”返回错误:退出状态 1”,请指教

我是 Linux 新手,经常收到这个错误“错误“update-grub”返回错误:退出状态 1”,请指教

我在尝试更新系统时收到此错误,一切似乎都正常,但我是 Linux 新手,所以我可能遗漏了一些东西

ben@ben-laptop~$ sudo apt-y 升级
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
计算升级...完成
以下包已自动安装并且不再需要:
  libllvm9
使用“sudo apt autoremove”将其删除。
0 表示升级,0 表示全新安装,0 表示删除,0 表示不升级。
1 未完全安装或删除。
此操作后将使用0B的额外磁盘空间。
请求保存当前系统状态
成功保存为“autozsys_k3262n”
设置 linux-image-5.4.0-40-generic (5.4.0-40.44) ...
处理 linux-image-5.4.0-40-generic (5.4.0-40.44) 的触发器...
/etc/kernel/postinst.d/initramfs-工具:
update-initramfs:生成 /boot/initrd.img-5.4.0-40-generic
I:initramfs 将尝试从 /dev/sda2 恢复
我:(UUID=a9642385-eacc-4155-b29f-90ba3692f639)
I:设置 RESUME 变量来覆盖此变量。
/etc/kernel/postinst.d/zz-update-grub:
/usr/sbin/grub-probe:错误:无法获取“bpool/BOOT/ubuntu_0qqeus”的规范路径。
运行部分:/etc/kernel/postinst.d/zz-update-grub 退出,返回代码 1
软件包:处理软件包 linux-image-5.4.0-40-generic (--configure) 时出错:
 已安装 linux-image-5.4.0-40-generic 包安装后脚本
ubprocess 返回错误退出状态 1
处理时遇到错误:
 Linux-映像-5.4.0-40-通用
ZSys 正在向 GRUB 菜单添加自动系统快照
错误“update-grub”返回错误:退出状态 1
埃:子进程 /usr/bin/dpkg 返回错误代码 (1)

如果我单独运行 update-grub 我会得到

ben@ben-laptop~$ sudo update-grub [sudo] 密码
ben: /usr/sbin/grub-probe:错误:无法获取规范路径
`bpool/BOOT/ubuntu_0qqeus'。

答案1

我最近遇到了与 Kubuntu 20.04 完全相同的问题。 问题是该/boot分区已经没有足够的剩余空间来正确更新内核。因此每次重试都会失败(即sudo apt upgrade)。您可以通过运行来检查这一点df-H,如果安装的可用空间较低(例如低于 100MB),/boot那么您可能会遇到您看到的问题。首先尝试sudo apt cleansudo apt autoremove然后sudo apt upgrade查看它是否会自动清除空间以修复错误。如果没有,请参阅下面的解决方案。

要修复它你需要释放空间/boot. 我是如何做到的:

  1. 运行sudo dpkg --list | egrep -i --color 'linux-image|linux-headers'即可获得已安装内核和内核头文件的列表/boot
  2. 现在你需要卸载所有你不想要的除了当前内核(通过运行找出当前内核uname -r)。你也许应该保持所有内核更新比当前内核还要好。
  3. 使用以下命令卸载每个您不需要的内核和内核头:
    sudo apt purge {kernel-package-name}
    
    例如我运行了:
    sudo apt purge linux-image-5.4.0-26-generic
    ...
    sudo apt purge linux-headers-5.4.0-26-generic
    ...
    sudo apt purge linux-image-5.4.0-33-generic
    ...
    sudo apt purge linux-headers-5.4.0-33-generic
    ...
    And so on...
    
  4. 一旦您删除了足够的内核以释放空间,请重新启动您的电脑,然后重试sudo apt updatesudo apt upgrade看看是否成功并且错误消息是否消失。

将来当它再次填满时,您可能必须重复此操作。我一直认为旧内核应该被自动删除,或者通过使用sudo apt cleanand/or删除sudo apt autoremove,但在某些安装中似乎并非如此。

如果有人知道如何自动删除旧内核,请分享

相关内容