Featured image of post 漫谈在Windows Server 2019中安装使用WSL

漫谈在Windows Server 2019中安装使用WSL

《漫谈在Windows Server 2019中安装使用WSL》发表于《今日头条》,Rambling about installing and using WSL on Windows Server 2019

💁🏻‍♂️《今日头条》 2020-11-02 《漫谈在Windows Server 2019中安装使用WSL》 童建平

熟稔IT历史的朋友一定不会忘记98蓝屏事件:时任微软CEO的比尔·盖茨和助理 Chris Capossela在1998年春季计算机分销商展会(COMDEX )现场演示Windows 98的"即插即用"(plug-and-play)新特性时,经历了演示计算机当场冷不丁甩出蓝屏死机(Blue Screen of Death,简称BSOD)界面的尴尬一幕:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

尽管微软极力想要化解其中的尴尬,但该事件还是在该公司的历史上留下了难以抹去的一笔。蓝屏死机几乎已经成为了微软Windows操作系统的标志。

那么,作为从业IT的您,如果是一名运维工程师,当你正在紧急处理线上故障时,突然办公电脑蓝屏死机了;又亦或您是一名程序猿,正在专注"写bug"时,也BSOD了,这是多么令人崩溃的事情啊。所以,拥有一个稳定的操作系统,是您的不二选择。

笔者自从Windows Server 2000以来,一直用Windows Server系列产品作为办公操作系统,深谙其利:

  • Windows Server系列一般基于同时期的Windows家庭版开发而来,拥有相同的内核,如Windows Server 2012就是一套基于Windows 8基础上开发出来的服务器版系统,Windows Server 2019则基于Windows 10。如果您细心,会注意到很多Windows Update更新文件,Windows Server系列与Windows家庭版系列其实是相同的文件。所以使用Windows Server系列不会对您的日常办公带来什么不便。
  • 作为办公用途,我们一般不需要华丽的Windows家庭版界面、多余的多媒体等功能,所以使用Windows Server系列作为办公操作系统完全适合,且能带来更高的稳定性(如基本告别蓝屏死机)、安全性。
  • Windows Server系列在内存管理和网络功能等方面要比Windows家庭版系列表现优秀,要求的硬件配置也更低(比如使用Windows 7最低内存要求为4G,Windows Server 2008 R2最低内存要求仅为512M),也就意味着同等硬件配置情况下,使用Windows Server能使用更大的内存等资源,带来更高的工作效率。
  • 不管您是运维工程还是程序猿,是不是经常在工作中需要搭建测试环境用于日常工作调试?在Windows Server系列上安装这些测试环境自然比在Windows家庭版系列上安装使用更便捷高效及稳定。

因此,笔者极力推荐各位安装使用Windows Server系列最新版本Windows Server 2019用于办公,再配合安装使用WSL,可以告别以前在办公电脑上还要安装虚拟机安装LNMP等测试环境的窘境了。

大家知道,Windows 10推出了备受推崇的WSL。WSL,即Windows Subsystem for Linux,中文名称:适用于Linux的Windows子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。如今,Windows Server 2019在版本1709及更高版本上也可以安装使用WSL了。

启用WSL,您可以:

  • 选择您偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux。
    • 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

要在Windows Server 2019上使用WSL,首先需要确定您的系统版本大于1709,可按下面步骤确定您的操作系统版本:

①在开始菜单中点击Windows Powershell进入,或者在开始菜单中磁性贴中点击Windows Powershell进入,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

②输入Powershell命令:

1
Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

③稍等几秒,系统输出结果,如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
WindowsProductName : Windows Server 2019 Datacenter

WindowsVersion : 1809

WindowsInstallationType : Server

OsServerLevel : FullServer

OsVersion : 10.0.17763

OsHardwareAbstractionLayer : 10.0.17763.1131

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

上面的WindowsVersion的值即为您的系统版本。图中值为1809,满足WSL安装要求。

然后继续在上面的Powershell窗口中输入如下命令启用WSL:

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

回车后, 稍等几秒,会提示您选择并重启计算机,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

输入y或直接回车,电脑立即重启。重启后即成功启用了WSL。

接下来,就是选择下载并安装您喜欢的Linux发行版,在Windows 10下可以通过Microsoft Store应用直接下载安装,在Windows Server 2019中Microsoft Store应用不可用,可以通过以下网址来下载并手动安装Linux发行版:

然而,需要注意的是,如上个别发行版如Kali Linux并不适合于Windows Server 2019,因为Kali Linux需要运行在WSL 2上面,而目前Windows Server 2019是运行在WSL上的,除非您安装使用Windows Server 2019 Insider Preview版本,才能支持WSL 2。WSL 2 是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Windows 运行ELF64 Linux二进制文件,WSL 2 仅适用于Windows 10 版本1903、内部版本18362或更高版本。如果您试图强制在Windows Server 2019上安装使用Kali Linux,将不幸遭遇本文文首所述的BSOD。

现在,以Ubuntu 16.04为例,我们通过Powershell下载此发行版:

1
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx –UseBasicParsing

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

回车后开始下载,取决于您的下载速度,可能费时很长,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

有可能就遇到下载失败了,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

这时候,为方便查看下载进度,我们改用curl命令进行下载:

1
curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604

也是失败,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

于是再改成下载更新版本的ubuntu:

1
curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804

下载速度就很快了,5分钟左右就完成下载了,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

然后对下载后ubuntu-1804.appx文件进行重命名,并解压到当前目录的ubuntu1804子目录下:

1
2
3
Rename-Item ubuntu-1804.appx ubuntu-1804.zip

Expand-Archive ubuntu-1804.zip ubuntu1804

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

然后继续输入下面命令切换到解压后的目录,并启动运行ubuntu:

1
2
3
cd ubuntu1804

ubuntu1804.exe

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

很不幸,您将看到如下错误提示:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

解决的方法有2个,1个是按照错误提示中所述手工键入".\ubuntu1804.exe",或键入字母"u"再按Tab键也会自动填充".\ubuntu1804.exe"命令。

另1个方法是使用如下PowerShell命令将您的分发版路径添加到Windows环境路径(在本例中为 C:\Users\Administrator\Ubuntu1804)中:

1
2
3
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")

[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Ubuntu1804", "User")

如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

只是,第2个方法因为是修改系统变量,需要关闭原有窗口并重新启动PowerShell或者重启下计算机。重启后,就可以在任意路径下直接通过键入".\ubuntu1804.exe"命令启动您的分发版,然后稍等片刻等待系统完成初始化。如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

之后,按照提示输入要创建的用户名和密码,即成功登录ubuntu系统,如下图:

漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019

这样您就可以开始愉快的utuntu之旅了,在上面安装LNMP等环境,这里就暂不赘述了。喜欢本文的朋友,欢迎点赞、关注、评论哦!笔者后续将继续介绍在WSL下安装centos等发行版,敬请期待!