Windows系统直接运行Linux,竟是如此简单

要想在Windows10以前的系统上,运行Linux程序是比较复杂的,需要使用cygwin之类的工具,不仅下载慢,而且功能有限,后来出现了诸如VirtualBox,VMWare Workstation和Microsoft Hyper-V之类的虚拟化软件,可以在windows上安装模拟一个完整的Linux系统,这样就可以直接在虚拟机中运行Linux程序。

微软从1703版本后,推出了WSL。也即将在2004版本中,推出基于Hyper-V技术的WSL2。

什么是WSL?

WSL(Windows Subsystem for Linux),它是Windows的Linux内核兼容性层。为了与即将正式上线的WSL2做区分,现在也称WSL为WSL1。

通过允许用户访问Linux bash命令行应用程序,使得许多Linux程序可以直接在Windows内运行。WSL 1允许Windows用户安装完整的Linux发行版,例如Ubuntu,openSUSE,Kali或Debian,不过值得注意的是,由于没有GPU支持,因此它无法直接执行GUI(例如Gnome,KDE等)。WSL1实际上也没有Linux内核,因此无法测试驱动程序或Linux内核扩展...也无法运行32位Linux应用程序.。

而WSL 2 是全新结构的WSL新版本,它支持 Linux 在 Windows 上运行 ELF64 Linux 二进制文件。这种新的体系结构改变了 Linux 二进制文件与 Windows 和计算机硬件的交互方式,但仍提供与 WSL 1相同的用户体验。单个 Linux 发行版可以作为 WSL 1 发行版运行,也可以作为 WSL 2 发行版运行,可以随时升级或降级,并且可以并行运行 WSL 1 和 WSL 2 发行版。WSL 2 使用的是真实 Linux 内核的全新体系结构

Windows系统直接运行Linux,竟是如此简单

安装WSL1

1. 右键开始按钮,以管理员身份打开 PowerShell:

Windows系统直接运行Linux,竟是如此简单

2. 输入下面的命令,并按下回车键:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Windows系统直接运行Linux,竟是如此简单

安装过程会提示是否重启计算机以完成操作,敲回车重启。

3. 重新启动后,您可以通过控制面板> 打开或关闭 Windows 功能来检查该功能是否安装成功。当然,也可直接在这里面开启Windows子系统,不需要命令开启。

Windows系统直接运行Linux,竟是如此简单

4. 接下来,您需要通过"开始"菜单转到 Windows 应用商店,并选择 Linux 发行版。我们将使用 Ubuntu,单击 Ubuntu 18.04 LTS 然后"安装"。

Windows系统直接运行Linux,竟是如此简单
Windows系统直接运行Linux,竟是如此简单

5. 安装后,"安装"按钮将更改为"启动",单击"启动"按钮。等待进一步安装后,窗口会提示输入 UNIX 用户名和密码,按照屏幕上的提示操作。

Windows系统直接运行Linux,竟是如此简单

6. WSL1 + Ubuntu环境就安装好了,并且将显示 bash 提示,您可以通过在开始菜单中打开"Ubuntu"来打开此提示。

安装WLS2

由于WLS2 与WLS相比,除了拥有“真正”的Linux内核外,文件系统速度更快外,还有一个重大改变就是基于Hyper-v技术,也就是说,运行WLS2的话,就需要开启Hyper-V,这样也就导致了其他第三方虚拟机像是VWWare就没办法运行了(VirtualBox 6.0+可以实现与Hyper-V共存),这也算是一个小小的遗憾。

1. 以管理员身份打开CMD或者Powershell,然后输入下方命令后,选择Y重启电脑

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

没有安装wsl 1的话,还需要:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Windows系统直接运行Linux,竟是如此简单

2.重启电脑后,以管理员权限运行cmd,然后输入

wsl -l -v

可以看到在Version下面显示是1, 这个就说明目前我们的WSL2还并未开启。

Windows系统直接运行Linux,竟是如此简单

3. 要升级到 wsl 2,在CMD中输入下方命令:

wsl --set-version Ubuntu-18.04 2

注意Ubuntu-18.04 是上一步中Name中显示的名称,如果你安装的不是Ubuntu 18.04,那么就需要填入对应的版本。

Windows系统直接运行Linux,竟是如此简单

如何访问Windows文件夹?

在WSL中,访问实际硬盘中的数据是非常方便的,默认情况下WSL已经挂载了Windows分区。

Windows磁盘的挂载点都已经自动的挂载。

在WSL中,输入cd /mnt/<磁盘盘符> 即可进入相应的分区。

比如访问磁盘C,就可以输入

cd /mnt/c/

即可进入C盘。