admin管理员组

文章数量:1130349

WSL 安装——在 Windows 中体验原生自然的 Ubuntu GUI(不使用虚拟机)

  • 一、安装之前,首先介绍如何卸载适用于 Linux 的 Windows 子系统
    • 1. 如何卸载Linux子系统?
    • 2. 如何完全卸载 WSL?
  • 二、[如何在 Windows 中使用 WSL 安装 Linux 子系统](https://learn.microsoft/en-us/windows/wsl/install)
    • 1. 在管理员 PowerShell 中
    • 2. 安装 WSL 并更改默认安装的 Linux 发行版
    • 3. 设置 Linux 用户名和密码
    • 4. 更新和升级包 `bash`
    • 5. WSL 迁移到非系统盘 `powershell`
    • 7. 解决 "wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理 。"(可跳过)
  • 三、运行 GUI 应用
  • 四、WSL 安装 Windows 字体
  • 五、[在 WSL 中使用 GPU 加速机器学习](https://docs.nvidia/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2)
  • 附录
  • 参考:

一、安装之前,首先介绍如何卸载适用于 Linux 的 Windows 子系统

1. 如何卸载Linux子系统?

  • 查看当前安装的 Windows 子系统 powershell

    wsl --list
    
  • 卸载当前安装的 Windows 子系统 (subsystem_name: 想要卸载的子系统名称) powershell

    wsl --unregister subsystem_name
    
  • 卸载成功,查看当前安装的 Windows 子系统,可以看到卸载掉的子系统已不存在。 powershell

    wsl --list
    

  • 最后在 “设置”>“应用”>“已安装的应用” 中卸载 Ubuntu

2. 如何完全卸载 WSL?

  1. 卸载 WSL powershell

    wsl --uninstall
    
  2. 在“设置”>“应用”>“应用和功能”。找到 Windows Subsystem for Linux,然后选择“卸载”。如果看到任何其他 WSL 组件(例如 WSL 更新或 WSLg 预览版),请以相同的方式卸载这些组件。

  3. 最后是卸载 WSL 核心文件,在搜索栏搜索“启用或关闭 Windows 功能”。向下滚动功能列表以查找并取消选择“适用于 Linux 的 Windows 子系统”选项。单击“确定”,然后重新启动计算机。

二、如何在 Windows 中使用 WSL 安装 Linux 子系统

1. 在管理员 PowerShell 中

  • 启用适用于 Linux 的 Windows 子系统 powershell

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

  • 启用虚拟机功能 powershell

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

  • 重启电脑

2. 安装 WSL 并更改默认安装的 Linux 发行版

  • 方法一 powershell
    安装 WSL 命令,使用命令安装 WSL 将默认设置为 WSL 2

    wsl --install
    
  • 方法二 powershell
    查看可安装的 Linux 发行版

    wsl --list --online
    

    指定安装 Windows 子系统版本

    wsl --install -d <Distribution Name>
    
  • 修改默认 WSL(一般并不需要修改) powershell

    wsl --set-default-version 2
    

3. 设置 Linux 用户名和密码

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开发行版(默认为 Ubuntu)。系统将要求您为 Linux 发行版创建用户名密码。

  • 用户名密码特定于您安装的每个单独的 Linux 发行版,与您的 Windows 用户名无关。

  • 请注意,输入密码时,屏幕上不会显示任何内容。这称为盲输入。您看不到自己输入的内容,这是完全正常的。

  • 一旦您创建了用户名密码,该帐户将成为您分发的默认用户,并在启动时自动登录。

  • 该帐户将被视为 Linux 管理员,具有运行(超级用户执行)管理命令的能力sudo

  • 在 WSL 上运行的每个 Linux 发行版都有自己的 Linux 用户帐户和密码。每次添加发行版、重新安装或重置时,您都必须配置 Linux 用户帐户。

4. 更新和升级包 bash

sudo apt update
sudo apt upgrade

5. WSL 迁移到非系统盘 powershell

默认情况下,WSL 会安装在C盘(系统盘),而C盘空间有限,随着 WSL 子系统的使用,C盘空间越来越少,最后有可能出现C盘不足导致 WSL 系统崩溃。有效的解决方法是,将 WSL 子系统迁移到其他盘(非系统盘)。

  • 查看 WSL 状态

    wsl --list
    
  • 关闭 WSL

    wsl --shutdown
    
  • 导出系统镜像

    wsl --export Ubuntu-22.04 E:\Ubuntu22.04\wsl-ubuntu22.04.tar
    
  • 注销原有系统

    wsl --unregister Ubuntu-22.04
    
  • 查看系统状态,是否注销成功。

    wsl --list
    
  • 导入系统

     wsl --import Ubuntu-22.04 E:\Ubuntu22.04\ E:\Ubuntu22.04\wsl-ubuntu22.04.tar
    
  • 迁移系统后,默认登陆用户会变为 root 用户,更改默认用户。

    # <wsl> config --default-user <username>
    ubuntu2204 config --default-user paop
    

7. 解决 “wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理 。”(可跳过)

在路径 “C:\Users<username>” 路径下创建文件 .wslconfig,将下面内容写入文件中:

[experimental]
autoMemoryReclaim=gradual    # gradual  | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

三、运行 GUI 应用

在 Windows 子系统上运行 Linux GUI 应用程序

直接下载相应的 GUI 程序即可,例如:

sudo apt install gedit -y
gedit

wget https://dl.google/linux/direct/google-chrome-stable_current_amd64.deb
google-chrome

# nautilus
# tilix

四、WSL 安装 Windows 字体

  1. 从 Windows 系统的字体文件夹拷贝字体到 Ubuntu 目录(例如:"/home/paop/Download/Fonts"):

    推荐字体:

  2. 新建字体存放目录 windows-font

    sudo mkdir /usr/share/fonts/truetype/windows-font
    
  3. 拷贝字体到 windows-font 目录下

    sudo cp /home/paop/Download/Fonts/* /usr/share/fonts/truetype/windows-font
    
  4. 修改权限并更新字体缓存

    sudo chmod -R 777 /usr/share/fonts/truetype/windows-font
    cd /usr/share/fonts/truetype/windows-font
    sudo apt install xfonts-utils -y
    sudo mkfontscale
    sudo mkfontdir
    sudo fc-cache -fv
    

五、在 WSL 中使用 GPU 加速机器学习

将NVIDIA Windows GPU 驱动程序更新到最新版本

最新的 NVIDIA Windows GPU 驱动程序将完全支持 WSL 2。借助驱动程序中的 CUDA 支持,现有应用程序(在 Linux 系统上的其他地方为同一目标 GPU 编译)可以在 WSL 环境中无需修改即可运行。

更新结束后,,您应该能够运行任何需要 CUDA 的现有 Linux 应用程序。请勿在 WSL 环境中安装任何驱动程序。要构建 CUDA 应用程序,您将需要 CUDA 工具包。

  • 首先,删除旧的 GPG 密钥:

    sudo apt-key del 7fa2af80
    
  • 使用 WSL-Ubuntu 包安装 Linux x86 CUDA 工具包 - 推荐

    CUDA WSL-Ubuntu 本地安装程序不包含 NVIDIA Linux GPU 驱动程序,因此按照WSL-Ubuntu 的CUDA 下载页面上的步骤,将能在 WSL 上安装 CUDA 工具包。

    注意可自行搜索需要的 CUDA 版本

    wget https://developer.download.nvidia/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
    sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget https://developer.download.nvidia/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
    sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
    sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    sudo apt-get -y install cuda
    
  • 配置环境

    gedit  ~/.bashrc
    

    在文件最后添加(注意版本):

    export PATH=/usr/local/cuda-11.8/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
    

    激活环境

    source ~/.bashrc
    
  • 查看安装的版本

    nvcc --version
    

附录

  1. 在安装 CUDA 前,建议将系统导出为压缩包作为备份。
  2. 使用不同的深度学习框架及框架版本,CUDA 版本需求也会有所差异,具体请查阅深度学习框架官方文档。
  3. 集成开发环境(IDE),官方建议使用 VSCode。
    在Windows中安装VSCode后,打开 WSL 终端,进入项目文件,执行 code . 可自动下载远程 WSL 所需要的工具并远程连接 WSL。
    (base) paop@Paop:~/projectCode$ code .
    
  4. 更多功能建议查看微软 WSL 文档。

参考:

[1]: 微软 WSL 文档
[2]: WSL 上的 CUDA 用户指南
[3]: Ubuntu安装Windows字体

WSL 安装——在 Windows 中体验原生自然的 Ubuntu GUI(不使用虚拟机)

  • 一、安装之前,首先介绍如何卸载适用于 Linux 的 Windows 子系统
    • 1. 如何卸载Linux子系统?
    • 2. 如何完全卸载 WSL?
  • 二、[如何在 Windows 中使用 WSL 安装 Linux 子系统](https://learn.microsoft/en-us/windows/wsl/install)
    • 1. 在管理员 PowerShell 中
    • 2. 安装 WSL 并更改默认安装的 Linux 发行版
    • 3. 设置 Linux 用户名和密码
    • 4. 更新和升级包 `bash`
    • 5. WSL 迁移到非系统盘 `powershell`
    • 7. 解决 "wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理 。"(可跳过)
  • 三、运行 GUI 应用
  • 四、WSL 安装 Windows 字体
  • 五、[在 WSL 中使用 GPU 加速机器学习](https://docs.nvidia/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2)
  • 附录
  • 参考:

一、安装之前,首先介绍如何卸载适用于 Linux 的 Windows 子系统

1. 如何卸载Linux子系统?

  • 查看当前安装的 Windows 子系统 powershell

    wsl --list
    
  • 卸载当前安装的 Windows 子系统 (subsystem_name: 想要卸载的子系统名称) powershell

    wsl --unregister subsystem_name
    
  • 卸载成功,查看当前安装的 Windows 子系统,可以看到卸载掉的子系统已不存在。 powershell

    wsl --list
    

  • 最后在 “设置”>“应用”>“已安装的应用” 中卸载 Ubuntu

2. 如何完全卸载 WSL?

  1. 卸载 WSL powershell

    wsl --uninstall
    
  2. 在“设置”>“应用”>“应用和功能”。找到 Windows Subsystem for Linux,然后选择“卸载”。如果看到任何其他 WSL 组件(例如 WSL 更新或 WSLg 预览版),请以相同的方式卸载这些组件。

  3. 最后是卸载 WSL 核心文件,在搜索栏搜索“启用或关闭 Windows 功能”。向下滚动功能列表以查找并取消选择“适用于 Linux 的 Windows 子系统”选项。单击“确定”,然后重新启动计算机。

二、如何在 Windows 中使用 WSL 安装 Linux 子系统

1. 在管理员 PowerShell 中

  • 启用适用于 Linux 的 Windows 子系统 powershell

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

  • 启用虚拟机功能 powershell

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

  • 重启电脑

2. 安装 WSL 并更改默认安装的 Linux 发行版

  • 方法一 powershell
    安装 WSL 命令,使用命令安装 WSL 将默认设置为 WSL 2

    wsl --install
    
  • 方法二 powershell
    查看可安装的 Linux 发行版

    wsl --list --online
    

    指定安装 Windows 子系统版本

    wsl --install -d <Distribution Name>
    
  • 修改默认 WSL(一般并不需要修改) powershell

    wsl --set-default-version 2
    

3. 设置 Linux 用户名和密码

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开发行版(默认为 Ubuntu)。系统将要求您为 Linux 发行版创建用户名密码。

  • 用户名密码特定于您安装的每个单独的 Linux 发行版,与您的 Windows 用户名无关。

  • 请注意,输入密码时,屏幕上不会显示任何内容。这称为盲输入。您看不到自己输入的内容,这是完全正常的。

  • 一旦您创建了用户名密码,该帐户将成为您分发的默认用户,并在启动时自动登录。

  • 该帐户将被视为 Linux 管理员,具有运行(超级用户执行)管理命令的能力sudo

  • 在 WSL 上运行的每个 Linux 发行版都有自己的 Linux 用户帐户和密码。每次添加发行版、重新安装或重置时,您都必须配置 Linux 用户帐户。

4. 更新和升级包 bash

sudo apt update
sudo apt upgrade

5. WSL 迁移到非系统盘 powershell

默认情况下,WSL 会安装在C盘(系统盘),而C盘空间有限,随着 WSL 子系统的使用,C盘空间越来越少,最后有可能出现C盘不足导致 WSL 系统崩溃。有效的解决方法是,将 WSL 子系统迁移到其他盘(非系统盘)。

  • 查看 WSL 状态

    wsl --list
    
  • 关闭 WSL

    wsl --shutdown
    
  • 导出系统镜像

    wsl --export Ubuntu-22.04 E:\Ubuntu22.04\wsl-ubuntu22.04.tar
    
  • 注销原有系统

    wsl --unregister Ubuntu-22.04
    
  • 查看系统状态,是否注销成功。

    wsl --list
    
  • 导入系统

     wsl --import Ubuntu-22.04 E:\Ubuntu22.04\ E:\Ubuntu22.04\wsl-ubuntu22.04.tar
    
  • 迁移系统后,默认登陆用户会变为 root 用户,更改默认用户。

    # <wsl> config --default-user <username>
    ubuntu2204 config --default-user paop
    

7. 解决 “wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理 。”(可跳过)

在路径 “C:\Users<username>” 路径下创建文件 .wslconfig,将下面内容写入文件中:

[experimental]
autoMemoryReclaim=gradual    # gradual  | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

三、运行 GUI 应用

在 Windows 子系统上运行 Linux GUI 应用程序

直接下载相应的 GUI 程序即可,例如:

sudo apt install gedit -y
gedit

wget https://dl.google/linux/direct/google-chrome-stable_current_amd64.deb
google-chrome

# nautilus
# tilix

四、WSL 安装 Windows 字体

  1. 从 Windows 系统的字体文件夹拷贝字体到 Ubuntu 目录(例如:"/home/paop/Download/Fonts"):

    推荐字体:

  2. 新建字体存放目录 windows-font

    sudo mkdir /usr/share/fonts/truetype/windows-font
    
  3. 拷贝字体到 windows-font 目录下

    sudo cp /home/paop/Download/Fonts/* /usr/share/fonts/truetype/windows-font
    
  4. 修改权限并更新字体缓存

    sudo chmod -R 777 /usr/share/fonts/truetype/windows-font
    cd /usr/share/fonts/truetype/windows-font
    sudo apt install xfonts-utils -y
    sudo mkfontscale
    sudo mkfontdir
    sudo fc-cache -fv
    

五、在 WSL 中使用 GPU 加速机器学习

将NVIDIA Windows GPU 驱动程序更新到最新版本

最新的 NVIDIA Windows GPU 驱动程序将完全支持 WSL 2。借助驱动程序中的 CUDA 支持,现有应用程序(在 Linux 系统上的其他地方为同一目标 GPU 编译)可以在 WSL 环境中无需修改即可运行。

更新结束后,,您应该能够运行任何需要 CUDA 的现有 Linux 应用程序。请勿在 WSL 环境中安装任何驱动程序。要构建 CUDA 应用程序,您将需要 CUDA 工具包。

  • 首先,删除旧的 GPG 密钥:

    sudo apt-key del 7fa2af80
    
  • 使用 WSL-Ubuntu 包安装 Linux x86 CUDA 工具包 - 推荐

    CUDA WSL-Ubuntu 本地安装程序不包含 NVIDIA Linux GPU 驱动程序,因此按照WSL-Ubuntu 的CUDA 下载页面上的步骤,将能在 WSL 上安装 CUDA 工具包。

    注意可自行搜索需要的 CUDA 版本

    wget https://developer.download.nvidia/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
    sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget https://developer.download.nvidia/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
    sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
    sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    sudo apt-get -y install cuda
    
  • 配置环境

    gedit  ~/.bashrc
    

    在文件最后添加(注意版本):

    export PATH=/usr/local/cuda-11.8/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
    

    激活环境

    source ~/.bashrc
    
  • 查看安装的版本

    nvcc --version
    

附录

  1. 在安装 CUDA 前,建议将系统导出为压缩包作为备份。
  2. 使用不同的深度学习框架及框架版本,CUDA 版本需求也会有所差异,具体请查阅深度学习框架官方文档。
  3. 集成开发环境(IDE),官方建议使用 VSCode。
    在Windows中安装VSCode后,打开 WSL 终端,进入项目文件,执行 code . 可自动下载远程 WSL 所需要的工具并远程连接 WSL。
    (base) paop@Paop:~/projectCode$ code .
    
  4. 更多功能建议查看微软 WSL 文档。

参考:

[1]: 微软 WSL 文档
[2]: WSL 上的 CUDA 用户指南
[3]: Ubuntu安装Windows字体

本文标签: 虚拟机自然WindowsWSLUbuntu