Saya memecahkan Subsistem Linux Windows (Bash di Ubuntu pada Windows 10). Bantuan Linux?

22

Saya telah bermain dengan subsistem linux baru di Windows dan entah bagaimana saya telah merusaknya dan sekarang sebagian besar internal Ubuntu (apt-get, dpkg, dll) tidak berfungsi. Semua yang saya coba, saya dapatkan pesan yang sama ...

    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)

Ada ide bagaimana cara memperbaikinya?

Mike Pengelly
sumber
Apakah ada opsi "reset" atau uninstall / instal ulang? Itu mungkin yang termudah & tercepat. Adakah yang tahu apa yang Anda lakukan agar ini terjadi? Hapus root ( /) atau sesuatu?
Xen2050
1
Per AskUbuntu , coba: sudo apt-get install upstart-sysv untuk perbaikan cepat - posting itu juga memiliki tautan ke perbaikan "yang disarankan". Tidak yakin itu masalah yang sama, tapi tampaknya seperti itu mungkin terkait.
penyamak
1
@ Ramhound Saya tidak bertanya bagaimana menginstal ulang Bash di Ubuntu pada Windows 10, saya bertanya bagaimana cara memperbaiki masalah. Saya belum pernah mengalami masalah ini di Ubuntu sebenarnya. Jika Nuclear memperbaiki masalah, maka saya tidak ingin ada ketika mereka memperbaiki pemanasan global
Mike Pengelly
1
@Ramhound Tapi saya tidak menjawab pertanyaan saya. Itu seperti mengatakan "instal ulang windows setiap kali Anda mendapatkan pesan kesalahan" atau "beli mobil baru setiap kali Anda mendengar suara" .... Itu menyelesaikan masalah tetapi itu bukan solusi yang praktis.
Mike Pengelly

Jawaban:

34

Peringatan, proses ini akan mengembalikan Lxss ke konfigurasi awal

Untuk menginstal ulang Lxss, buka Windows cmdsebagai administrator dan jalankan:

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

Kemudian:

C:\WINDOWS\system32>LxRun.exe /install
Jonas
sumber
1
Saya tidak menandai ini sebagai jawaban karena ini adalah pendekatan nuklir untuk masalah yang saya alami. Ya itu akan memperbaikinya (secara teori, saya tidak mencoba), tetapi cara saya memperbaikinya memperbaiki masalah saya dengan keluar nuklir. Tetapi jika saya terus memiliki masalah, saya akan merekomendasikan pendekatan ini jika Anda ingin menghemat waktu. Namun di masa depan saya ragu orang ingin mengkonfigurasi ulang Subsistem Linux di sana setiap kali ada masalah.
Mike Pengelly
Masalahnya adalah dengan subsistem Ubuntu itu sendiri. Menginstal ulang tidak akan memperbaiki apa pun
Panagiotis Kanavos
2
@PanagiotisKanavos bagi kita yang menemukan pertanyaan melalui google (telah membuat kekacauan dalam instalasi kami): Saya dapat meyakinkan Anda bahwa jawabannya masih sangat dihargai!
Marc Gravell
2
Kalian benar, ini bukan jawabannya dan kita harus menggunakan ini sebagai opsi terakhir.
Jonas
Saya mendapatkan Access is denied.ketika saya menjalankan C:\WINDOWS\system32>LxRun.exe /uninstallbahkan jika sesi cmd sedang dijalankan "sebagai Administrator". Ada ide?
fredrik
18

Memperbaikinya.

Ran:

apt-get remove upstart

kemudian

apt-get remove udev

kemudian

apt-get autoremove

dan sepertinya semuanya berfungsi sekarang.

Mike Pengelly
sumber
1
Harus diinstal ketika saya menginstal x11 (versi yang terlalu baru) ... btw x server harus berjalan di windows bukan di subsistem linux. dan kemudian Anda meneruskan aplikasi dengan menjalankan DISPLAY = 0: firefox
Mike Pengelly
9

Tanggapan resmi dari microsoft

github: Microsoft / BashOnWindows

Ini adalah masalah yang semua orang akan mulai melihat. Kami perlu menambahkan sesuatu tentang ini di dokumen resmi kami.

Seperti yang ditunjukkan oleh @nuclearmistake, udev adalah sesuatu yang dapat merusak apt-get tetapi kesalahan seharusnya tidak menyebabkan masalah di WSL. Kami telah menjangkau Canonical yang satu ini untuk meminta solusi terbaik dan mereka merekomendasikan perubahan berikut:

Tuliskan yang berikut di /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

Saya sudah mencoba yang ini dan kelihatannya berhasil dengan baik.

bebas lembu
sumber
6

Ini solusi yang lebih tepat sasaran. Buat skrip bernama /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) dengan konten berikut:

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

Simpan dan keluar ( Ctrl+ O Ctrl+ X). Tandai skrip sebagai executable ( chmod +x /usr/sbin/policy-rc.d). Script ini memberitahukan dpkguntuk tidak mencoba memulai udevatau systemd-logind.

Anda kemudian dapat menyelesaikan dpkglangkah konfigurasi yang sebelumnya gagal ( dpkg --configure -a).

Anders Kaseorg
sumber
2
Ini adalah jawaban yang dapat ditingkatkan dengan menjelaskan apa yang terjadi , apa "entah bagaimana" dalam pertanyaan itu sebenarnya dan bagaimana serangkaian langkah ini mengatasinya. Berikut ini adalah satu penunjuk untuk digunakan. Ini satu lagi .
JdeBP