前言

作为开发者,在Linux下确实要比Windows方便许多,就比如Docker、Redis等工具天生就没有原生Windows版本,在Windows或即使Mac下开发,也是非常麻烦,需要使用类似虚拟机。此外在Windows下编译各种程序,执行各种脚本,执行效率也要比Linux低不少。例如同一个Java程序使用Maven编译,Windows下需要至少20秒,而Linux只要6秒即可编译完成。

目前使用Linux作为工作环境,优点固然明显,缺点也非常突出,首先国产软件有一大批还不支持Linux,比如微信、QQ,就需要使用到类似Wine的工具,模拟Windows环境才能执行,非常麻烦。

另外使用双系统,会大量占用磁盘空间,例如500G的固态硬盘,至少要划分给Linux 100G作为系统盘。个别程序如果在Linux下模拟Windows环境不方便,还需要重启切换系统才能正常使用。

综上所述,急需一个在Windows内执行Linux,并且保证Linux内核完整,而且不过渡占用磁盘,最重要的是效率特别突出的方案。目前最合适的就是今天要折腾的 WSL2 ,全称是 Windows Subsystem for Linux ,可以理解为 Windows子系统Linux ,区别于虚拟机中执行Linux,拥有更好的兼容性,磁盘数据互通,且更高的执行效率


燃鹅,在我最后体验完WSL2后,我觉得上面说的这些全部需要推翻!原因我写到了最后!



准备


具体步骤可以参考官网
https://docs.microsoft.com/zh-cn/windows/wsl/install

首先得到一个提示,Windows版本必须高于2004
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。


Windows键 + R 运行命令 winver
可以查看当前版本是否满足
我这里显然是1909,不满足2004
(如果你的系统满足要求,则直接跳到本文第三章 折腾环节即可)


我的笔记本是买来到手就强制禁用了Windows自动更新的,因为特别恶心各种强制更新,关机重启更新等智障设计。由于一不小心这个强制禁止更新,有点过于强制,过于彻底,已经无法再次开启Windows的更新,导致不能用系统内设置里的更新来解决问题。具体如图


设置更新系统
报错 0x80070422

安装更新时出现一些问题,但我们稍后会重试。如果你继续看到此错误,并且想要搜索 Web 或联系支持人员以获取相关信息,以下信息可能会对你有帮助: (0x80070422)


手动开启 Windows Update 服务
会报 拒绝访问



所以我这里直接用Windows官方出品的一个外部程序来更新系统,Windows易升,地址如下,这里点击立即更新按钮,会下载Windows易升程序
https://www.microsoft.com/zh-cn/software-download/windows10




下载完成后执行,一路下一步即可,会自动下载最新系统更新包,速度略慢,大约需要 30 ~ 60 分钟


结束以后会要求重新启动,如果没有需要保存的数据,点立即重新启动 ,一共需要大约 30 ~ 90 分钟


重启以后在此查看系统版本
右击我的电脑 - 属性 也可以查看
已经升级到了21H2



折腾


系统版本符合要求以后,开始折腾,再看文档下一步
https://docs.microsoft.com/zh-cn/windows/wsl/install

右击开始按钮,选择 Windows PowerShell(管理员)


在PowerShell中输入命令

  1. wsl --install


安装官方的说法能一次成,我这里遇到一点小波折,wsl安装正确,但ubuntu显示下载失败,于是就只有wsl没有linux内核
于是我根据官网提示按照后面的方法更新wsl再安装ubuntu

  1. # 更新wsl到最新版本
  2. wsl --update
  3. # 强制重启wsl以生效新版
  4. wsl --shutdown
  5. # 获取可以选择的linux发行版
  6. wsl -l -o
  7. # 选择ubuntu(我这里看到的列表基本都是debian系,选ubuntu因为相对最方便)
  8. wsl --install -d ubuntu


最终看到这个界面说明ubuntu安装完毕


到这里,你就已经在一个无图形界面的ubuntu的系统里了,可以进行一些简单的Linux命令操作。
至于有什么用,除了docker以外还真说不上来有什么用。
即使docker我也还是更喜欢老办法,用VirtualBox

END

然后我就反手一套停止删除清空连招全部删完了
这玩意居然没有图形化?
还需要用软件远程图形化?
而且完全看不出比Oracle VM VirtualBox 里面跑Docker 好在哪

债见!