Я только что попробовал обновление на основе снимка с Ubuntu. И да, мне нужно было перезагрузиться несколько раз. Сначала переименуйте исходный root-lv во что-то другое, чтобы вы могли присвоить снимку исходное имя (поскольку обновление создает много изменений и изменения происходят быстрее на снимке, чем на оригинале):
# lvrename lvm root root-old
# lvcreate -n root -s lvm/root-old -L 10G
Размер должен быть выбран соответствующим образом. Затем перезагрузитесь, чтобы «новый» lvm / ubuntu был смонтирован как root, и вы сможете выполнить обновление. Теперь вы можете протестировать новую версию и даже перейти на старую систему
# lvrename lvm root root-new
# lvrename lvm root-old root
# reboot
Если вы хотите отказаться от обновления, просто запустите (из старой системы)
# lvremove lvm/root-new
Если вы хотите зафиксировать изменения, просто запустите (из старой системы)
# lvconvert --merge lvm/root-new
или из новой системы
# lvrename lvm root root-new
# lvconvert --merge lvm/root-new
# lvrename lvm root-old root
с последующей перезагрузкой. Система сразу же откажется выполнить слияние, поскольку тома открыты. Таким образом, слияние будет начато во время загрузки и продолжено, пока вы уже можете работать с системой.
Да, и кстати: при переключении между системами, не забудьте использовать соответствующее ядро. Поскольку / boot не является частью lvm, старое и новое ядра будут размещаться рядом.
dmsetup targets
должен отображать snapshot-merge, если это так, команда merge, примененная к snapshot-lv, вернется в состояние, в котором был сделан снимок.