web-dev-qa-db-ja.com

Windows Linuxサブシステム(Windows 10上のUbuntuのBash)を壊しました。 Linuxヘルプ?

私はWindowsで新しいLinuxサブシステムを使用していて、どういうわけかそれを壊してしまいましたが、Ubuntuのほとんどの内部(apt-get、dpkgなど)が機能しなくなりました。何かをしようとすると、同じメッセージが表示されます...

    Setting up udev (204-5ubuntu20.19) ...
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory
runlevel:/var/run/utmp: No such file or directory
 * udev requires devtmpfs support, not started
   ...fail!
invoke-rc.d: initscript udev, action "restart" failed.
dpkg: error processing package udev (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of systemd-services:
 systemd-services depends on udev (>= 175-0ubuntu23); however:
  Package udev is not configured yet.

dpkg: error processing package systemd-services (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libpam-systemd:AMD64:
No apport report written because the error message indicates its a followup error from a previous failure. libpam-systemd:AMD64 depends on systemd-services (= 204-5ubuntu20.19); however:
  Package systemd-services is not configured yet.


dpkg: error processing package libpam-systemd:AMD64 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 udev
 systemd-services
 libpam-systemd:AMD64
E: Sub-process /usr/bin/dpkg returned an error code (1)

これを修正する方法はありますか?

22
Mike Pengelly

修正しました。

ラン:

apt-get remove upstart

その後

apt-get remove udev

その後

apt-get autoremove

そして、それは今すべて働いているようです。

18
Mike Pengelly

警告、このプロセスはLxssを初期構成に復元します

Lxssを再インストールするには、管理者としてWindows cmdを開いて実行します。

C:\WINDOWS\system32>LxRun.exe /uninstall

次に:

C:\WINDOWS\system32>LxRun.exe /install
34
Jonas

マイクロソフトからの公式回答

github:Microsoft/BashOnWindows

これは誰もが目にし始める問題です。公式ドキュメントでこれに何かを追加する必要があります。

@nuclearmistakeが指摘しているように、udevはapt-getで機能しなくなりますが、エラーによってWSLで問題が発生することはありません。この問題についてCanonicalに連絡し、最善の解決策を求めました。次の変更を推奨しています。

以下を/usr/sbin/policy-rc.dに書き込みます

#!/bin/sh exit 101

chmod + x /usr/sbin/policy-rc.d

dpkg-divert --local --rename --add/sbin/initctl

ln -s/bin/true/sbin/initctl

私はこれを自分で試してみましたが、かなりうまくいくようです。

9
oxenfree

これはよりターゲットを絞ったソリューションです。次の内容で/usr/sbin/policy-rc.dnano /usr/sbin/policy-rc.d)という名前のスクリプトを作成します。

#!/bin/sh
case "$1" in
    udev|systemd-logind) exit 101;;
esac

保存して終了 (Ctrl+OCtrl+X)。スクリプトを実行可能としてマークします(chmod +x /usr/sbin/policy-rc.d)。このスクリプトは、dpkgudevまたはsystemd-logindを起動しないように指示します。

その後、以前に失敗したdpkg構成手順(dpkg --configure -a)を完了することができます。

6
Anders Kaseorg