VirtualBox вернуться к снимку изнутри гостя
Есть ли способ восстановить снимок из гостевой машины VBox?
У меня есть машина Windows, на которой размещено множество машин. В настоящее время мы работаем с чем-то, использующим гостевую систему Ubuntu, и очень больно держать переключение между компьютерами, чтобы вернуть снимок.
Я имел в виду установку машины в "базовое" состояние, и каждый раз, когда я хочу перейти к этому, я просто набираю такую команду, как:
revertbase
Затем машина перезапустится в предыдущем снимке, и мне просто нужно перезапустить ssh, чтобы продолжить.
2 ответа
Вы не можете сделать снимок работающей машины, вы должны заморозить ее раньше, поэтому я предполагаю, что сам хост не может этого сделать.
На хост-машине вы можете сделать это из командной строки, используя VBoxManage.
Файл находится в
Программные файлы /Oracle/VirtualBox/VBoxManage.exe
и используется в качестве интерфейса командной строки с VirtualBox.
Используя команду:
VBoxManage snapshot "MachineName" take SnapShotName
И после этого:
VBoxManage snapshot "MachineName" discardcurrent -state
Чтобы вернуться к последнему состоянию, более подробно читайте нижеприведенный текст, чтобы облегчить доступ к VBoxManage, добавьте его в свой путь:
PATH=%PATH%;c:\Program Files\Oracle\VirtualBox
Управление снимками
Одной из наиболее полезных функций программного обеспечения для виртуализации является его способность делать снимки виртуальных машин. Всегда полезно сделать снимок виртуальной машины, прежде чем вносить в нее изменения. Снимки помогают на аппаратном уровне восстановить систему, которая стала непригодной для использования из-за изменений конфигурации оборудования, а на программном уровне они защищают от потери данных из-за случайного удаления или вируса.
Делать снимок из VirtualBox CLI - детская игра. Снимок VBoxManage "Fedora" снимает snap1-stable-system, делает снимок стабильной виртуальной машины Fedora, когда все работает идеально. Сохранение снимка может занять некоторое время, в зависимости от виртуальной машины и ресурсов на хосте. Чтобы не вносить изменения в систему во время создания снимка, VirtualBox скрывает весь интерфейс виртуальной машины, и вы не можете использовать его, пока снимок не будет сохранен.
Имея стабильный снимок в руке, играйте с системой. Если у вас возникли проблемы, и ваша машина не загружается или начинает работать ненормально, вы можете вернуться к снимку стабильной машины. Для этого сначала отключите виртуальную машину с помощью VBoxManage controlvm "Fedora" poweroff, а затем вернитесь к последнему снимку с VBoxManage снимком "Fedora" discardcurrent -state. Если у вас есть несколько снимков, вы можете вернуться к последнему, но одному снимку с ключом -all вместо -state.
Конечно, когда вы вернетесь к более старому состоянию, все изменения, сделанные с момента создания моментального снимка, будут потеряны, включая все изменения конфигурации и изменения старых и новых файлов. Вы можете обойти это, указав, что ваши данные должны храниться на "перезаписываемом" диске, который ведет себя как обычный диск, но не подвержен моментальным снимкам. Другими словами, когда вы делаете снимок, VirtualBox игнорирует записывающий диск. Вы можете хранить все ваши важные данные и файлы или полный каталог /home на этом диске.
¬ †
Чтобы добавить перезаписываемый диск, используйте параметр -type writethough при создании нового диска с помощью createvdi. Вы также можете изменить диск, который вы создали ранее, и сделать его записанным. Для этого сначала отсоедините его от виртуальной машины с помощью VBoxManage modifyvm "Fedora" -hdb none, а затем отмените регистрацию с помощью VBoxManage unregisterimage disk fourgig (используя имя диска в вашей системе вместо fourgig). Теперь зарегистрируйте его снова, но в качестве перезаписываемого диска с помощью VBoxManage registerimage диск типа "fourgig". Наконец, подключите его обратно к виртуальной машине, используя VBoxManage modifyvm "Fedora" -hdb fourgig.
Теперь вы можете безопасно сохранять данные на этом диске, и независимо от того, в каком состоянии находится виртуальная машина, данные всегда будут в безопасности. Но помните, чтобы не возвращаться обратно в состояние, которое было сохранено до создания этого диска; если вы это сделаете, VirtualBox просто удалит диск, потому что он не существует в этом состоянии. Кроме того, VirtualBox в настоящее время не позволяет вам сделать снимок виртуальной машины, к которой подключен записывающий диск, поэтому необходимо отсоединить записывающий диск перед сохранением состояния виртуальной машины, а затем снова подключить ее. Я надеюсь, что в следующих версиях VirtualBox наличие перезаписываемого диска не повлияет на процесс создания снимка.
Обновленный ответ. Вы все еще не можете сделать это непосредственно от гостя.
Вы можете запустить хост для перезапуска гостя с помощью общего диска / папки и скрипта, запущенного на хосте, который перезагрузит гостя при обновлении общего файла.
Включен мой скрипт Windows для перезапуска гостя. Команды, данные Канесином, у меня не сработали. У меня есть следующее в файле CMD.
PATH=%PATH%;c:\Program Files\Oracle\VirtualBox
vboxmanage controlvm "DEMO" poweroff
timeout /t 10
vboxmanage snapshot "DEMO" restorecurrent
timeout /t 10
vboxmanage startvm "DEMO"