M1/M2のApple Silicom MACで仮想マシンを作るときに使っているUTMにはスナップショット取得機能はないけれど、仮想化エンジンにQEMUを指定したなら qemu-img
コマンドで取得できるよ、というお話し。
確認したバージョン
macOS | UTM | qemu-img |
---|---|---|
Ventura 13.5.2 | 4.3.5 | 8.1.0 |
手順
- 仮想マシンのディレクトリに移動
- 途中までGUI
- UTMを起動
- 作成済みでスナップショットを取得したい仮想マシンを右クリック
- 「Finderに表示」をクリック
- Finderに表示された「仮想マシン名.utm」を右クリック
- 「パッケージの内容を表示」をクリック
- 「Data」フォルダを右クリック
- 「サービス」の「フォルダに新規ターミナル*」か「New iTerm2 * Here」をクリック
- 最初からCUI
- ターミナルやiTerm2を起動
- ディレクトリに移動
% cd ~/Library/Containers/com.utmapp.UTM/Data/Documents/仮想マシン名.utm/Data/
- 途中までGUI
- 「*.qcow2」というファイルがあるはずなので
qemu-img snapshot
コマンドで色々操作する 詳細はqemu-img -h
やqemu-imgのWebページを確認してもらうとして、スナップショット関連のヘルプはこんな感じ↓Command syntax: snapshot [--object objectdef] [--image-opts] [-U] [-q] [-l | -a snapshot | -c snapshot | -d snapshot] filename Command parameters: 'filename' is a disk image filename Parameters to snapshot subcommand: 'snapshot' is the name of the snapshot to create, apply or delete '-a' applies a snapshot (revert disk to saved state) '-c' creates a snapshot '-d' deletes a snapshot '-l' lists all snapshots in the given image
qemu-img snapshot -l ファイル名
でスナップショットのリストを確認
スナップショットが何もなければ何も表示されない% qemu-img snapshot -l 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 %
qemu-img snapshot -c タグ名 ファイル名
でスナップショットを作ってみる
タグ名はそのまま書いてもいいし、スペースを空けたければ'‘や"“で囲む
自動で振られるIDでユニークになるから同じタグ名を付けることもできるけど、-dや-aの時に指定できない(最初にヒットした若いIDが選ばれるっぽい)ので重複させない方がいい% qemu-img snapshot -c hogehoge 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 % qemu-img snapshot -c 'hoge hoge' 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 % qemu-img snapshot -c "fuga fuga" 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 % qemu-img snapshot -c 日本語も使える 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2
- 再度確認、スナップショットがあればこんな感じに表示される
% qemu-img snapshot -l 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 Snapshot list: ID TAG VM SIZE DATE VM CLOCK ICOUNT 1 hogehoge 0 B 2023-09-13 08:32:50 00:00:00.000 0 2 hoge hoge 0 B 2023-09-13 08:33:02 00:00:00.000 0 3 fuga fuga 0 B 2023-09-13 08:33:13 00:00:00.000 0 4 日本語も使える 0 B 2023-09-13 08:33:21 00:00:00.000 0
- スナップショットを削除したいときは
-d
% qemu-img snapshot -d 'hoge hoge' 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 % qemu-img snapshot -l 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 Snapshot list: ID TAG VM SIZE DATE VM CLOCK ICOUNT 1 hogehoge 0 B 2023-09-13 08:32:50 00:00:00.000 0 3 fuga fuga 0 B 2023-09-13 08:33:13 00:00:00.000 0 4 日本語も使える 0 B 2023-09-13 08:33:21 00:00:00.000 0
- スナップショットに戻したいときは
-a
今どのスナップショットを使っているか?は分からないので使用者が覚えておく必要がある% qemu-img snapshot -a 'fuga fuga' 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 % qemu-img snapshot -l 651FC2FA-0BAA-4559-B590-5607AD56D704.qcow2 Snapshot list: ID TAG VM SIZE DATE VM CLOCK ICOUNT 1 hogehoge 0 B 2023-09-13 08:32:50 00:00:00.000 0 3 fuga fuga 0 B 2023-09-13 08:33:13 00:00:00.000 0 4 日本語も使える 0 B 2023-09-13 08:33:21 00:00:00.000 0