在WSL2的Ubuntu里配置systemd
在WSL2里,Linux发行版默认是不配置systemd的。但是很多东西都需要这个服务,例如Docker。本文将会演示如何配置Ubuntu 20.4下的systemd
安装开启需要的软件
得益于genie项目,在WSL2启动systemd成为了一件比较简单的事情
确认版本
输入下面的命令确认你在用wsl2
1 | wsl -l -v |
如果显示下面的结果就是wsl2
如果显示的是1的话,使用下面的命令变成wsl2
1 | wsl --set-version Ubuntu 2 |
安装软件
进入WSL,输入下面的命令添加软件源并安装genie
1 | wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg |
完成设置
由于Ubuntu systemd启动时会加载一些不必要的服务导致启动卡顿,首先需要对服务进行配置
有问题的服务列表可以到这里找到
开始设置之前
需要将target更改为multi-user
1 | systemctl set-default multi-user.target |
首先我们需要重启wsl并尝试启动systemd
1 | wsl --shutdown |
这时候将会尝试启动systemd服务并进入genie的沙盒环境中,首次启动将会非常慢。启动进入之后将会打印出有问题的服务,可以按照下面的步骤进行配置
ssh.service
1 | sudo ssh-keygen -A |
systemd-remount-fs.service
可以简单的使用下面的命令修复,需要先确认一下你的设备位置是不是/dev/sdb
1 | sudo e2label /dev/sdb cloudimg-rootfs |
multipathd.service
1 | sudo systemctl disable multipathd.service |
完成上面的步骤之后重启wsl并进入沙盒环境就能看到systemd已经正常可用
自动启动
在你的~/.profile
末尾加入下面的命令
1 | # Are we in the bottle? |
这样每次进入wsl你都会进入到带systemd的环境中了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 RainChan的小博客!
评论