如何在 Windows 上运行 Ubuntu:完整指南

为什么要这么做?这是为了兼得两者的优势。许多公司依赖 Windows 的应用、企业软件和策略配置;但对于开发者和管理员来说,Ubuntu 的命令行工具、软件包管理器以及服务器环境却是无价之宝。此外,Ubuntu 拥有庞大的机器学习工具和库生态系统,加上针对硬件的优化,使其成为处理 AI 工作负载的理想选择。

举个具体的例子:在受监管行业中,开发者的权限往往受到严格控制。在 Windows 上使用 Node.js、Python 等工具链开发应用时,经常会遇到权限障碍。处理权限和访问控制的差异需要专业技能,还可能延误开发进度。通过在 Windows 中安装 Ubuntu,企业可以避开这些复杂性。微软和 Canonical 的管理工具相辅相成,提供了一站式的合规、审计、加固和安全能力。

这个生态系统的美妙之处在于没有唯一的“正确”方式,因为不同用户有不同的需求:从简单的脚本执行到本地模拟生产环境,连接 Windows 和 Ubuntu 有多种途径。每种 Windows 中的 Ubuntu 虚拟化解决方案在集中管理和风险缓解能力上各不相同。在本文中,我将探讨在 Windows 上运行 Ubuntu 的最佳方式,详细解析每种方法的工作原理,助你选择最适合工作流程的设置。

构建可复制的环境

手动重新配置新的虚拟机非常耗时:运行命令安装软件包,等待安装完成,然后再进行配置。用于开发的虚拟机还需要额外的设置,例如配置与 git 仓库和其他 Linux 环境交互的 SSH 密钥、配置 AI 助手,以及设置用于编码和原型制作的工作区。所有这些耗时的活动都可以通过 cloud-init 自动化完成,本文提到的所有虚拟化解决方案都支持它。使用 cloud-init 构建可复制的环境是配置虚拟机的行业标准做法。Multipass 和 WSL 版 Ubuntu 原生支持 cloud-init,而 Hyper-V 和 VirtualBox 则通过 NoCloud 方法支持它。

NoCloud 方法

NoCloud 方法涉及创建一个包含 cloud-init 配置文件的 ISO 文件。如果你使用的是 Ubuntu,请按照以下步骤生成 NoCloud ISO 镜像:

  1. 创建两个运行时配置文件:user-datameta-data。user-data 文件的内容必须是有效的 cloud-init YAML 格式。meta-data 文件可以为空。
  2. 在 WSL 版 Ubuntu 中安装 genoisoimage 软件包:apt install genoisoimage
  3. 创建一个小型ISO文件(标记为)cidata包含user-data而且meta-data运行时配置文件:
    mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data
  4. Ubuntu 上 Hyper-V

    Hyper-V 是微软原生的虚拟机管理软件技术,可实现硬件虚拟化,使您能够在单个 Windows 物理主机上创建和管理多个虚拟机(虚拟机)。它是一种1型虚拟机管理软件,即直接在裸金属硬件上运行,通常用于数据中心的服务器虚拟化,并在Windows 10或11上运行孤立的虚拟环境。Hyper-V 包含在 Windows Pro 和企业版中。

    如果需要在 Linux 环境和 Windows 文件系统之间进行深度分离,并且还希望在虚拟机中运行 Canonical 的 Ubuntu 内核,那么 Hyper-V 就是原生的 Windows 解决方案。虚拟机可以从 上。或者,可以使用虚拟磁盘镜像,并且可以配置 Ubuntu 云输入:

    1. 前往Canonical的官方仓库:cloud-images.ubuntu.com,然后下载以.img结尾的文件,用于您的架构(例如,ubuntu-26.04-server-cloumig-amd64.vmdk)。
    2. 在 Ubuntu 中安装 qemu-utilsqemu-utles 包:
      apt install qemu-utils
    3. 使用 qemu-utils 将 vmdk 镜像转换为 vhdx 格式,用于 Hyper-V:
      qemu-img convert -f vmdk -O vhdx ubuntu-26.04-server-cloudimg-amd64.vmdk ubuntu-26.04-server-cloudimg-amd64.vhdx
    4. 在 Hyper-V 中创建一个新的虚拟机,并在“连接虚拟磁盘”下选择生成的 vhdx 文件。
    5. 在首次启动前将此 ISO 系统连接到 VM 的虚拟 DVD 驱动器。
    6. Hyper-V 中的 Ubuntu 虚拟机将在打开时在虚拟 DVD 驱动器中检测 ISO 文件,并运行您的配置。

    Ubuntu 在 VirtualBox 上

    Oracle VirtualBox 是一款通用的全虚拟化软件,可在由 x86_64 和 arm 芯片驱动的计算机上运行。它常用于笔记本电脑、台式机和服务器中。VirtualBox 是一个运行在 Windows 之上的应用程序,使其成为 Type 2 的虚拟机管理程序。它依靠 Windows 来管理 CPU、RAM 和网络等硬件资源。VirtualBox 提供直通式 USB 支持,但在磁盘 I/O 或 CPU 绑定任务中性能可能有限,且不具备高性能 GPU 功能。这意味着 VirtualBox 未针对人工智能工作负载进行优化。有一种名为PCI的通关功能,允许VirtualBox虚拟机完全控制物理图形图形处理器,但GPU访问将仅限于单个虚拟机。

    虚拟机可以从 Ubuntu ISO 安装在 VirtualBox 上。或者,可以使用虚拟磁盘镜像,并且可以使用 NoCloud 方法配置 Ubuntu 和seed.iso如上所述。

    虽然可以使用 Hyper-V 或 VirtualBox 作为独立解决方案,以便在 Windows 上运行 Ubuntu,但您也可以使用 WSL 或 Canonical 的 Multipass,使虚拟化实例更加易于访问和可管理。

    多路通

    Multipass 是适用于您的 Windows、macOS 或 Linux 工作站的迷你云。在Windows上,它可以在后台使用VirtualBox或Hyper-V。您可以通过简单的 Multipass CLI 和 UI 管理所有内容,这是快速启动可作为后台服务运行的 Ubuntu 实例或长期运行实例的方式。多通码(multipass)设置为在系统启动时自动启动,并在重启后恢复持久化的 Ubuntu 实例。这种情况发生在服务/守护进程级别,无需用户登录。

    启动 Multipass 虚拟机时,可以通过添加用户数据来传递--cloud-init带有包含用户数据的适当 YAML 文件的标志。Multipass 支持原生云输入,无需使用 NoCloud 方法。

    Ubuntu 在 WSL 上

    所有Windows版本(除Windows 10和11 S模式或某些传统物联网构建外)均包含WSL,后者利用专用的Hyper-V子集来托管高性能的Linux虚拟机。

    WSL 是 Windows 操作系统的一项功能,可让您直接在 Windows 上运行 Linux 文件系统,以及 Linux 命令行工具和 GUI 应用程序,同时支持传统的 Windows 桌面和应用程序。WSL 使用 Hyper-V 中的虚拟机平台组件来运行 Linux 内核。它提供完整的 Linux 系统通话兼容性,性能高。系统调用(syscall)是指程序要求操作系统内核执行某项操作的方式,例如打开文件或启动网络连接。这意味着你的Linux二进制文件不再依赖翻译层来与Windows通信;而是使用翻译器与使用母语之间的区别。在轻量级实用工具虚拟机中,当应用程序发出系统调用时,它正在与真正的Linux引擎通信,从而实现几乎100%的兼容。由于Linux内核管理着自己的虚拟硬盘(ext4),因此像git克隆、npm安装或编译大代码库这样的操作,其速度与原生Linux机器相当。

    WSL 使用一种称为 GPU 半虚拟化(vGPU)的技术。Windows 不再使用 Linux 内核与 Windows 竞争来控制显卡,而是共享 GPU。dxgkrnl 驱动程序将 GPU 的虚拟抽象投影到 WSL 实例中。对于使用 NVIDIA CUDA 的任务,WSL2 上的性能可与原生 Linux(1%)相媲美,适用于大型长期工作负载。这种兼容性功能可让您通过Windows Subsystem for Linux GUI(WSLg)运行Linux GUI应用程序,并实现硬件加速,意味着它们感觉流畅而非滞后。尽管GPU访问功能非常出色,但与原生Linux相比,直接访问专有USB设备或专用串行端口等设备可能需要进行故障排除。

    Ubuntu on WSL 支持本地云输入:

    1. 在创建目录%USERPROFILE%\.cloud-init\
    2. 创建一个名为<DistroName>.user-data(例如Ubuntu-26.04.user-data)

    第一次跑步的时候wsl --install Ubuntu-26.04WSL 将获取此文件并自动执行您的设置。

    使用 Microsoft Intune 为 WSL 启用 Ubuntu Pro

    Microsoft Intune 是一种基于云的端点管理解决方案,可管理 Windows 计算机的配置。Microsoft Intune 可以通过利用与 wsl.exe 可执行文件交互的 PowerShell 脚本,在 WSL 实例中执行命令。您可以使用“设置目录”使用 Microsoft Intune 来配置设置或部署 WSL MSI 应用程序,从而启用和管理 WSL。

    CTA: CTA:Canonical Landscape 超越了 WSL 实例中任意命令执行的范畴,提供了用于用户和软件的配置、合规性、强化、审核、补丁处理、报告和库存的企业级功能。将 Microsoft Intune 与 Ubuntu 结合使用 Landscape 进行大规模管理,使开发人员能够在监管最严格的环境中加速其工作流程。

    Ubuntu Pro for WSL 是 Windows 软件,为 Windows 中的 Ubuntu 24.04 LTS 和 Ubuntu 26.04 LTS WSL 实例提供一站式安全维护和企业支持。Ubuntu Pro for WSL Windows 软件可支持免费和付费的 Ubuntu Pro 订阅。安装适用于WSL的Ubuntu Pro,确保所有在WSL上使用Ubuntu的用户始终保持安全,Landscape此外还通过Mananical的Ubuntu系统管理解决方案Landscape实现全面的管理和洞察。

    Ubuntu Pro for WSL 软件被打包为 MSI 应用程序。安装和配置 MSI 包由 Microsoft Intune 和 Active Directory 原生支持。使用 Microsoft Intune 为 WSL 安装 Ubuntu Pro 最简单的方法是将其部署为企业行(LOB)应用程序。在启用 WSL 的受监管环境中,应将 Ubuntu Pro for WSL .msi 文件选为 Microsoft Intune 中的“需要”(需要自动安装)包。存储 Ubuntu Pro 用于 WSL 代理配置最安全的位置是 Windows 注册表。修复脚本可用于 Microsoft Intune,其中检测脚本可检查所需的密钥和值,而修复脚本可设置缺失或偏差值,从而确保持续合规性。

    导航到您的 Microsoft Intune 管理中心门户,然后选择:设备 > 配置配置文件 > 创建 > New Policy新策略 > Windows 10 及更高版本 > 设置目录。为新策略创建一个名称,然后搜索“适用于Linux的Windows子系统”以查看并添加可用设置的完整列表。重要的WSL特定设置包括:

    • Allow the Inbox version of the Windows Subsystem for LinuxEnabled允许使用适用于Linux的Windows子系统的收件箱版本:如果需要在内部自行托管WSL镜像,则无需从微软商店下载。
    • 允许使用 WSL1:禁用,因为 Landscape 的 WSL 企业管理功能仅在 WSL2 中可用。

    适用于受控环境下 WSL 的 Ubuntu Pro

    Ubuntu Pro for Windows 包含在 cloud-init.yaml 中定义 root(sudo 和 su)权限的用户配置。微软最近将原生的Entra ID集成直接集成到WSL中,以确保WSL实例的启动,此集成通过Microsoft Intune进行管理。此组合可控制在 WSL 上使用 Ubuntu 的用户,以及 Ubuntu 在 WSL 上是否授予了 root 权限。使用 Azure 中的 Linux VM 扩展的 Entra ID 登录时,Entra ID 会控制谁可以在 WSL 上启动 Ubuntu。它通过基于 Azure 的基于角色的访问控制(RBAC)来实现这一点。Entra ID 的登录日志将告诉用户何时对 Linux 机器进行身份验证,但该日志会止步于此。成功会话开始后,它不会记录他们输入的命令。

    对sudo和su的实际跟踪由Linux操作系统本身完成。每当用户升级权限时,Ubuntu 都会将此活动记录到其本地系统日志/var/log/auth.log。要集中跟踪此活动,您需要弥合本地 Linux 日志与云环境之间的差距。安装 Azure 监视器代理(AMA),在 Azure 中配置数据收集规则(DCR),以指示 AMA 收集 authpriv 系统日志功能(该功能包含 sudo 和 su 事件,并将这些日志发送到 Azure 日志分析工作区。将您的日志分析工作区连接到 Microsoft Sentinel(Microsoft 的 SIEM)。现在你可以编写KQL(Kusto查询语言)查询,每次有人成功执行或未成功执行sudo或su时都会向安全团队发出警报。

    在 Microsoft Intune 和 Landscape 中可用的控件之间,可以集中为用户提供 WSL 实例。用户能够自助创建符合新要求、符合要求的实例,管理员能够在WSL实例中对Windows版块进行合规性调查。Ubuntu Pro for WSL 可确保启用扩展安全维护(ESM),提供可根据管理策略应用的 CVE 安全更新。Canonical 为通过 Ubuntu 的仓库打包和发布的软件提供长达 15 年的 CVE 安全补丁。Ubuntu Pro 订阅还涵盖了 WSL 上流行工具链(如 Python、Go、Rust 等)的安全维护。此一站式解决方案可确保快速、可靠地修补安全漏洞,使WSL成为企业环境中可行且合规的选项。

原文链接:https://ubuntu.com//blog/how-to-use-ubuntu-on-windows


关注微信号:智享开源 关注微博:IMCN开源资讯网 ,可及时获取信息

投稿作者 作者网站

评论列表

发表评论

你必须 登录 才能发表评论.

为您推荐


请支持IMCN发展!

谁在捐赠

微信捐赠 支付宝捐赠
微信捐赠 支付宝捐赠
ta的个人站点

发表文章4222篇

关注我的头条 不要放弃,百折不挠,坚强、自信。


IMCN【我是菜鸟】博客全面恢复更新,IMCN【我是菜鸟】博客已于 2026年3月13日 全面恢复内容更新!

扫码关注,或微信端搜“智享开源”

归档

💬 和我聊聊