【WSL2启用systemd支持(一个配置即可)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、systemd是什么?
  • 二、备份数据
    • 1.归档
    • 2.备份分支
  • 三、准备工作
    • 1.内核升级
  • 四、修改配置
  • 总结


前言

很长一段时间WSL2的启动方式并不是systemd,由于ubuntu、debian、centos等一众分支都切换到systemd了,导致使用起来有些不方便,之前一个大神演示了wsl2上启用systemd,我按照他说的做成功了,但是这个方法并不完美,它会导致wsl-gui不能使用,要知道wsl2的一个重磅功能就是gui,有没有方法能既使用systemd,又保留systemd呢?别急,两行配置叫你解决,请仔仔细细看完,最好不要跳过,不然可能引发不可挽回的错误。


一、systemd是什么?

systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。

与多数发行版使用的System V风格init相比,systemd采用了以下新技术: (1) 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能; (2) 用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

二、备份数据

这个不用我多说了吧,数据无价,一旦操作失误可能数据就永远丢了。这里有两种方法教你备份数据。

1.归档

这是最简单的方法了,但是绝对有效。使用tar+gzip或者zip等工具将数据归档压缩并拷贝出来。或者直接干脆只归档不压缩。

tar -zcf backup.tar.gz <你的目录>

2.备份分支

这个方法我在我的另一篇博客里详细介绍了,将整个分支备份还原。优点是两句话搞定,数据和系统配置原封不动保存下来,推荐这个方法。

WSL2备份还原

方法很多,这里介绍最简单常用的方法,主要还是备份,切记!!!

三、准备工作

我先贴出我的内核版本,我这个内核版本成功了,其它的由于时间问题没有一一尝试,如果有问题可以在下面评论,我们一起看下。

Linux DESKTOP-G21E46A 5.15.68.1-microsoft-standard-WSL2 #1 SMP Mon Sep 19 19:14:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

我习惯性地把内核版本升级到最新,所以很多测试都是基于内核最新版的。

1.内核升级

如果和我的内核一样就不用这个步骤了,如果不一样就按照下面的操作来。

wsl --shutdown #杀死分支

接下来的操作需要administrator权限(俗称管理员权限),先使用管理员权限打开一个powershell,然后输入下面的指令等待升级完成,如果失败检查网络问题,或者多试几次。

wsl --update

四、修改配置

在/etc/下面增加一个wsl.conf文件,这个操作需要sudo权限,文件里面输入下面的内容:

[boot]
systemd=true

保存退出,并执行wsl --shutdown,重新进入wsl

切记一个字都不要错,否则可能导致wsl进不去,所以备份很重要

【WSL2启用systemd支持(一个配置即可)】_第1张图片

是不是感到一种亲切感涌上心头,接着我们测试下gui还能不能正常使用,打开gedit:

【WSL2启用systemd支持(一个配置即可)】_第2张图片
好了,systemd和gui都正常,这才是真正的linux。


总结

方法蛮简单的,主要是微软和systemd的开发团队合作之后新增的功能,配置也极为简单。之前某大神也搞出来一个教程,但是会导致gui失效,我没有找出来解决方法,就废弃了那个方法。
这个方法目前来看应该是完美方案了,不过细化的功能我没有来得及测试,感兴趣的可以都测试下,有问题欢迎讨论。

你可能感兴趣的:(ubuntu,linux,wsl,1024程序员节,ubuntu,linux,bash,运维)