wsl2安装及一些使用技巧

适用于Linux的windows子系统的安装及使用(WSL2 GUI)

1 概要

WSL是windows推出的可让开发人员不需要安装虚拟机(vmware,virtbox)或者设置双系统启动就可以原生支持运行GNU/Linux的系统环境,简称WSL子系统。

目前最新的版本是WSL2,在原先的基础上提高了文件系统的性能并添加了完全的的系统调用支持。WSL2使用全新体系架构使其能真正的运行一个Linux内核。

在基于最新的WSL2上,现在已经完全集成了在wsl2中的桌面体验,意味着可以在Windows上运行Linux GUI应用程序(X11和Wayland)。目前在本篇编写阶段WSL2 GUI还处于预览版阶段,故如果需要使用WSL2 GUI功能还需要加入Windows 预览体验版计划并更新Windows系统。

根据上述可知,使用WSL2我们可以安装ubuntu,arch Linux等一些流行的Linux发行版。并且由于是Windows原生支持的子系统功能,所以可以使用最少的资源和开销运行ubuntu,配合VS Code远程拓展功能,开发者用户体验大幅提升。

2 安装WSL2

2.1 先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。

备注:检查Windows版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。 可通过选择“开始”>“设置”>“Windows 更新”>“检查更新”来更新到最新的 Windows 版本。

2.2 启用虚拟机平台和 Linux 子系统功能

  1. 以管理员权限启动PowerShell或者cmd,然后输入以下命令启用虚拟机平台:

    $ Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
    
  2. 以管理员权限启动 PowerShell或者cmd,然后输入以下命令启用 Linux 子系统功能:

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

在以上每一步命令执行完之后,PowerShell 中可能会提示你重新启动计算机。按“Y”可以重新启动。
wsl install

  • 也可以使用控制面板来启用“适用于 Windows 的 Linux 子系统”:在这里插入图片描述

2.3 安装一个Linux发行版

打开微软商店应用,在搜索框中输入“Linux”或者“ubuntu”然后搜索,你可以看到搜索结果中有很多的 Linux 发行版可以选择。选择一个你喜欢的 Linux 发行版本然后安装:
wsl store
注意1:有可能启动ubuntu报告WslRegisterDistribution failed with error: 0x800701bc是因为没有升级linux内核使用wsl --update下载更新即可。
注意2:在商店安装后并没有完全完成Linux子系统安装,还需要运行一次Linux系统来完成内核下载以及用户名密码的设置:(或者在windows的搜索中直接搜索刚刚安装的ubuntu则会显示已下载的发行版,运行它)
wsl run

2.4 启动WSL2

注意必须满足先决条件

使用命令行PowerShell或者cmd查看已安装的Linux子系统:

$ wsl -l

如果提示 wsl 不是内部或外部命令,说明你没有启用“适用于 Windows 的 Linux 子系统”,请先完成"2.2章节步骤"。

使用wsl --set-version <Distro> 2命令可以设置一个Linux发行版的WSL版本,<Distro>为刚刚wsl -l查询到的名字"Ubuntu-20.04":

$ wsl --set-version Ubuntu-20.04 2

也可以使用如下命令设置为每个安装的发行版默认WSL2启动:

$ wsl --set-default-version 2

2.5 启用WSL2 GUI功能

在目前最新的WSL2支持中,可直接在WSL2的Linux系统中运行Linux GUI应用程序,主要是Windows对X11和Wayland的支持:wsl gui support

注意:需要使用 Windows 11 内部版本 22000或更高版本才能访问此功能。 要获取最新的预览版,请加入 Windows 预览体验计划

根据上述描述,windows用户需要先加入Windows预览体验计划并更新系统后即可默认使用WSL2 GUI功能。在本文编写期间还是需要加入预览计划才能使用此功能,可能后面不久即可直接使用此功能而不需要加入预览计划。

2.6 快捷启动wsl2

可将WSL2应用固定到Windows任务栏或者启动菜单中以便快速启动wsl2。windows任务栏

3 WSL2 ubuntu使用技巧

3.1 导入导出Linux发行版

通过使用tar文件导入导出Linux发行版,可使其在任意地方安装Linux发行版或者共享自己的Linux发行版:

  1. 查看已安装的Linux发行版

    $ wsl -l --all -v
    

    wsl -l --all -v

  2. 导出Linux发行版tar文件到D盘

    $ wsl --export Ubuntu-20.04 d:/wsl-ubuntu-20.04.tar
    
  3. 注销当前Linux发行版

    $ wsl --unregister Ubuntu-20.04
    
  4. 重新导入并安装WSL2到D盘

    $ wsl --import Ubuntu-20.04 d:/wsl-ubuntu-20.04 d:/wsl-ubuntu-20.04.tar --version 2
    
  5. 设置默认登录用户为安装时用户名

    $ ubuntu2004 config --default-user USERNAME
    
  6. 共享Linux发行版
    此时导出的wsl-ubuntu-20.04.tar文件即可共享给任何使用wsl2的开发人员使用。在协同开发中使用更多,为每个开发者提供一致统一的开发环境。

3.2 更新Linux发行版国内镜像源

启动wsl2后,可根据国内镜像源修改/etc/apt/sources.list文件更新国内镜像源。

这里推荐一个清华大学的镜像源地址https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/,里面可根据安装的ubuntu版本选择对应的镜像源,如21.04,20.04 LTS,18.04 LTS。

修改/etc/apt/sources.list后执行以下命令更新源和所有应用程序。

$ sudo apt-get update
$ sudo apt-get upgrade

3.3 使用VS Code连接到WSL2 Linux发行版

Visual Studio Code 以及 Remote - WSL 扩展使你能够直接从 VS Code 使用 WSL 作为实时开发环境。 可以:

  • 在基于 Linux 的环境中进行开发
  • 使用特定于 Linux 的工具链和实用程序
  • 从 Windows 轻松地运行和调试基于 Linux 的应用程序,同时保持对 Outlook 和 Office 等生产力工具的访问
  • 使用 VS Code 内置终端来运行选择的 Linux 发行版
  • 利用 VS Code 功能,例如Intellisense 代码完成linting调试支持代码片段单元测试
  • 使用 VS Code 的内置 Git 支持轻松管理版本控制
  • 直接在 WSL 项目上运行命令和 VS Code 扩展
  • 在 Linux 或已装载的 Windows 文件系统(例如 /mnt/c)中编辑文件,而无需担心路径问题、二进制兼容性或其他跨 OS 难题

在VS Code插件中搜索remote关键字,安装Remote Development插件即可安装所有远程插件,包括:SSH,WSL,Docker。

在Linux发行版的命令行中输入code .即可在Windows端启动VS Code并自动远程连接到WSL2中。如果首次启动VS Code还会在WSL2中安装一些必要依赖包。

注意:所有需要的文件和安装在WSL2中的插件都在~/.vscode-server文件夹下面

3.4 WSL2与Windows之间共享文件或者文件夹

由于WSL2为Windows原生支持的子系统所以无需设置即可直接共享目录等。

  1. Windows中直接访问WSL2中的文件或文件夹
    直接在Windows的资源管理中即可直接访问WSL2中的目录:
    mnt1
  2. WSL2中直接访问Windows中的文件或文件夹
    在WSL2中所有的磁盘已被挂载到了Linux发行版中/mnt目录下,在此目录下默认会把Windows中所有已挂载的盘也映射到/mnt目录下:/mnt2
    小技巧:可在Windows中指定位置创建一个share文件夹,在WSL2使用ln -s /mnt/xx/share ~/share方式可快速在Windows和wsl2中共享文件。

3.5 WSL2的一些配置

一些关于WSL2的配置可参考https://docs.microsoft.com/zh-cn/windows/wsl/wsl-config,其中包括一些cpu核数,文件系统大小,内存大小,网络等配置,具体可根据需要查看,一般默认即可。

某些情况下,可能需要暂时禁用 wsl 使用的虚拟化特性,使其其他虚拟化工具可以使用硬件虚拟化功能,下面两个命令提供了 wsl 使用硬件虚拟化的禁用与启用命令

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

4 总结

对于一个开发人员,Linux的使用是必不可少的,在没有WSL之前我们的开发可能是双系统启动,也可能是使用虚拟机vmware,virtbox等安装一个Linux发行版。但由于双系统的不便捷性,虚拟机的性能和稳定性问题,导致开发环境的使用不便。在有了WSL2和VS Code的远程拓展支持后,一切Linux的开发都变得更加简单了,我们可以直接在Windows中使用到各种Linux发行版,并且由于Windows的支持,性能和稳定性方面可以得到最好的保证,配合VS Code的远程拓展功能,即可在VS Code中连接到Linux发行版中的项目文件目录里去,直接查看和编写代码,配合git插件,自带的终端等支持,大大提高开发效率。

对比Ubuntu的使用,WSL2现在也对Linux GUI应用程序进行了支持,使得WSL2的使用已经完全接近原生ubuntu体验。并且对于团队开发来说,开发环境不一致等问题也会导致团队效率的降低,而使用WSL2导出一个共享tar文件即可每个人拥有完全相同的开发环境。

5 参考链接

微软官网:适用于 Linux 的 Windows 子系统文档

CSDN博客:win10 wsl2修改默认安装目录到其他盘

CSDN博客:如何在 Windows 10 中安装 WSL2 的 Linux 子系统

  • 68
    点赞
  • 313
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值