Windows10/11 安装Linux子系统,并在Windows下无缝运行Linux GUI应用

本功能支持在Win11或者Win10 Build 21364及以上版本使用!!!!

  1. 打开“启用或关闭Windows功能”菜单,勾选“Hyper-V”、“虚拟机平台”、“适用于Linux的Windows子系统”,如下图:
  1. 在管理员权限的命令行下进行WSL升级将WSL升级到WSL2;
wsl --update
wsl --shutdown

如不存在WSL,则下载并安装WSL2,点击这里下载WSL2;

  1. 设置默认使用WSL2进行安装;
wsl --set-default-version 2
  1. 安装专用显卡驱动;
    To run Linux GUI apps, you should first install the preview driver matching your system below. This will enable you to use a virtual GPU (vGPU) so you can benefit from hardware accelerated OpenGL rendering.
    Intel GPU driver for WSL
    AMD GPU driver for WSL
    NVIDIA GPU driver for WSL
  1. 在Microsoft Store搜索Ubuntu并安装Ubuntu20.04;默认安装路径为:C:\Users\UserName\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\,Linux的文件系统在Windows中是个镜像文件,启动系统后,Linux文件系统被映射到了 \\wsl$\系统名 下,如:\\wsl$\Ubuntu-20.04\,Windows的磁盘被挂载到了Linux系统的/mnt下,可以直接访问;
  1. 使用工具LxRunOffline将Linux子系统镜像文件迁移到非Windows系统盘;
    迁移前,使用命令wsl –shutdown关闭所有正在运行的Linux子系统;
    在LxRunOffline目录下按住SHIFT并右键鼠标,选择“在此处打开Powershell窗口”,进入命令行界面后输入.\LxRunOffline list即可查询目前本机存在的Linux子系统以及位置;使用.\LxRunOffline move进行迁移 , -n 指定你要迁移的系统名 ,-d 指定迁移系统镜像的目标路径,等待命令行允许完毕,则系统镜像迁移完成;
  1. 打开“Windows终端”或者“Powershell”,在命令行中输入bash命令,即可进入Linux Bash命令行;
  1. 在Linux Bash命令行中将Ubuntu的软件源修改成国内镜像;清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/;
    将清华大学镜像内容复制并覆盖到/etc/apt/sources.list文件中;
    Linux Bash命令行允许sudo apt update进行软件源更新;
  1. 在Linux Bash命令行中可如普通Ubuntu系统一样进行软件安装,并可正常打开Linux GUI应用。

附录:

  1. 运行或停止子系统:
wsl -d Ubuntu-20.04 #运行子系统
wsl -l --running #查看运行中的子系统
wsl -t Ubuntu-20.04 #停止子系统
wsl --shutdown #停止所有子系统
  1. 备份/删除/还原子系统:
wsl --export Ubuntu D:\temp\Ubuntu-20.04.tar #备份子系统,备份前应先停止子系统
wsl --unregister Ubuntu-20.04 #删除子系统
wsl --import Ubuntu-20.04 D:\WSL D:\temp\Ubuntu-20.04.tar #还原子系统
ubuntu2004.exe config --default-user jay  #还原后系统默认用户为root用户,使用此命令设置默认用户为jay,ubuntu2004.exe为具体的发行版执行程序名称

参考资料:
Run Linux GUI apps with WSL | Microsoft Docs

工具软件:
http://resources.jay.sh.cn/software/LxRunOffline-v3.5.0-11-gfdab71a-msvc.zip