修复grub-common.service错误

本文详细介绍了在使用apt upgrade或apt install时遇到grub-common.service未找到或无法启动的错误解决方案。通过重命名相关文件并清理dpkg信息,最终解决了grub-pc配置问题,使apt包管理器恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用apt upgrade或者apt install的时候,我遇到了下面这个错误:

update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Failed to start grub-common.service: Unit grub-common.service not found.
invoke-rc.d: initscript grub-common, action "start" failed.

后面还有一些错误提示,我就不放上来了,可以看到主要的错误就是没有找到也无法启动grub-common.service

同时我还看到有网友遇到了下面这个类似的问题,他是没有办法终止grub-common.service,报错如下:

Failed to stop grub-common.service: Unit grub-common.service not loaded.
invoke-rc.d: initscript grub-common, action "stop" failed.
dpkg: warning: subprocess old pre-removal script returned error exit status 5

解决方法如下:

首先将这两个文件修改名字,如果这两条命令中的一条失败是没有关系的。

sudo mv /etc/init.d/grub-common /etc/init.d/grub-common.bak
sudo mv /etc/init/grub-common.conf /etc/init/grub-common.conf.bak

这时候可以使用apt upgrade命令再试试,无法终止grub-common.service的朋友此时应该可以正常使用apt包管理器安装程序了。

作者是无法启动grub-common.service,再执行了重命名操作后,再输入apt upgrade,报错发生了改变,节选如下:

Setting up grub-pc (2.02~beta2-36ubuntu3.27) ...
dpkg: error processing package grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 10
dpkg: dependency problems prevent configuration of grub2:
 grub2 depends on grub-pc (= 2.02~beta2-36ubuntu3.27); however:
  Package grub-pc is not configured yet.

可以看到,此时问题转移到grub-pc身上了,下面我们可以执行以下命令来修复这个问题:

sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/

此时输入apt-get upgrade可能会出现一系列选择,全部选择默认(N)就可以,现在应该就可以正常使用apt包管理器了。

参考资料

grub-common fix fail

dpkg: error processing package bluez (–configure) 解决方法

<think>我们正在处理Ubuntu18.04系统在升级内核到4.19.0版本后,LXD启动需要10分钟的问题。可能的原因:新内核与LXD服务存在兼容性问题,或者系统在启动时尝试加载某些模块或服务时出现超时。常见的解决步骤:1.检查系统日志:使用`journalctl -u lxd.service`或`dmesg`查看启动过程中的错误信息。2.检查LXD配置:确保LXD的配置正确,特别是存储池和网络配置。3.检查内核模块:LXD依赖于一些内核模块(如overlayfs,veth等),确认这些模块已正确加载。4.尝试重新安装LXD:有时候重新安装可以解决依赖问题。5.回退内核:如果问题持续,可以考虑暂时回退到之前的内核版本。具体步骤建议:步骤1:查看日志sudojournalctl-ulxd.service --since today或者sudodmesg |grep lxd步骤2:检查内核模块lsmod |grep overlaylsmod| grepveth如果没有加载,尝试手动加载:sudomodprobe overlay;sudo modprobeveth步骤3:重新配置LXDsudodpkg-reconfigure lxd步骤4:如果上述步骤无效,尝试重新安装LXDsudo aptremove --purgelxdlxd-clientsudoapt installlxdlxd-client然后重新初始化:sudo lxd init步骤5:如果问题依旧,考虑回退内核-在启动时选择Grub菜单中的旧内核启动-然后移除有问题的内核:sudoapt removelinux-image-4.19.0-*注意:在操作前请备份重要数据。根据问题,我们提供以上解决方案。现在,按照要求,在回答后提出3-5个相关问题。</think>### 处理Ubuntu 18.04升级内核至4.19.0后LXD启动超时的解决方案 #### 关键原因分析: 1. **内核模块兼容性问题**:新内核可能未正确加载LXD依赖的模块(如`overlayfs`、`veth`等) 2. **AppArmor策略冲突**:新内核的AppArmor安全策略可能阻止LXD操作 3. **存储池挂载异常**:ZFS/BTRFS存储池在新内核下挂载失败 4. **网络配置冲突**:`lxd-bridge`与NetworkManager或systemd-networkd的服务冲突 --- #### 解决步骤: ```bash # 1. 检查内核模块依赖 sudo modprobe overlay && sudo modprobe veth # 手动加载关键模块 lsmod | grep -E 'overlay|veth' # 验证模块状态 # 2. 修复AppArmor策略(关键步骤) sudo aa-status | grep lxd # 检查策略状态 sudo systemctl restart apparmor # 重启AppArmor服务 sudo aa-complain /usr/bin/lxd # 临时放宽策略 # 3. 重建存储池挂载 sudo lxd shutdown --force # 强制停止LXD sudo rm -rf /var/snap/lxd/common/lxd/storage-pools/default # 删除默认存储池 sudo lxd init --auto # 重新初始化存储池 # 4. 解决网络冲突(二选一) # 选项A:禁用NetworkManager对LXD网桥的接管 sudo nmcli dev set lxdbr0 managed no # 选项B:改用systemd-networkd sudo systemctl enable systemd-networkd sudo systemctl disable NetworkManager # 5. 强制重置LXD服务 sudo systemctl stop snap.lxd.daemon sudo snap restart lxd # 重启Snap版LXD sudo journalctl -u snap.lxd.daemon -f # 实时监控日志 ``` #### 备选方案: 若上述无效,可尝试: ```bash # 回退到旧内核启动 sudo apt install grub-customizer # 图形化调整GRUB sudo update-grub # 更新引导配置 # 启动时在GRUB菜单选择旧内核进入系统 ``` > **注意**:操作前备份`/var/lib/lxd`目录,若使用ZFS存储需额外执行`sudo zfs list`检查池状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值