
Lima v2.3 发布:Windows 原生运行、Linux 支持 VMnet 网络并新增菜单式 TUI
来源标题:Lima v2.3: Native on Windows, VMnet on Linux, and menu TUI
Lima v2.3 于 11 月 6 日发布,Windows 上无需额外依赖即可启动虚拟机,通过 WSL2 同款 Host Compute System 运行,不再需要 QEMU 和 Unix 工具链。Linux 主机获得与 Mac 相同的 socket_vmnet 真实 IP 地址网络。所有平台新增终端 UI,便于管理虚拟机。
以下正文由 AI 翻译自 CNCF Blog(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
2023 年 7 月发布的 v2.2 中,我们加入了对 Windows guest 的支持。11 月 6 日,我们发布了 Lima v2.3,如今它在 Windows 上无需额外依赖即可运行:虚拟机通过支撑 WSL2 的同一个 Host Compute System 启动,不再需要 QEMU,也不需要 Unix 工具链。在 Linux 上,虚拟机将获得 Mac 用户早已通过 socket_vmnet 享受到的“真实 IP 地址”网络。而在所有主机平台上,全新的终端 UI 让虚拟机管理更加友好。
什么是 Lima?
Lima(Linux Machines)是一个用于启动本地虚拟机的命令行工具。它最初专注于在笔记本电脑上运行容器,并向 Mac 用户推广 containerd;Lima 于 2022 年 9 月作为 Sandbox 项目加入 CNCF,并于 2025 年 10 月晋升为 Incubating 项目。如今,Lima 支持各种非容器工作负载、非 macOS 主机、非 Linux guest,以及稳健的 AI 沙箱。
如果你使用 Homebrew,可以通过以下命令安装 Lima:
brew install lima
如果你使用 Windows,可以通过 PowerShell 安装 Lima:
winget install Lima.Lima
其他安装方式请参见 https://lima-vm.io/docs/installation/。
v2.3 的更新
Windows 主机:HCS 驱动(实验性)
在此之前,想要使用 Lima 的 Windows 用户有两个选择:wsl2 或 QEMU 驱动。v2.3 新增了第三个选择——全新的 hcs 驱动。它直接与 Windows Host Compute System(HCS)API 通信,这是 WSL2 所基于的 Windows 虚拟化层。在 v2.2 的公告中,我们曾表示 LFX 导师项目将“探索和评估 Windows 主机上的原生虚拟化支持”。几周之后,这项研究已经变成了一个可用的驱动。
尝试之前
- 在机器上启用虚拟化。
- 在管理员 PowerShell 中将自己加入
Hyper-V Administrators组,然后重启终端:
net localgroup "Hyper-V Administrators" /add
- 然后在 shell 中运行 Lima:
limactl start --vm-type hcs --plain --dns 8.8.8.8
lima
当前限制
- 仅支持
plain模式。目前还没有文件挂载,也没有动态端口转发。 - 同一时间只能运行一个 HCS 实例,因为 HCN 网络子网是固定的。
- 必须通过
–dns标志显式指定 DNS 服务器。
详情请参阅 HCS 驱动文档。
更多 Windows 改进
- Lima 现在能识别 Windows 内置的 SSH 客户端,正确处理 Windows 路径,并使用匹配的挂载服务器。
limactl shell、limactl copy和 reverse-sshfs 挂载在标准 Windows 安装上均可正常工作。 - 如果你将 QEMU 安装在默认位置,此前 Lima 找不到它,除非你手动将
%PROGRAMFILES%\QEMU添加到PATH。现在 Lima 会自动检查这些常见安装目录。 - v2.2 引入的 Windows guest 虽然可以启动,但无法在启动时进行自定义。它们现在对
provision提供了有限支持。system、user、data和dependency脚本可让你自动安装软件并配置 guest。boot、yq和ansible模式尚不支持。详情请参阅 Windows guest 文档。
Linux 主机:虚拟机的真实网络
在 macOS 上,socket_vmnet 为虚拟机提供一个主机可直接访问的 IP 地址。Linux 此前没有等价方案,因此 lima: shared、lima: host 和 lima: bridged 网络仅在 macOS 上可用。
v2.3 引入了 lima-privileged-net,这是一个面向 Linux 主机的小型特权辅助程序,它会:
- 为每个网络创建 Linux 网桥并分配网关地址,
- 运行
dnsmasq提供 DHCP 和 DNS,并为shared模式添加 NAT 和转发规则, - 为每个实例创建一个 tap 设备,将其交给调用用户,并连接到网桥,
- 在最后一个实例离开时移除网络,并且只会操作遵循 Lima 命名方案的接口。
Linux 上的一次性设置:sudoers 文件
创建网桥和 tap 设备需要 root 权限,因此首次启动前有两个步骤:
- 以 root 身份安装 Lima,并安装
dnsmasq。limactl sudoers会拒绝为不属于 root 的辅助程序生成规则。 - 生成并安装规则:
limactl sudoers >etc_sudoers.d_lima
less etc_sudoers.d_lima
sudo install -o root -m 0440 etc_sudoers.d_lima /etc/sudoers.d/lima
rm etc_sudoers.d_lima
然后在受管网络上启动一个实例:
limactl start --network=lima:shared --vm-type=qemu
详情请参阅 Linux 网络文档。
macOS 主机:为虚拟机提供真实磁盘
在 v2.3 中,Lima 现在可以将块设备(USB 驱动器或外接 SSD)挂载到 VZ guest,而无需通过文件共享。要使用此功能,需要 sudo 权限进行配置。
macOS 上的一次性设置:sudoers 文件
打开主机磁盘需要 root 权限,因此首次使用 –block-device 启动前有两个步骤:
- 辅助程序及其上方的每个目录都必须属于 root。典型的 Homebrew 安装目录对用户可写,因此请将 macOS 发布归档解压到
/opt/lima,并直接运行/opt/lima/bin/limactl:以普通用户身份生成规则、审查规则并安装:
sudo install -d -o root -g wheel -m 0755 /opt/lima
sudo tar --no-same-owner -xzf lima-VERSION-Darwin-ARCH.tar.gz -C /opt/lima
- 以普通用户身份生成规则、审查规则并安装:
limactl sudoers --block-device=/dev/disk4 >etc_sudoers.d_lima
less etc_sudoers.d_lima
visudo -cf etc_sudoers.d_lima
sudo install -o root -g wheel -m 0444 etc_sudoers.d_lima /etc/sudoers.d/lima
rm etc_sudoers.d_lima
该规则仅允许你的用户在该设备上运行辅助程序。重新生成文件时,请包含所有你希望保留的授权,因为安装新文件会替换之前的文件。
完成这些步骤后,只需一个标志:
limactl start --vm-type=vz --block-device=/dev/disk4 template:default
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。