Удалить snapshot virtualbox по его UUID или имени
Хотелось бы тем же скриптом удалять snapshot недельной давности командой:
Для этого нужно узнать его UUID или имя. Для этого есть команда:
VBoxManage snapshot FreePBX15_test list –machinereadable
SnapshotName=«FreePBX15_test_05-13-202116:54:40» SnapshotUUID=«75c54407-03e0-4d4d-85dc-f4b23ff2153f» SnapshotDescription=«Snapshot taken on 05-13-202116:54:40» SnapshotName-1=«FreePBX15_test_05-13-202117:20:01» SnapshotUUID-1=«5ed0ab34-2339-49e2-be8a-84f7c0aa1221» SnapshotDescription-1=«Snapshot taken on 05-13-202117:20:01»
Подскажите, как вытащить искомые данные из вывода этой команды?
Ошибка «Не удалось удалить снимок. Hard disk has more than one child hard disk» в VirtualBox
Создание снапшотов является одной из ключевых и наиболее полезных фишек VirtualBox . Создав снимок виртуальной системы, вы можете делать с ней что угодно, даже если она окажется безнадежно повреждена, всегда можно будет восстановить ее состояние, не прибегая к созданию новой виртуальной машины. В VirtualBox предусмотрена возможность удаления ставших ненужными снимков, однако их удаление не всегда проходит гладко.
Так, если у вас имеется несколько дочерних дисков-снапшотов, после манипуляций с отключением/подключением к VM виртуальных дисков вы можете столкнуться с ошибкой удаления родительского снимка уже после того, как вы вполне успешно удалили дочерние снимки.
Если развернуть окошко с ошибкой, то можно будет получить ее код и описание.
Обычно это «Hard disk has more than one child hard disk» , указывающее на использование дисками-снапшотами базового диска. Основная причина ошибки — образовавшиеся связи между дочерними дисками-снапшотами и одним из основных виртуальных дисков. Чтобы ее устранить, нужно удалить все лишние (не подключенные) разностные диски. Разностным в VirtualBox называется диск, который хранит сведения об изменениях относительно родительского диска, смотрите рисунок.
На логическом уровне гостевая операционная система воспринимает его как единый диск, однако на уровне физическом это отдельный файл, на который VirtualBox производит запись всех изменений, тогда операции чтения выполняются на обоих файлах — основном и разностном.
Но перейдем к решению нашей проблемы.
Если вы столкнулись с ошибкой VirtualBox «Hard disk has more than one child hard disk» , первым делом убедитесь, что любой из виртуальных дисков не используется другой виртуальной машиной.
Если используется, отключите его в настройках VM, в которой возникла проблема.
Если не используется, сразу переходим в главное меню VirtualBox Файл -> Менеджер виртуальных носителей.
И на вкладке «Жесткие диски» раскрываем список носителей, присоединенных к базовому виртуальному контейнеру, указанному в сообщении об ошибке. Находим в списке записи со статусом «Не подсоединен» и удаляем их.
После этого проблемный снимок должен удалиться без ошибок.
Как правильно удалять снэпшоты (snapshots) в VirtualBox для минимизации размера?
Поставил Windows XP на Oracle VirtualBox для экспериментов с автомобильным сканером. Система с нужным софтом занимает 1,5 Gb (дистрибутив Windows XP сильно урезанный и без всяких hybernate.sys и pagefile.sys)
В процессе экспериментов (касающихся ТОЛЬКО настроек софта, без доп. установки чего-либо) наплодил 7 снапшотов в двух ветках. Сейчас хочу удалить ненужные снимки, оставив один последний снимок в одной ветке.
Перед удалением сделал полный клон всей выключенной виртуальной машины на всякий случай.
В клоне удалил все снимки кроме нужного, на выходе размер — 10 Гигабайт. Что я сделал не так, и какой должен быть правильный порядок удаления снэпшотов, чтобы размер вернулся к первоначальному 1,5 Гб или сильно близко к этому?
- Вопрос задан более трёх лет назад
- 2913 просмотров
Комментировать
Решения вопроса 1
Здесь отвечаю на вопросы.
Как правильно удалять снэпшоты (snapshots) в VirtualBox для минимизации размера?
Снимки системы при удалении (слиянии) только увеличивают размер виртуального диска, если он изменяемый. Чтобы сжать виртуальный диск, а это зависти от его типа, можно выполнить команду:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "H:\-virtual-box-disc\tsk-7-64.vdi" --compact
Может не помочь.
Для виртуальных дисков советуют чистить незанятое пространство:
@Echo OFF Echo %COMPUTERNAME%: %DATE% %TIME% Clean free space > run.log sdelete.exe -C С: Echo %DATE% %TIME% Zero free space >> run.log sdelete.exe -Z С: Echo %DATE% %TIME% End>> run.log
Антон Ефремов @zamboga
Все ок, спасибо, сжал образ. Пара ремарок.
1. У вас ошибка в синтаксисе sdelete. Ключа -с не существует, есть ключ -s.
Нет никакой ошибки:
SDelete - Secure Delete v1.61 Copyright (C) 1999-2012 Mark Russinovich Sysinternals - www.sysinternals.com usage: C:\Program Files\SDelete\sdelete.exe [-p passes] [-s] [-q] . C:\Program Files\SDelete\sdelete.exe [-p passes] [-z|-c] [drive letter] . -a Remove Read-Only attribute -c Clean free space -p passes Specifies number of overwrite passes (default is 1) -q Don't print errors (Quiet) -s or -r Recurse subdirectories -z Zero free space (good for virtual disk optimization)
Проще всего ввести одну команду, чем батник писать: sdelete.exe c: -s -z
C:\Program Files\SDelete\sdelete.exe [-p passes] [-z|-c] [drive letter] .
Если обрабатывать диск целиком, то [-z|-c] означает или. А ваша команда не очистит место занятое удалёнными папками.
Can I delete snapshot but keep current state which is coming from that snapshot?
Can I delete a VirtualBox snapshot but keep the current state which is under the snapshot? The situation is depicted below: What I want to do is, delete the «it’s working» snapshot to save 10GB of disk space but I want to keep the current state. Can I just delete the snapshot or will it erase current state as well? If not, is there a way to keep the current state while I get rid of the 10GB of the snapshot?