运行 dpkg --configure -a 时在 /etc/default/grub 中循环

运行 dpkg --configure -a 时在 /etc/default/grub 中循环

我无法完成系统上的软件包安装,当我运行时sudo dpkg --configure -a,收到此信息:

'Setting up friendly-recovery (0.2.39ubuntu0.19.04.1) ...
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub'

因此我陷入了循环。

命令的输出diff -s /etc/default/grub /usr/share/grub/default/grub

9c9
< GRUB_CMDLINE_LINUX_DEFAULT="button.lid_init_state=open intel_idle.max_cstate=4"
---
> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
33,36d32
< sudo update-grub && sudo reboot
< 
< update-grub
< 

有任何想法吗?

答案1

DPKG 正在尝试来源GRUB,但由于存在

sudo update-grub && sudo reboot

update-grub

从第 32 行到第 36 行,GRUB 文件正在递归获取。如果是其他命令,你的系统会在之前重新启动实际上由于 而完全获取 GRUB sudo reboot。但由于 而导致sudo update-grub您陷入无限递归。简而言之,命令如下所示:

update-grub(){
    update-grub
}

您需要编辑 GRUB 文件并删除第 32 至 36 行,即包含update-grub。要编辑,请运行

sudoedit /etc/default/grub

删除这些行并保存。完成后,尝试运行

sudo dpkg --configure -a

或者

sudo update-grub

相关内容