运行 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