在 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 + C 和 Ctrl + V 默认是复制和粘贴快捷键,但在 WSL 中 Ctrl + C 用于中断进程。建议修改为 Ctrl + Shift + C 和 Ctrl + 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 盘,从而享受高效的工作环境。

相关推荐
kakakahahahaha7 小时前
Win10开始菜单打不开排查:explorer、AppX注册、SFC、服务与用户配置修复
windows·电脑·笔记本电脑·内容运营·软件需求
ITHAOGE158 小时前
下载 | Windows Server 2016最新纯净版ISO映像!(集成9月更新、标准版、数据中心版、14393.9514)
windows·科技·微软·电脑
zhangrelay11 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
传奇开心果编程14 小时前
【Compose Multiplatform 跨端开发学与练】第3课 布局与组件
android·windows·学习·ui·ios·kotlin·composer
懒人814 小时前
Windows11系统优化指南
windows·经验分享
Vex2une14 小时前
Windows 磁盘管理发展史:从 FDISK 分区表到存储池与虚拟磁盘
windows·gpt·磁盘管理·mbr·fdisk·动态磁盘·储存池
今夕资源网15 小时前
从夯到拉模拟器RankPix windows本地版 exe
windows·exe·从夯到拉·从夯到拉模拟器·rankpix·本地版
kakakahahahaha15 小时前
Windows系统时间校准指南:time命令、date命令、w32tm /resync与CMOS排查
windows·笔记本电脑·软件需求
一技安身16 小时前
【mysql】Windows MySQL 8.4.10 绿色免安装喂饭教程
windows·mysql·adb
传奇开心果编程16 小时前
【Compose Multiplatform 跨端开发学与练】第8课 资源管理与主题
android·windows·学习·ios·kotlin·web·composer