(使用WSL ubuntu应用程序)系统尚未作为初始系统(PID 1)启动。无法操作

时间:2018-10-02 07:51:27

标签: docker ubuntu windows-subsystem-for-linux

我是Ubuntu的第一个用户。我未能在wmware中安装Ubuntu,因此在Microsoft应用商店中安装了Ubuntu应用程序,一切都很好。 但是,当我插入shutdown或halt命令关闭我的ubuntu电源时,我一直在获取“系统尚未作为初始系统(PID 1)被引导。无法操作”错误消息。

我尝试使用带有此链接(https://blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows/)的docker following,但多次进入2号进程后失败。我不确定我的失败是因为安装了Docker收费箱而不是普通的收费箱。 (我的计算机只是Windows10。不是Windows Pro)

我认为我必须尝试其他事情。如果您不介意我问,我该如何解决这个问题?

(还有一个。如果我只单击右侧顶部的“ X”按钮,与使用“停止”或“关闭”命令关闭Ubuntu有所不同吗?

谢谢

2 个答案:

答案 0 :(得分:1)

首先,通过MS Store安装的Ubuntu正在使用WSL(Linux的Windows子系统)技术。这仅表示没有虚拟化,Windows和Linux内核并存(Linux内核尚未完全实现)。

因此,如果您试图“ 关闭您的Ubuntu ”,您将像Windows一样关闭整个计算机。但是在这种情况下,WSL显然没有这样做的权利。

换句话说,您可以像其他任何终端一样查看Ubuntu bash窗口,例如CMD或PowerShell。

在WSL(Ubuntu)中启动程序时,您也可以在Windows Task Manager中看到它-只是一个证明,它没有虚拟化。

关于docker: 如果我没有记错的话,Windows 10 Home不会提供Hyper-V虚拟化。这意味着您必须使用另一种,例如通过使用VirtualBox。为了使其正常工作,我建议您遵循this tutorial,尤其是对于VirtualBox,请检查此答案here

希望它会有所帮助:)

答案 1 :(得分:0)

我发现这很有用:AkFXParameterChangeHandler

就我而言

# start docker using systemctl
sudo systemctl docker start 
# returns: 
# 
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

基本建议是:

# check if your system is using `systemd` or `sysvinit`
ps -p 1 -o comm=

如果该命令未返回systemd,而在我的情况下为WSL上的Ubuntu-20.04,则该命令返回init,然后使用命令模式

# start services using sysvinit
service docker start

这对我有用。