Windows 安装 WSL2 并运行 Ubuntu 22.04 指南

06-02 1030阅读

Windows 安装 WSL2 并运行 Ubuntu 22.04 指南

本文为 Windows 10 和 Windows 11 用户提供从零开始搭建 WSL2 环境的详细指南,涵盖安装 Ubuntu 22.04、自定义存储位置、性能优化以及常见问题排查。无论你是开发者、运维工程师还是 Linux 爱好者,本文将助你快速上手 WSL2。


为什么要选择 WSL2 而非 VirtualBox 等虚拟机?

在选择运行 Linux 环境时,WSL2(Windows Subsystem for Linux 2)与 VirtualBox、VMware 等传统虚拟机相比具有显著优势。以下是选择 WSL2 的主要理由:

1. 更高的性能和资源效率

  • 轻量级虚拟化:WSL2 使用 Hyper-V 架构的轻量级虚拟机,相比 VirtualBox 的完整虚拟化,占用更少的 CPU 和内存资源。
  • 动态内存管理:WSL2 支持动态分配内存,并在空闲时通过 autoMemoryReclaim 释放内存,而 VirtualBox 通常需要预分配固定内存。
  • 快速启动:WSL2 可在数秒内启动 Linux 环境,而 VirtualBox 启动完整虚拟机通常需要更长时间。

    2. 无缝的 Windows 与 Linux 集成

    • 文件系统互操作:WSL2 支持直接访问 Windows 文件系统(通过 /mnt/),并提供高性能的文件共享,而 VirtualBox 需要配置共享文件夹,性能较低。
    • 命令行集成:WSL2 可在 Windows Terminal 或 PowerShell 中直接运行 Linux 命令,无需切换到虚拟机界面。
    • 端口转发:WSL2 支持 localhost 端口无缝转发,方便开发和测试,而 VirtualBox 需要复杂网络配置。

      3. 开发体验优化

      • 工具链支持:WSL2 与 Visual Studio Code、Docker Desktop 等开发工具深度集成,适合现代化开发工作流。VirtualBox 需额外配置以实现类似功能。
      • WSLg(GUI 支持):Windows 11 的 WSL2 支持运行 Linux GUI 应用(如 Firefox),无需额外安装 X 服务器,VirtualBox 则需要手动配置图形界面。
      • 嵌套虚拟化:WSL2 支持在 Linux 环境中运行 Docker 或其他虚拟化工具,适合云原生开发,而 VirtualBox 的嵌套虚拟化配置复杂。

        4. 简化的管理与更新

        • 一键安装:WSL2 可通过 wsl --install 快速部署,相比 VirtualBox 的繁琐安装和配置过程更简单。
        • 自动更新:WSL2 内核通过 Windows Update 自动更新,Ubuntu 发行版通过 apt 维护,管理成本低。VirtualBox 需要手动更新虚拟机镜像和扩展包。
        • 存储优化:WSL2 使用虚拟硬盘(.vhdx)动态扩展存储,占用空间小,而 VirtualBox 虚拟机镜像通常占用较大固定空间。

          5. 微软官方支持

          • WSL2 是微软官方产品,与 Windows 生态高度兼容,社区活跃,更新频繁。VirtualBox 虽功能强大,但依赖第三方维护,可能存在兼容性问题。
          • WSL2 提供详细的官方文档和 GitHub 社区支持,问题排查更便捷。

            适用场景对比

            特性WSL2VirtualBox
            性能高(轻量级虚拟化)中等(完整虚拟化)
            Windows 集成无缝(文件、端口、命令行)有限(需共享文件夹、网络配置)
            GUI 支持原生支持(Windows 11 WSLg)需要额外配置 X 服务器或图形界面
            开发工具集成优秀(VS Code、Docker 等)一般(需手动配置)
            管理复杂度低(一键安装、自动更新)高(手动配置、更新)
            存储占用动态扩展(小)固定分配(较大)

            什么时候选择 VirtualBox?

            • 需要运行完整的 Linux 桌面环境(如 GNOME、KDE)或非 Ubuntu 发行版。
            • 需要模拟复杂网络拓扑或多虚拟机环境。

              结论:对于开发者、学生或需要在 Windows 上快速运行 Linux 环境的个人,WSL2 提供更高效、便捷的体验。对于需要完整虚拟化或特殊硬件模拟的场景,VirtualBox 可能更适合。


              一、前置条件:确认操作系统支持性

              在安装 WSL2 之前,需确保你的 Windows 系统满足最低要求。

              Windows 11

              • 默认支持 WSL2,无需额外检查。
              • 推荐版本:22H2 或更高,以支持 systemd 和 WSLg(GUI 应用支持)。

                Windows 10

                • 最低要求:1903 版本(Build 18362) 或更高。
                • 推荐版本:20H2 或更高,以获得更好的性能和功能支持。
                  查看系统版本
                  1. 按 Win + R,输入 winver,回车。
                  2. 弹窗将显示 Windows 版本和 Build 号。
                  升级系统

                  若版本不符合要求:

                  • 打开 设置 > Windows 更新 检查更新。
                  • 或使用 Windows 10 更新助手进行升级。

                    提示:建议备份重要数据后再升级系统,以防意外情况。


                    二、安装 WSL2

                    WSL2 提供两种安装方式:一键安装(推荐新手)和手动安装(适合需要自定义的用户)。

                    方法一:一键安装(推荐)

                    1. 以管理员身份打开 PowerShell 或 Windows Terminal。

                    2. 执行以下命令:

                      wsl --install
                      
                    3. 系统将自动:

                      • 启用 WSL 和虚拟机平台功能。
                      • 下载并安装最新 WSL2 内核。
                      • 安装默认的 Ubuntu 发行版(若无其他指定)。
                      • 重启电脑以完成安装。

                    注意:若命令未自动安装 Ubuntu,可在后续步骤手动安装 Ubuntu 22.04.

                    方法二:手动安装

                    适合需要精确控制安装过程的高级用户。

                    1. 启用必要功能:

                      以管理员身份运行 PowerShell,执行:

                      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
                      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
                      
                    2. 重启电脑:

                      shutdown /r /t 0
                      
                    3. 安装 WSL2 内核更新:

                      • 下载并安装 WSL2 Linux 内核更新包.
                      • 按提示完成安装。
                      • 设置 WSL2 为默认版本:

                        wsl --set-default-version 2
                        

                    提示:若需确认 WSL 是否安装成功,可运行 wsl --version 检查版本信息。


                    三、安装 Ubuntu 22.04

                    Ubuntu 22.04 LTS 是长期支持版本,稳定且适合大多数开发场景。以下提供两种安装方式。

                    方法一:通过 Microsoft Store 安装

                    1. 打开 Microsoft Store。
                    2. 搜索 Ubuntu 22.04 LTS。
                    3. 点击 获取 并安装。
                    4. 安装完成后,启动 Ubuntu,设置用户名和密码.

                    方法二:通过命令行安装

                    1. 在 PowerShell 中运行:

                      wsl --install -d Ubuntu-22.04
                      
                    2. 安装完成后,WSL 将自动启动 Ubuntu 并提示设置用户名和密码。

                    注意:

                    • 用户名和密码仅用于 Ubuntu 内部,与 Windows 账户无关。
                    • 若 Microsoft Store 访问受限,推荐使用命令行方式。

                      四、管理存储:默认位置与自定义迁移

                      WSL2 的虚拟硬盘文件(.vhdx)默认占用系统盘空间,可能导致 C 盘空间不足。以下介绍如何查看默认存储位置并迁移到其他磁盘。

                      默认存储位置

                      Ubuntu 22.04 的文件默认位于:

                      C:\Users\\AppData\Local\Packages\CanonicalGroupLimited...UbuntuonWindows_...
                      
                      • 包含一个扩展名为 .vhdx 的虚拟硬盘文件,存储 Ubuntu 的完整文件系统。
                      • 默认占用空间约为 1-2GB,随使用逐渐增长。

                        自定义存储位置

                        通过导出和导入操作,可将 Ubuntu 迁移到其他磁盘(如 D 盘)。

                        1. 导出 Ubuntu 发行版:

                          wsl --export Ubuntu-22.04 D:\WSL\Ubuntu2204_backup.tar
                          
                          • 将 Ubuntu 22.04 导出为 .tar 文件,存储在 D:\WSL 目录。
                          • 注销旧发行版:

                            wsl --unregister Ubuntu-22.04
                            
                            • 删除旧的 Ubuntu 发行版,释放 C 盘空间。
                            • 导入到新位置:

                              wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\WSL\Ubuntu2204_backup.tar --version 2
                              
                              • 将 Ubuntu 导入到 D:\WSL\Ubuntu2204 目录,确保使用 WSL2。
                              • 验证迁移:

                                wsl -l -v
                                
                                • 确认 Ubuntu-22.04 已正确导入并运行在 WSL2。

                        提示:

                        • 迁移后,建议定期备份 .tar 文件以便恢复。
                        • 若需调整虚拟硬盘大小,可使用 wsl --manage 命令(Windows 11 24H2 及以上支持)。

                          五、WSL2 常用命令速查

                          以下是管理 WSL2 的核心命令,建议收藏以便随时参考。

                          命令说明
                          wsl --list / -l列出所有已安装的发行版
                          wsl --list --verbose / -l -v显示详细信息(包括版本和默认发行版)
                          wsl --set-version 2将指定发行版切换到 WSL2
                          wsl --set-default 设置默认运行的发行版
                          wsl --set-default-version 2设置新安装的发行版默认使用 WSL2
                          wsl --shutdown关闭所有运行中的 WSL 实例
                          wsl --terminate 强制终止指定发行版
                          wsl --unregister 注销并删除指定发行版
                          wsl --export 导出发行版到指定路径
                          wsl --import 导入发行版到指定位置

                          提示:使用 wsl --help 可查看完整命令列表。


                          六、性能优化:配置 .wslconfig

                          WSL2 的性能可以通过全局配置文件 .wslconfig 进行优化,文件位于:

                          C:\Users\\.wslconfig
                          

                          若文件不存在,需手动创建。

                          推荐配置模板

                          [wsl2]
                          memory=6GB               # 限制最大内存使用量
                          processors=4             # 指定 CPU 核心数
                          swap=8GB                 # 交换空间大小
                          swapFile=D:\WSL\swap.vhdx # 自定义 swap 文件路径
                          autoMemoryReclaim=true   # 自动回收未使用内存
                          localhostForwarding=true # 启用 localhost 端口转发
                          guiApplications=true     # 启用 WSLg(GUI 应用支持)
                          gpu=true                 # 启用 GPU 加速(需支持的 GPU 驱动)
                          dns=8.8.8.8              # 使用 Google DNS
                          networkingMode=mirrored  # 启用镜像网络模式(支持 IPv6)
                          firewall=true            # 启用 WSL 防火墙集成
                          autoProxy=true           # 自动使用 Windows 代理
                          nestedVirtualization=true # 启用嵌套虚拟化(适合运行 Docker 等)
                          

                          参数详解

                          参数说明
                          memory限制 WSL2 最大内存,避免占用过多宿主机资源。
                          processors指定分配的 CPU 核心数,建议设为物理核心数的一半。
                          swap设置交换空间大小,推荐为内存的 1-2 倍。
                          swapFile自定义交换文件路径,避免占用 C 盘。
                          autoMemoryReclaim启用后定期回收未使用内存,提升宿主机性能。
                          localhostForwarding允许 WSL2 与 Windows 共享 localhost 端口。
                          guiApplications启用 WSLg,支持运行 Linux GUI 应用(Windows 11 独有)。
                          gpu启用 GPU 加速,适合机器学习或图形密集型任务。
                          dns自定义 DNS 服务器,解决网络解析问题。
                          networkingMode设置为 mirrored 支持双栈网络(IPv4/IPv6)。
                          firewall启用防火墙集成,提升安全性。
                          autoProxy自动同步 Windows 代理设置,适合科学上网场景。
                          nestedVirtualization启用嵌套虚拟化,支持在 WSL2 内运行虚拟机或容器。

                          应用配置

                          1. 保存 .wslconfig 文件。

                          2. 执行:

                            wsl --shutdown
                            
                          3. 重新启动 WSL 或重启电脑。

                          参考资料

                          • Microsoft Learn - WSL 配置文档

                            七、Ubuntu 内部配置:/etc/wsl.conf

                            /etc/wsl.conf 是 WSL2 发行版内部的配置文件,用于控制挂载、网络和启动行为。

                            推荐配置模板

                            [boot]
                            systemd=true
                            [automount]
                            enabled=true
                            root=/mnt/
                            options="metadata,umask=22,fmask=11"
                            [network]
                            generateHosts=true
                            generateResolvConf=false
                            [interop]
                            enabled=true
                            appendWindowsPath=true
                            [user]
                            default=
                            

                            参数详解

                            说明
                            [boot]systemd启用 systemd(需 Windows 11 22H2 或更高)。
                            [automount]enabled启用 Windows 磁盘自动挂载。
                            [automount]root设置挂载点路径,默认 /mnt/。
                            [automount]options挂载选项,如 metadata 启用文件权限映射。
                            [network]generateHosts是否生成 /etc/hosts 文件。
                            [network]generateResolvConf是否自动生成 /etc/resolv.conf(设为 false 可自定义 DNS)。
                            [interop]enabled启用 Windows 和 WSL 之间的互操作性。
                            [interop]appendWindowsPath将 Windows PATH 添加到 WSL 环境变量。
                            [user]default设置默认登录用户。

                            应用配置

                            1. 在 Ubuntu 中编辑

                              /etc/wsl.conf
                              

                              sudo nano /etc/wsl.conf
                              
                            2. 保存后,重启 WSL:

                              wsl --shutdown
                              

                            提示:若需自定义 DNS,可手动编辑 /etc/resolv.conf,并确保 generateResolvConf=false。


                            八、常见问题排查与解决方案

                            以下是 WSL2 使用中的常见问题及解决方法。

                            1. Ubuntu 启动提示 systemd 无效

                            原因:Windows 版本不支持 systemd 或配置错误。

                            解决:

                            • 确保系统为 Windows 11 22H2 或更高(运行 winver 检查)。
                            • 确认 /etc/wsl.conf 中 [boot] systemd=true。
                            • 执行 wsl --shutdown 后重试。

                              2. 网络访问异常(如无法访问公网)

                              原因:DNS 解析失败或网络模式配置错误。

                              解决:

                              • .wslconfig
                                

                                中设置:

                                dns=8.8.8.8
                                networkingMode=mirrored
                                
                              • 清理 Windows DNS 缓存:

                                ipconfig /flushdns
                                wsl --shutdown
                                
                              • 检查 Windows 防火墙,确保未阻止 WSL 网络流量。

                                3. WSL2 占用内存过高

                                原因:WSL2 默认动态分配内存,可能占用过多资源。

                                解决:

                                • .wslconfig
                                  

                                  中限制内存:

                                  memory=4GB
                                  autoMemoryReclaim=true
                                  
                                • 定期运行 wsl --shutdown 释放内存。

                                  4. 如何彻底重置 WSL?

                                  步骤:

                                  1. 注销发行版:

                                    wsl --unregister Ubuntu-22.04
                                    
                                  2. 关闭 WSL:

                                    wsl --shutdown
                                    
                                  3. (可选)禁用 WSL 功能:

                                    • 打开 控制面板 > 程序和功能 > 启用或关闭 Windows 功能。
                                    • 取消勾选 适用于 Linux 的 Windows 子系统 和 虚拟机平台。
                                    • 重启后重新启用。

                                  5. WSLg(GUI 应用)无法运行

                                  原因:Windows 11 配置或驱动问题。

                                  解决:

                                  • 确保系统为 Windows 11 且启用 WSLg(.wslconfig 中 guiApplications=true)。
                                  • 更新 GPU 驱动。
                                  • 安装 X11 服务器(如 VcXsrv)作为备用。

                                    九、扩展功能与进阶用法

                                    1. 使用 Windows Terminal

                                    • 安装 Windows Terminal(Microsoft Store 提供),统一管理 WSL、PowerShell 和 CMD。
                                    • 支持多标签页、自定义主题和快捷键,提升终端体验。

                                      2. 运行 GUI 应用(WSLg)

                                      • Windows 11 支持 WSLg,可直接运行 Linux GUI 应用(如 gedit、firefox)。

                                      • 安装示例:

                                        sudo apt update
                                        sudo apt install firefox
                                        firefox
                                        

                                        3. 在 WSL2 中运行 Docker

                                        • 启用嵌套虚拟化(.wslconfig 中 nestedVirtualization=true)。
                                        • 安装 Docker Desktop 并启用 WSL2 后端,或直接在 Ubuntu 中安装 Docker CE.

                                          4. 集成开发环境

                                          • 在 WSL2 中安装 VS Code Server,结合 Windows 的 VS Code 实现无缝开发。

                                          • 示例:

                                            curl -fsSL https://code-server.dev/install.sh | sh
                                            code-server
                                            

                                            十、📄 WSL2 快速参考卡片(A4 一页版)

                                            一页速查,涵盖安装、管理和优化,适合打印或保存为 PDF。

                                            安装与管理

                                            # 一键安装 WSL2
                                            wsl --install
                                            # 安装 Ubuntu 22.04
                                            wsl --install -d Ubuntu-22.04
                                            # 查看发行版
                                            wsl -l -v
                                            # 设置默认 WSL2
                                            wsl --set-default-version 2
                                            # 关闭 WSL
                                            wsl --shutdown
                                            

                                            性能优化:.wslconfig

                                            路径:C:\Users\\.wslconfig

                                            [wsl2]
                                            memory=6GB
                                            processors=4
                                            swap=8GB
                                            autoMemoryReclaim=true
                                            networkingMode=mirrored
                                            guiApplications=true
                                            

                                            内部配置:/etc/wsl.conf

                                            [boot]
                                            systemd=true
                                            [automount]
                                            enabled=true
                                            options="metadata"
                                            [network]
                                            generateResolvConf=false
                                            

                                            快速排查

                                            • Systemd 无效:检查 Windows 11 22H2+ 和 /etc/wsl.conf。
                                            • 内存过高:设置 memory=4GB 和 autoMemoryReclaim=true。
                                            • 网络问题:启用 networkingMode=mirrored 和 dns=8.8.8.8。

                                              十一、总结与资源推荐

                                              WSL2 是一个强大的工具,将 Linux 的灵活性与 Windows 的易用性结合,为开发者提供了高效的跨平台开发环境。通过本文的指南,你可以:

                                              • 快速安装并配置 WSL2 和 Ubuntu 22.04。
                                              • 优化存储、内存和网络性能。
                                              • 排查常见问题并探索进阶功能。

                                                推荐资源

                                                • Microsoft WSL 官方文档
                                                • Ubuntu 官方 WSL 教程
                                                • WSL GitHub 社区
                                                • Windows Terminal 自定义指南
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码