如何扩展一台已停止的 Lume macOS 虚拟机磁盘并验证来宾容量?
【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua
Lume 允许你在一台已停止的 macOS 虚拟机上把磁盘总容量调大,并在来宾内部确认根 APFS 容器确实变大了。官方指南 Expand a VM disk 给出了一条完整路径:先用--dry-run预览、再执行扩展、最后启动 VM 用diskutil核到来宾容量。适用前提是:宿主是 Apple Silicon Mac、运行 macOS 13 或更新版本,且宿主的 macOS 版本不旧于来宾;目标 VM 使用 Lume 标准 macOS 布局(ISC、主 APFS、配对的 RecoveryOS),不是 FileVault 加密来宾。Lume 只支持扩容,不支持缩小磁盘。
准备条件:确认 VM 已停止且布局受支持
磁盘调整要求 VM 处于停止状态。先用lume ls确认状态为stopped,再停止目标 VM:
lume stop macos-tahoe执行前需要满足 限制文档 中列出的磁盘调整条件:
- 只能增大容量,且 VM 必须已停止;
- macOS 调整仅支持标准 Lume 布局:ISC、主 APFS,然后是配对的 RecoveryOS。遇到陌生分区几何结构时,Lume 会 fail closed 直接拒绝;
- FileVault 加密的 macOS 来宾不支持,因为宿主侧离线工具无法安全地校验并扩展其加密 APFS 状态;
- 宿主必须运行与来宾相同或更新的 macOS 版本;
- 默认的卷回(rollback)副本需要足够的宿主容量,用于存放已分配的 RecoveryOS 数据和写时复制(copy-on-write)元数据;
- 第一次 macOS 扩容必须留出足够空间把 RecoveryOS 迁到新位置而不与其旧位置重叠,Lume 会报出可接受的最小总容量;
- macOS 虚拟机磁盘使用稀疏文件,配置的容量描述的是来宾逻辑磁盘,宿主实际占用随来宾写入增长。另需为 macOS 来宾及其还原镜像预留至少 50GB 空闲磁盘空间。
把下面命令中的macos-tahoe换成你的 VM 名,120GB换成目标容量,本文其余命令同理。
第一步:用 --dry-run 预览调整计划
在 VM 停止后,用--dry-run校验目标大小而不修改磁盘:
lume stop macos-tahoe lume set macos-tahoe --disk-size 120GB --dry-run--dry-run只校验调整计划(分区布局、加密状态、宿主空间、VM 状态),不改动磁盘。如果预览阶段报告了布局、加密、宿主空间或 VM 状态的错误,先解决这些错误再进入下一步,不要直接执行正式扩容。
第二步:执行磁盘扩展
预览通过后再执行正式扩展,--disk-size设置的是新的磁盘总容量:
lume set macos-tahoe --disk-size 120GB对 macOS VM,Lume 会先创建一个卷回副本,然后在保留 RecoveryOS 的前提下扩展主 APFS 容器,整个过程可能持续数分钟。它的具体做法见 How Lume expands macOS disks:Lume 把 RecoveryOS 完整拷贝到磁盘新末端(保留分区类型、唯一标识、属性、大小和内容),重写两份 GUID 分区表副本,再请求diskutil让主 APFS 容器向相邻空间扩展,最终布局为:
[ ISC ][ expanded main APFS ][ RecoveryOS ]整个调整是一个事务:Lume 修改磁盘前会校验分区表、确认 VM 已停止,并在存储卷支持时创建写时复制备份;一个持久化标记记录事务阶段,标记存在期间run、clone、push操作都会拒绝使用该 VM。Lume 在更新配置的磁盘大小之前,会先校验迁移后的 RecoveryOS 字节和扩展后的 APFS 容量;任一步失败会从备份恢复磁盘与配置,之后再次执行 resize 时也能检测并恢复中断的事务。
两个与备份相关的可选标志:
# 成功后保留卷回文件 lume set macos-tahoe --disk-size 120GB --keep-backup # 跳过 macOS 卷回备份(仅在你已有该 VM 的另一份已验证副本时) lume set macos-tahoe --disk-size 120GB --no-backup--no-backup会移除自动卷回能力,但不会放宽分区、VM 状态或扩容后的校验检查。除非你确认手上有另一份可用的 VM 副本(例如先用lume clone macos-tahoe macos-tahoe-backup克隆),否则不要使用它。
第三步:启动 VM 并验证来宾容量
磁盘扩展完成后,启动 VM 并检查根容器的总空间:
lume run --no-display macos-tahoe lume ssh macos-tahoe 'diskutil info / | grep "Container Total Space"' lume stop macos-tahoediskutil info /的 "Container Total Space" 一行会输出根 APFS 容器的总容量(文档未提供固定示例输出),把它与你用--disk-size设置的目标容量对照,一致即说明来宾侧已看到扩展后的容量。验证完成后按上面最后一条命令停掉 VM。
验证步骤依赖lume ssh,因此 VM 需要支持 SSH:用--unattended tahoe创建的 VM 默认启用 SSH,初始账号为lume/lume。若 SSH 不可用,先确认 VM 处于运行状态,再用lume get macos-tahoe查看详情(见 限制文档 中的 "SSH is unavailable" 一节)。
限制与排查要点
- 只增不缩:
--disk-size只能设置更大的总容量,任何缩小操作都不受支持。 - 容量下限由 Lume 报告:第一次 macOS 扩容会给出可接受的最小总容量,低于该值直接调整不会成功,按报告的值调整目标容量即可。
- 如果事务中断(例如扩展过程中机器的电源或进程异常),重新运行 resize 命令时 Lume 会检测到残留的事务标记并恢复,不需要手工处理磁盘。
- 调整期间出现 "run, clone, push 被拒绝" 类现象时,通常是事务标记仍在,等当前调整完成或重新执行 resize 触发恢复。
- Linux VM 的情况不同:Lume 只增大磁盘镜像,扩展分区和文件系统需要你在来宾内部完成,具体命令取决于分区表和文件系统类型,不在本文范围内。
- 用
sudo lume执行会因HOME变化而找不到默认 VM 存储下的虚拟机,请用创建该 VM 的账户运行 Lume。
继续深入
- 完整操作指南:Expand a VM disk
- 磁盘调整限制与支持范围:Disk resizing limits
- RecoveryOS 迁移与回滚机制:How Lume expands macOS disks
lume set的完整参数表:Lume CLI reference
【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考