VM バンドル
マシンはフォルダ。中身、安全にコピーできるもの、コミットすべきもの。
1VMTool マシンは DB 行や opaque blob ではなく .vm 拡張のディレクトリ — inspect/copy/move 可。
dev.vm/
config.json 定義 — コミット
disk.asif 主ディスク、sparse
snapshots/
index.json
a1c2/disk.asif
デフォルトは home のライブラリ。ONEVM_HOME で別場所 — 外付 SSD 等 — 全体が移動。
config.json
guest type、engine、CPU、memory、disk、network、shared folders、input/graphics。plain JSON。VC に定義を載せるならこれ。
1vm config dev
1vm get dev
定義と disk 分離 — 形 の共有は数 KB。同僚は 1vm create して自分の guest を入れる。
ディスク
sparse — guest 書込で成長、事前割当なし。256 GiB で 9 GiB 書込なら ~9 GiB。エンジンでファイル名異なる(形式違い)。1vm du が正直な数。
スナップショット
snapshots/ が木。各 snapshot は APFS clone — live disk とブロック共有し分岐するまで。新規はほぼゼロ追加。du が allocated/on disk/reclaimable 区別。
コピー
フォルダなので copy 可 — ただし 1vm clone 推奨。同 clone 原語で即完了:
1vm clone dev test
1vm clone dev test --full
1vm archive dev
実行中ファイルを編集しない
設定は 1vm set — 検証と live 適用。実行中に config.json 直編は host/guest 不一致の唯一の道。