Хочу использовать qemu для эксперементов. Ожидал, что система снимков будет подобна сохранениям из игр. Но подвох проявился даже при последовательной серии снимков - сохраняет изменения со смещением в 1. А именно:
Имеем qcow2 со свежеустановленной ос. Все снимки сделаю при выключенной ВМ.
Сразу создадим снимок 0 и тут-же загрузимся с него, чтобы изменения не могли попасть на диск.
virsh snapshot-create-as debian 0 void
virsh snapshot-revert debian 0
Включим ВМ и внесём изменения (далее опущу для краткости).
virsh start debian
ВМ: ls = пусто
ВМ: mkdir 1
ВМ: ls = 1
virsh snapshot-create-as debian 1 void
ВМ: ls = 1
ВМ: mkdir 2
ВМ: ls = 1 2
virsh snapshot-create-as debian 2 void
ВМ: ls = 1 2
ВМ: mkdir 3
ВМ: ls = 1 2 3
virsh snapshot-create-as debian 3 void
virsh snapshot-list debian --parent
Имя Время создания Состояние Родитель
---------------------------------------------------------
0 2022-06-11 19:38:07 +0700 shutoff
1 2022-06-11 19:43:28 +0700 shutoff 0
2 2022-06-11 19:48:06 +0700 shutoff 1
3 2022-06-11 19:49:04 +0700 shutoff 2
Кажется, что всё правильно, но посмотрим, что сохранилось:
virsh snapshot-revert debian 1
ВМ: ls = пусто
virsh snapshot-revert debian 2
ВМ: ls = 1
virsh snapshot-revert debian 3
ВМ: ls = 1 2
А я хотел, чтобы было:
Снимок Содержимое
0 ls = пусто
1 ls = 1
2 ls = 1 2
3 ls = 1 2 3
Что не так?
Проверил, что при откате(revert) и создании снимков(snapshot-create), текущий снимок становится тем, который указывали для проведения этих операций. Поэтому, дело не в current.
Так делает и графический virt-manager.
Не нашёл ответа на: man virsh,
https://wiki.qemu.org/Documentation/CreateSnapshot, habr, habr q&a, ютуб, stackoverflow ru en.