友好恢复已损坏,不断返回退出状态 1

友好恢复已损坏,不断返回退出状态 1

我有运行 Ubuntu 16.04 的 Windows Subsystem for Linux(但带有 L​​inux Mint 19 软件包)。有一次,我错误地安装了另一个内核,它也安装了grub-pcfriendly-recovery。我设法grub-pc用删除了apt,但friendly-recovery卡住了。我尝试了以下方法来删除它:

cat > /usr/sbin/policy-rc.d <<EOF
#!/bin/sh
exit 101
EOF
chmod +x /usr/sbin/policy-rc.d
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
#### Next command tried
apt remove friendly-recovery
#### Next command tried
dpkg --remove --force-remove-reinstreq friendly-recovery
#### Finally...
dpkg --purge --force-remove-reinstreq friendly-recovery

它们都没有被删除friendly-recovery。我总是得到这个日志输出:

(Reading database ... 145035 files and directories currently installed.)
Removing friendly-recovery (0.2.38) ...
/usr/sbin/grub-probe: error: failed to get canonical path of `rootfs'.
dpkg: error processing package friendly-recovery (--purge):
 installed friendly-recovery package post-removal script subprocess returned error exit status 1
Errors were encountered while processing:
 friendly-recovery

GitHub 上的这个解决方案没有解决我的问题。

我现在无法更改已安装的软件包(apt并且dpkg总是出现错误处理friendly-recovery,无论我尝试安装/删除什么软件包)。

我该怎么做才能解决这个问题?除了完全重新安装 WSL,我想不出其他办法。

答案1

根据输出,删除后脚本子进程失败。

friendly-recovery删除后的脚本是/var/lib/dpkg/info/friendly-recovery.postrm

您可以通过用以下内容替换其全部内容来绕过此脚本:

#!/bin/sh
exit 0

以下是一系列可以为您执行此操作并删除的命令friendly-recovery

echo -e '#!/bin/sh\nexit 0' | sudo tee /var/lib/dpkg/info/friendly-recovery.postrm
sudo chmod +x /var/lib/dpkg/info/friendly-recovery.postrm
sudo dpkg -P friendly-recovery

相关内容