дружественное восстановление нарушено, продолжает возвращать статус выхода 1

537
Zackary

У меня есть Windows Subsystem для Linux под управлением Ubuntu 16.04 (но с пакетами Linux Mint 19). В какой-то момент я сделал ошибку, установив другое ядро, на котором также установлены grub-pcи friendly-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.

0

1 ответ на вопрос

1
Deltik

Согласно выводу, подпроцесс сценария после удаления завершился неудачно.

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 

Похожие вопросы