快照与回滚
为何在此快照几乎不花成本、树如何分支,以及回到已知良好状态的三种方式。
1VMTool 中的快照是机器磁盘的 APFS 克隆,而非复制。文件系统在任一侧写入 前共享块,因此拍快照复制零字节,约一毫秒完成——24 GiB 与 1 TiB 磁盘 相同,因为没有需要随大小扩展的数据。
这改变了快照的用途。当快照要花秒和 GB 时你会省着用,并跳过 risky 步骤 前的那一张。当它几乎免费时,你就不必再纠结。
拍摄与恢复
1vm snapshot take dev "before upgrade"
1vm snapshot list dev
1vm snapshot restore dev before-upgrade
1vm snapshot rm dev <ref>
<ref> 是名称或 id 前缀。snapshot rm 接受 -r 删除整支分支而非单个
节点。
快照会分支
恢复较旧状态后再拍新快照会创建第二条线,而不是丢弃第一条。可从同 一起点探索多个方向,树视图绘制真实形状及每个节点的独有数据——实际占用 磁盘的分支可见,无需猜测。
捕获内容
| Situation | Captured |
|---|---|
| Running on Virtualization.framework | Memory alongside the disk, so restoring resumes mid-execution |
| Running on the 1VM engine | Disk only — restoring cold-boots |
| Stopped, either engine | Disk only |
三种回退方式
容易混淆,需直说:
snapshot restore 回到你选择的快照。
discard-session 回到本次启动时的快照,丢弃开机后写入的一切:
1vm discard-session dev --force
reset 回到干净状态:
1vm reset dev --force
回滚模式
对不应累积状态的机器——浏览 VM、沙箱、演示——开启回滚模式,关机时自动 丢弃所有写入:
1vm rollback dev on
每次启动都从安全点开始,无需记住任何东西。这是你本需手动保持的纪律的 结构化版本。
克隆
同一克隆原语提供廉价的整机构造副本:
1vm clone dev test # linked clone, shares blocks until they diverge
1vm clone dev test --full # an independent copy
1vm clone dev test --rekey-ssh # regenerate the guest's host keys
克隆将与父机同时运行时请用 --rekey-ssh——否则两台机器呈现相同 SSH
主机密钥。
磁盘用量
1vm du
报告库中 allocated、on-disk 及每个快照的字节——克隆共享块时对“占多少 空间”的诚实答案。