Я зламав підсистему Windows Linux (Bash on Ubuntu в Windows 10). Довідка Linux?


22

Я грав з новою підсистемою Linux в Windows, і я якось зламав її, і тепер більшість внутрішніх систем 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)

Будь-які ідеї, як це виправити?


Чи є варіант "скидання" чи видалення / перевстановлення? Це, мабуть, найпростіший та найшвидший. Будь-яка ідея, що ви зробили, щоб це сталося? Стерти root ( /) чи щось?
Xen2050

1
За AskUbuntu спробуйте: sudo apt-get install upstart-sysv для швидкого виправлення - цей пост також має посилання на "рекомендований" виправлення. Не впевнений, що це та сама проблема, але схоже, що це може бути пов'язано.
Засмажка


1
@ Ramhound Я не питав, як перевстановити Bash на Ubuntu в Windows 10, я запитав, як виправити проблему. У мене ніколи не було цієї проблеми в насправді Ubuntu. Якщо ядерна
ярмарка

1
@Ramhound Але я не відповідаю на моє запитання. Це як сказати "перевстановлюйте вікна щоразу, коли отримуєте повідомлення про помилку" або "купуйте новий автомобіль кожного разу, коли чуєте шум" .... Це вирішує проблему, але це не практичне рішення.
Майк Пенгеллі

Відповіді:


34

Попередження, цей процес відновить Lxss до початкової конфігурації

Щоб перевстановити Lxss, відкрийте Windows cmdяк адміністратор та запустіть:

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

Потім:

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

1
Я не відзначив це як відповідь, тому що це ядерний підхід до проблеми, яку я мав. Так, це було б виправлено (теоретично я не намагався), але спосіб, яким я його виправив, виправляє мою точну проблему із виїздом ядерної. Але якщо я продовжую мати проблеми, я рекомендую такий підхід, якщо ви хочете заощадити години. Надалі, хоча я сумніваюся, люди хочуть переналаштувати там підсистему Linux кожен раз, коли щось піде не так.
Майк Пенгеллі

Проблема полягає в самій підсистемі Ubuntu. Перевстановлення нічого не виправить
Панайотис Канавос

2
@PanagiotisKanavos для тих, хто шукає питання через Google (зробивши безлад у наших установках): Можу запевнити, що відповідь все ще дуже вдячний!
Марк Гравелл

2
Ви праві, хлопці, це не відповідь, і ми повинні використовувати це як останній варіант.
Йонас

Я отримую те, Access is denied.коли запускаюсь, C:\WINDOWS\system32>LxRun.exe /uninstallнавіть якщо сеанс cmd запускається "як адміністратор". Будь-які ідеї?
Фредрік

18

Виправлено це.

Побіг:

apt-get remove upstart

потім

apt-get remove udev

потім

apt-get autoremove

і все це, здається, працює зараз.


1
Потрібно встановити, коли я встановив x11 (занадто нова версія) ... btw x сервер повинен працювати у Windows, а не в підсистемі linux. а потім ви пересилаєте програму, запустивши DISPLAY = 0: firefox
Майк Пенгеллі

9

Офіційна відповідь від Microsoft

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 --назва --add / sbin / initctl

ln -s / bin / true / sbin / initctl

Я спробував це сам, і, схоже, він працює досить добре.


6

Ось більш цілеспрямоване рішення. Створіть сценарій з назвою /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) із наступним вмістом:

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

Зберегти та вийти ( Ctrl+ O Ctrl+ X). Позначте сценарій як виконуваний ( chmod +x /usr/sbin/policy-rc.d). Цей сценарій говорить dpkgне намагатися запускати udevабо systemd-logind.

Тоді ви зможете виконати попередньо невдалий dpkgкрок налаштування ( dpkg --configure -a).


2
Це відповідь, яку можна було б покращити, пояснивши, що сталося , що насправді було "якось" у питанні та як ця серія кроків вирішує це. Ось один вказівник для використання. Ось ще одна .
JdeBP
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.