Win的linux子系统

komantao 2020-03-04 2020-03-04 字数 2302 阅读量


一、概述

官方文档:Microsoft Docs中的适用于 Linux 的 Windows 子系统文档

Windows 10的Linux子系统有2个版本:WSL(Windows Subsystem for Linux)和WSL 2(Windows Subsystem for Linux 2)。WSL/WSL 2提供了一个从 0 到 1 的解决方案,不必为了某些细微功能而专门开个虚拟机。WSL/WSL 2兼容性差影响体验,如果真的追求性能,应该直接使用虚拟机甚至实机。

WSL WSL 2
版本 Windows 10 Windows 10 build 18917
机制 运行时将Linux System Call翻译为NT API调用,在NT内核基础上模拟实现Linux内核 使用Linux内核(基于Linux 4.19)在一个轻量级的虚拟机(基于Hyper-V)中运行完整的Linux
功能 WSL的功能比WSL 2的弱很多 WSL 2缺失一些原生Linux的功能,例如:没有声音、不能访问本机系统的USB设备、网卡管理相关功能不全等
文件 直接使用Windows文件系统,目录名为**\rootfs** 使用虚拟磁盘,盘名为ext4.vhdx

WSL/WSL 2与VMware虚拟机有冲突,只能二选一。

1、安装WSL/WSL 2

  • WSL

    【控制面板】—【程序】—【程序和功能】— 点击左侧的“启用或关闭Windows功能” — 勾选“适用于Linux的Windows子系统” — 点击确定 — 安装完毕,重启电脑。

  • WSL2

    1. 启用“Windows 虚拟机监控程序”、“Hyper-V”、“虚拟机平台”、“执行Linux程序的Windows子系统”

      【控制面板】—【程序】—【程序和功能】— 点击“启用或关闭Windows功能” — 勾选“Hyper-V”、“虚拟机平台”和“执行Linux程序的Windows子系统” — 点击确定 — 安装完毕,重启电脑。

    2. 设置版本支持

      在PowerShell中运行:

      wsl --set-version Distro 2
      
      • Distro是Linux发行版的实际名称(查看命令:wsl -l
      • 2是指WSL 2;若为“1”时,是指WSL 1
      • 每个Linux发行版都可以作为WSL 1或WSL 2发行版运行,并可随时进行切换

      设置WSL 2为默认架构(将安装的任何新发行版初始化为WSL 2发行版):

      PS C:\Users> wsl --set-default-version 2
      有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2  # 运行后的提示
      

查看Linux发行版使用的WSL版本:

   wsl --list --verbose   # 或 wsl -l -v

2、安装Linux发行版

  1. 下载Linux发行版

    电脑端的Microsoft Store(微软的应用商店)下载Linux的发行版,可以选择的版本少且是servers版(desktop版需要另外安装)。

    Ubuntu(示例)默认安装路径:C:\Program Files\WindowsApps\ CanonicalGroupLimited.UbuntuonWindows_1804.2019.521.0_x64__79rhkp1fndgsc。

    1569504445356

  2. 初始化Linux发行版

    安装Linux发行版后,需要初始化(注册)才能正常使用。

    Windows开始菜单 — 点击Ubuntu图标 — 首次运行自动进行注册(初始化环境):

    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username does not need to match your Windows username.
    For more information visit: https://aka.ms/wslusers
    Enter new UNIX username: komeny                     # 设置普通用户名
    Enter new UNIX password:                            # 设置普通用户的密码(盲打输入)
    Retype new UNIX password:                           # 重复普通用户的密码(盲打输入)
    passwd: password updated successfully
    Installation successful!
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
       
    komeny@LAPTOP:~$                            # 以“用户名@终端名:路径名”登录,标识符为$
    

    Ubuntu(示例)初始化后的安装路径:C:\Users\用户名\AppData\Local\Packages\ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState。WSL直接使用Windows的文件系统,目录名为**\rootfs**,WSL 2使用虚拟磁盘,盘名为**ext4.vhdx**。

    建议:Linux发行版注册后,通过“备份–注销–还原”方法,曲线改变初始化路径。

  3. 安装Linux发行版的desktop版

    若需要使用PyCharm,则必需安装desktop版。但在WSL/WSL 2环境下安装desktop版是一个激励人成长(慢慢体验各种不兼容的痛苦)的过程。

    放弃WSL/WSL 2和Hyper-V,直接使用VMware安装Linux发行版(选择desktop版)。

3、管理Linux发行版

Windows键+R,输入cmd回车打开命令行窗口输入命令行工具wsl的命令。

  • 列出系统中安装的Linux发行版名称,可以是一个或多个

    wsl -l
    适用于 Linux 的 Windows 子系统:
    Ubuntu (默认)
    

    备注:以下命令使用的Linux发行版名称来源于wsl -l显示的名称。

  • 备份:备份会自动关闭Linux发行版(或运行wsl --terminate Ubuntu):

    语法:wsl --export Linux发行版名称 将要导出的路径及名称

    wsl --export Ubuntu E:\backup\linux\Ubuntu-纯净版.tar
    

    等待备份成功后,Linux发行版会被打包成命令中指定的tar文件。

  • 注销:注销会自动关闭Linux发行版

    wsl --unregister Ubuntu
    

    只是注销Ubuntu的注册程序,仍然保留Microsoft Store下载的Ubuntu程序。在Windows开始菜单中,点击Ubuntu,将会再次进行初始化(注册)。完整卸载参考:卸载子系统

  • 还原

    语法:wsl --import 新的Linux发行版名称 新的Linux发行版注册路径 已备份的tar压缩文件

    wsl --import Ubuntu D:\Program\Ubuntu E:\backup\linux\Ubuntu-纯净版.tar
    

4、卸载Linux发行版

Microsoft Store下载软件的卸载方法:Windows开始菜单点击【设置】— 【应用】—【应用和功能】— 在右侧中搜索Ubuntu,点击“卸载”:同时卸载了Linux发行版的安装程序和注册程序。

参考资料

  • []()
  • []()
  • []()

操作环境

  • 操作系统:Win 10

感谢您的赞赏支持:

Copyright © 2020 komantao. All Rights Reserved.