it-swarm-ja.com

フレンドリー-回復が壊れており、終了ステータス1を返し続けます

Ubuntu 16.04を実行しているLinux用のWindowsサブシステムがあります(ただし、Linux Mint 19パッケージを使用しています)。ある時点で、grub-pcfriendly-recoveryもインストールする別のカーネルをインストールするという間違いを犯しました。 aptgrub-pcを削除できましたが、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のこのソリューション 問題は修正されませんでした。

インストールされているパッケージを変更できない状態になっています(インストール/削除しようとしているパッケージに関係なく、aptdpkgは常にfriendly-recoveryの処理中にエラーが発生します)。

これを修正するにはどうすればよいですか? WSLを完全に再インストールする以外に何も考えられません。

出力によると、削除後のスクリプトサブプロセスは失敗しました。

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
1
Deltik