質問: フレンドリー-回復が壊れており、終了ステータス1を返し続けます ubuntu 16.04を実行しているlinux用のwindowsサブシステムがあります(ただし、linux mint 19パッケージを使用しています)。ある時点で、grub-pcとfriendly-recoveryもインストールする別のカーネルをインストールするという間違いを犯しました。 aptでgrub-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のこのソリューション 問題は修正されませんでした。インストールされているパッケージを変更できない状態になっています(インストール/削除しようとしているパッケージに関係なく、aptとdpkgは常に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