在 Windows 10 上安装和使用 WSL 2 安装 Ubuntu24详细指南

还在用虚拟机?既庞大又不够流畅,试试WSL。WSL(Windows Subsystem for Linux)允许你直接在 Windows 上运行 Linux 环境,无需启动虚拟机或双系统。WSL 2 是 WSL 的第二个版本,改进了性能和功能,提供了更接近原生 Linux 的体验。

WSL2 介绍

WSL2 (Windows Subsystem for Linux 2)是微软在Windows 10和Windows 11上引入的一项功能,允许用户在Windows操作系统上运行Linux环境及其相关命令和应用程序,而无需使用虚拟机或安装双系统‌‌

WSL2基于 Hyper-V 的轻量级虚拟机,运行完整的Linux内核,提供了更好的性能和更高的兼容性‌。

WSL 2 的优点
  • 性能提升:WSL 2 使用虚拟机技术,提供更快的文件系统性能和系统调用兼容性。
  • 更好的系统调用兼容性:WSL 2 支持完整的 Linux 内核功能,使得大多数 Linux 应用程序能够更好地运行。
  • 更好的网络支持 :WSL 2 提供了更稳定的网络连接,支持直接通过 localhost 访问 Windows 应用程序。
  • 支持 GUI 应用程序:通过配置 X 服务器,WSL 2 可以运行图形化界面的应用程序。
  • 多发行版支持:WSL 2 支持多种 Linux 发行版,如 Ubuntu、Debian、Kali Linux 等。
  • 便捷的系统间相互访问:可以方便的在windows和linux系统间互传文件。

WSL 安装使用

1. 检查更新

首先,确保你的 Windows 10 版本是最新的,以支持 WSL 2。你可以通过以下步骤检查和更新 Windows 版本:

  1. 检查当前 Windows 版本
    • 打开命令提示符(CMD),输入以下命令并回车:

      bash 复制代码
      winver
    • 如果版本太低,可以在"设置" - "更新和安全" - "Windows 更新"中检查更新。有时候系统可能不会提示最新版本,这时可以使用 Microsoft 提供的更新助手。

    • 版本要求如下:

      • 对于 x64 系统:版本 1903 或更高版本(内部版本 18862 或更高版本)。
      • 对于 ARM64 系统:版本 2004 或更高版本(内部版本 19041 或更高版本)。
    • 如果没有别的顾虑,建议升级到最新版。

2. 启用虚拟功能

在 PowerShell 中以管理员身份运行以下命令,以确保启用适用于 Linux 的 Windows 子系统和虚拟机平台功能:

powershell 复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

完成上述命令后,重启计算机以完成安装。

3. 下载 Linux 内核更新程序包

下载适用于 WSL 2 的 Linux 内核更新程序包。下载地址如下:

下载完成后,运行安装程序并按照提示完成安装。

Ubuntu24 安装

安装 Linux 分发版本,比如最新的Ubuntu24,可以通过 Microsoft Store 安装 Ubuntu,或者使用命令行工具从 tar 文件安装。

方式一,通过 Microsoft Store 安装

  1. 打开微软应用商店。
  2. 搜索"Ubuntu",在列表中选择最新的长期支持版本(例如 Ubuntu 24.04 LTS)并安装。
  3. 安装完成后,可以在开始菜单中找到"Ubuntu 24.04 LTS",点击它启动终端。

方式二,通过命令行安装

  1. 下载 Ubuntu 24.04 的 tar 文件:

    • 访问 Ubuntu WSL 下载页面,下载适用于 Windows 的 Ubuntu 24.04 LTS tar 文件(通常是 .tar 文件)。
  2. 移动 tar 文件到 D 盘:

    • 将下载的 Ubuntu 24.04 tar 文件(.tar 文件)移动到 D 盘的某个目录,例如 D:\WSL\Ubuntu-24.04
  3. 使用 WSL 命令导入 Ubuntu:

    • 打开 PowerShell 并以管理员身份运行。

    • 导航到你存放 .tar 文件的目录,例如 D:\WSL\Ubuntu-24.04

    • 使用以下命令导入 Ubuntu:

      powershell 复制代码
      wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04\ubuntu-24.04.2-wsl-amd64.tar --version 2

      请注意将 ubuntu-24.04.2-wsl-amd64.tar 替换为你实际的文件名。

  4. 启动 Ubuntu:

    • 导入完成后,可以通过 PowerShell 运行以下命令启动 Ubuntu:

      powershell 复制代码
      wsl -d Ubuntu-24.04
    • 或者通过开始菜单搜索"Ubuntu-24.04",点击它启动终端。

    • 如果是首次启动,系统会提示你设置一个用户名和密码。这个用户将是 Linux 系统中的默认用户,确保记住这些凭证。

5. 确保 WSL 的版本为 2.0

使用以下命令查看安装的 WSL 版本:

powershell 复制代码
wsl -l -v

如果显示的版本不是 2,可以使用以下命令将其设置为 WSL 2 版本:

powershell 复制代码
wsl --set-version Ubuntu-24.04 2
WSL 命令简单总结

• list

• wsl -l 或 wsl --list 列出所有已安装虚拟机

• wsl -l -v 显示详细信息(也不怎么详细)

• wsl -l -o 列出网上可用的系统

• terminate

• wsl -t ubuntu 关闭ubuntu

• wsl --shutdown 关闭所有系统及虚拟机引擎

• run

• wsl -d ubuntu 启动ubuntu并进行终端

• wsl -u root 以root身份支行

• .exe config --default-user 设置默认用户名

例如 ubuntu.exe config --default-user root

• install

• wsl --install 安装默认虚拟机(ubuntu)

• wsl -l -o 列出网上可用的系统

• 执行命令

• wsl <命令>

• 默认虚拟机

wsl 启动默认虚拟机并进入终端

wsl -s 虚拟机名 进入默认虚拟机

常用WSL命令及其解释

wsl --help:查看WSL命令的使用方法和可用选项。

wsl -l -v:列出所有已安装的Linux发行版及其详细信息。

wsl -d <子系统名称>:运行指定名称的Linux子系统。

wsl -t <子系统名称>:终止正在运行的指定名称的Linux子系统。

wsl --shutdown:终止所有正在运行的Linux子系统。

wsl --export <子系统名称> <输出路径及名称>:将指定子系统导出为tar文件。

wsl --import <子系统名称> <路径> <备份子系统tar文件>:将备份的子系统导入到新子系统。

wsl --unregister <子系统名称>:卸载指定名称的Linux子系统。

wsl --status:查看WSL子系统的状态。

wsl --install --distribution Debian或wsl --install -d Debian:安装Debian发行版的Linux子系统。

wsl -s <子系统名称>:将指定子系统设为默认,设为默认后可以直接运行。

设置子系统默认登陆用户:在/etc/wsl.conf文件中进行配置,添加[user] default = DemoUser。

这些命令可以帮助你管理和操作WSL子系统,包括安装、运行、导出、导入和卸载Linux子系统,设置默认子系统以及查看子系统状态等操作。

6. WSL apt 换源

为了提高软件包下载速度,建议更换为国内的镜像源。

  1. 备份源列表

    bash 复制代码
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 编辑 sources.list 文件

    bash 复制代码
    sudo vim /etc/apt/sources.list
  3. 将源文件内容注释掉,并添加以下任意源

    • 阿里云源

      bash 复制代码
      deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    • 清华源

      bash 复制代码
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
      deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse
  4. 保存文件并退出编辑器

    • vim 中,按 Esc 键,然后输入 :wq! 并回车以保存并退出。
  5. 查看文件是否更改成功

    bash 复制代码
    cat /etc/apt/sources.list
  6. 更新源

    bash 复制代码
    sudo apt-get update
  7. 更新软件

    bash 复制代码
    sudo apt-get dist-upgrade
    sudo apt-get upgrade
7. WSL2 备份与还原

确保你的 Windows 10 版本是 1903 或更高版本,才能使用这些命令。

  1. 通过按 Win + R,输入 cmd 回车打开命令行窗口

    cmd 复制代码
    wsl -l
    • 你可以看到系统中安装了一个 WSL 发行版,例如 Ubuntu-24.04
  2. 查看版本信息

    cmd 复制代码
    wsl --version
  3. 备份 WSL 发行版

    • 停止发行版(如果正在运行):

      cmd 复制代码
      wsl -t Ubuntu-24.04
    • 使用 wsl --export 命令备份发行版:

      cmd 复制代码
      wsl --export Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar
  4. 还原 WSL 发行版

    • 卸载发行版(如果已安装):

      cmd 复制代码
      wsl --unregister Ubuntu-24.04
    • 使用 wsl --import 命令还原发行版:

      cmd 复制代码
      wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar --version 2
8. 配置默认用户

如果你希望设置默认的 Linux 用户,可以按照以下步骤操作:

  1. 通过 ubuntu2404.exe 配置

    • 如果你通过 Microsoft Store 安装过 Ubuntu,可以使用以下命令设置默认用户:

      cmd 复制代码
      ubuntu2404.exe config --default-user <你的用户名>
  2. 如果没有通过 Microsoft Store 安装

    • 下载并安装 Windows Terminal

    • 打开 Windows Terminal 设置,编辑 settings.json 文件。

    • 添加或修改以下内容:

      json 复制代码
      {
        "guid": "{你的guid}",
        "name": "Ubuntu-24.04",
        "source": "Windows.Terminal.Wsl",
        "startingDirectory": "//wsl$/Ubuntu-24.04/home/<你的用户名>"
      }
9. 修改 Ctrl+C 和 Ctrl+V 快捷键

在 Windows 下,Ctrl + CCtrl + V 默认是复制和粘贴快捷键,但在 WSL 中 Ctrl + C 用于中断进程。建议修改为 Ctrl + Shift + CCtrl + Shift + V

  1. 编辑 settings.json 文件
    • 打开 Windows Terminal 设置,编辑 settings.json 文件。

    • 添加或修改以下内容:

      json 复制代码
      {
        "command": {"action": "copy", "singleLine": false },
        "keys": "ctrl+shift+c"
      },
      {
        "command": "paste",
        "keys": "ctrl+shift+v"
      }
10. 迁移 WSL 到非系统盘

默认情况下,WSL 会安装在 C 盘。为了节省 C 盘空间,可以将 WSL 迁移到其他磁盘分区,例如 D 盘。

  1. 下载 LxRunOffline 工具

  2. 解压并使用 LxRunOffline 工具

    • 解压下载的文件到任意目录,例如 D:\LxRunOffline
  3. 获取发行版名称

    • 打开 PowerShell 并以管理员身份运行。

    • 使用以下命令获取发行版名称:

      powershell 复制代码
      .\LxRunOffline.exe list
  4. 执行迁移命令

    • 使用以下命令将 Ubuntu-24.04 迁移到 D 盘:

      powershell 复制代码
      .\LxRunOffline.exe m -n Ubuntu-24.04 -d D:\WSL\Ubuntu-24.04
  5. 查看迁移后发行版的安装路径

    • 使用以下命令查看迁移后的安装路径:

      powershell 复制代码
      .\LxRunOffline.exe di -n Ubuntu-24.04
11. Vmmem 进程限制

WSL 2 实际上是在虚拟机中运行的,Vmmem 进程会占用大量内存。可以通过配置文件限制 Vmmem 进程的内存占用。

  1. 创建 .wslconfig 文件

    • 在用户目录下创建 .wslconfig 文件,例如 C:\Users\<你的用户名>\.wslconfig
  2. 添加以下内容

    ini 复制代码
    [wsl2]
    memory=6GB
    swap=0
    localhostForwarding=true
  3. 关闭并重新启动 WSL

    cmd 复制代码
    wsl --shutdown
12. 与宿主 Windows 文件系统相互访问

在 Windows 10 下访问 Linux 子系统文件:

  • 打开文件资源管理器,在地址栏输入 \\wsl$\Ubuntu-24.04,可以跳转到 Linux 子系统根目录。

在 Linux 子系统访问 Windows 文件:

  • 进入 /mnt 目录,可以访问 Windows 文件系统。

    bash 复制代码
    cd /mnt
    ls
13. 解决 systemctl 命令无法使用问题

在 WSL 2 中默认情况下 systemctl 命令无法使用,可以通过以下步骤解决:

  1. 安装必要的软件

    bash 复制代码
    sudo apt install -y fontconfig daemonize
  2. 编辑 /etc/profile 文件

    • 打开 /etc/profile 文件:

      bash 复制代码
      sudo vim /etc/profile
    • 在文件末尾添加以下内容:

      bash 复制代码
      SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
      if [ -z "$SYSTEMD_PID" ]; then
         sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
         SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
      fi
      if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
         exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
      fi
  3. 修改 /etc/sudoers 文件

    • 编辑 /etc/sudoers 文件:

      bash 复制代码
      sudo visudo
    • 在文件末尾添加以下内容:

      bash 复制代码
      %sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
      %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
  4. 应用更改

    • 执行以下命令应用更改:

      bash 复制代码
      source /etc/profile
    • 或者重新打开终端并验证 systemctl 是否可以使用:

      bash 复制代码
      systemctl
14. 安装 VcXsrv: WSL 图形化界面

为了在 WSL 2 中使用图形化界面,可以安装 VcXsrv。

  1. 下载并安装 VcXsrv

  2. 配置 VcXsrv

    • 启动 VcXsrv,一路选择 Next 完成配置。
    • 确保选择"Disable access control"选项。
  3. 安装 Xfce 桌面环境

    • 在 Ubuntu 终端中安装以下软件包:

      bash 复制代码
      sudo apt-get install xfce4-terminal
      sudo apt-get install xfce4
  4. 编辑 ~/.bashrc 文件

    • 打开 ~/.bashrc 文件:

      bash 复制代码
      sudo vim ~/.bashrc
    • 在文件末尾添加以下内容:

      bash 复制代码
      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
  5. 启动 Xfce 桌面环境

    • 在 Ubuntu 终端中输入以下命令启动桌面环境:

      bash 复制代码
      startxfce4
推荐使用 Windows Terminal

Windows Terminal 是 WSL 的理想配套。它速度快、可配置、外观漂亮,并且提供了 Windows和 Linux 开发的所有优点。

  • 支持WSL2,SSH,Powershell,cmd和其他命令行
  • 多个选项卡和拆分窗格
  • 搜索框
  • 自定义键绑定
  • GPU加速文字渲染
  • 美观的新字体Cascadia Code
  • 资源使用率低(每个选项卡通常10MB)
  • 自动更新(如果使用Microsoft Store)
  • 好的文档
  • 它是开源的!
安装Windows Terminal

安装Windows Terminal最简单方法是通过windows的应用商店,直接搜索安装即可。如果内网限制无法通过微软商店安装 Windows Terminal,下面提供手动安装和配置新版 Windows Terminal 的步骤,并添加右键菜单快捷方式。

通过命令行安装

  1. 下载新版终端安装包

    • 访问 Windows Terminal 的 GitHub 发布页面
    • 找到最新版本或您需要的特定版本,下载 x64 架构的 .zip 安装包(例如 Microsoft.WindowsTerminalPreview_1.22.3232.0_x64.zip)。
    • 如果无法直接访问 GitHub,可以使用 GitHub 加速网站下载:例如 https://github.akams.cn/,将 GitHub 发布页面的链接复制到加速网站中即可。
  2. 解压安装包并创建快捷方式

    • 将下载的 .zip 文件解压到您选择的目录(例如 D:\Apps\terminal-1.22.3232.0)。
    • 在解压后的目录中找到 WindowsTerminal.exe 文件,右键点击,选择"创建快捷方式",并将快捷方式放置到桌面或其他方便访问的位置。
  3. 设置系统环境变量(可选,但推荐)

    • 将 Windows Terminal 的安装目录添加到系统环境变量 Path 中,以便可以直接在命令提示符或 PowerShell 中通过 terminal 命令启动。
    • 按下 Win + R,输入 sysdm.cpl 并回车,打开"系统属性"窗口。
    • 点击"高级"选项卡,然后点击"环境变量"。
    • 在"系统变量"部分,找到 Path 变量,选中并点击"编辑"。
    • 点击"新建",输入 Windows Terminal 的安装目录(例如 D:\Apps\terminal-1.22.3232.0),然后点击"确定"。
    • 关闭所有窗口,使环境变量更改生效。
  4. 启动 Windows Terminal

    • 按下 Win + R,输入 terminal 并回车,即可启动新版 Windows Terminal。
5. 添加右键菜单快捷方式

以管理员身份运行 PowerShell 或命令提示符,并执行以下命令:

cmd 复制代码
# 添加右键菜单项
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /ve /d "Windows Terminal"

# 设置图标 (将路径替换为您实际的图标路径)
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /v "Icon" /t REG_EXPAND_SZ /d "D:\Apps\terminal-1.22.3232.0\Images\terminal.ico"

# 设置命令 (将路径替换为您实际的 WindowsTerminal.exe 路径)
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command" /f /ve /t REG_EXPAND_SZ /d "D:\Apps\terminal-1.22.3232.0\WindowsTerminal.exe"

注意 :请将上述命令中的图标路径(terminal.ico)和执行程序路径(WindowsTerminal.exe)替换为您实际的安装路径。确保路径中没有多余的字符或错误。

完成以上步骤后,在文件夹的空白区域右键点击,即可看到"Windows Terminal"选项,方便地在此处打开终端。

结语

在本指南中,我们展示了如何在 Windows 10 或 11 上安装和配置 WSL 2,并将 Ubuntu 24.04 安装到 D 盘。希望你能享受在 WSL 上使用 Ubuntu 的体验。不要忘记查看我们的博客获取最新的 Ubuntu 新闻和信息。

进一步阅读

通过以上步骤,你应该能够在 Windows 10 或 11 上成功安装 WSL 2 并将 Ubuntu 24.04 安装到 D 盘,从而享受高效的工作环境。

相关推荐
倔强的石头1061 小时前
KaiwuDB社区版 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置、踩坑复盘与轻量压测
数据库·ubuntu·kwdb
liwenzhuola1 小时前
解决 Ubuntu 上 Qt Creator 项目编译失败的问题
数据库·qt·ubuntu
AiGuoHou12 小时前
Debian/Ubuntu 各个版本一键更换国内镜像源
linux·ubuntu·国内源·debian·镜像源·换源
衡动科技2 小时前
Ubuntu 22.04/24.04 安装 ROS2 完整教程(Humble / Jazzy)
ubuntu·树莓派·ros2
蓝羽天空2 小时前
Ubuntu 24.04 安装 Docker
linux·ubuntu·docker
T0uken2 小时前
WSL:离线配置 Ubuntu 开发环境
linux·运维·ubuntu
�羡阳丶2 小时前
ubuntu22.04+5060显卡双系统安装,各种黑屏踩坑记录
linux·经验分享·ubuntu
b_xinjun11202 小时前
树莓派 Ubuntu 24.04.3 LTS 安装 OpenClaw 操作说明
linux·ubuntu·arcgis
暮秋4742 小时前
ubuntu部署阿里通义千问模型
运维·ubuntu·大模型