如何恢复我的 vagrant VM(所有文件都已被删除)?
How can I restore my vagrant VM ( all file have been deleted)?
我不知道为什么,但是在执行 vagrant halt then up 之后,我在 VM 中的所有文件都丢失了。只有一个空的数据文件。当我通过 SSH 进入它时,putty 告诉我密钥已更改。
我保存了一个 package.box 可能有助于恢复我的 VM。
真不知道该怎么办。
非常感谢
在某些情况下,vagrant 似乎会在已有虚拟机的情况下重新创建一个新虚拟机。如果您需要将现有 VM 重新关联到您当前的 vagrant 项目目录,您可以 运行 以下步骤:
找出在VirtualBox中注册的VM是什么:VBoxManage list vms
fhenri@machine:~$ VBoxManage list vms
"<inaccessible>" {cf5c9fe6-be04-40f8-aeec-415bb0b74e37}
"<inaccessible>" {08732b8b-e80e-4707-9f4c-842bdcdb2442}
"<inaccessible>" {ced87630-c5d9-4396-9fc1-7a9277ec2f4a}
"<inaccessible>" {b9fc4466-2382-4629-9fcf-f414ab5093fd}
"<inaccessible>" {4442b12f-2b52-4edd-aa94-e87e2f4e54cd}
"default" {650472d0-3bb7-4a64-9035-8a6c6e012eb3}
"<inaccessible>" {17140ebf-94f3-4434-8576-e8c19cce05f4}
"<inaccessible>" {4bbf157f-00d4-4ee6-8aa1-fc3b170ad1a9}
"java_default_1460033990347_57680" {ff197c01-2f63-4e46-b8b6-98757a6f5084}
"debian_default_1461336132946_97987" {57559b51-0446-4b62-98c6-100bd09700a0}
"puppet-java_app_1463209753687_62581" {47779f5f-a5c2-4cda-9e6e-636173fc3dd2}
"testboxpuppet_default_1463642283236_68875" {ab8e9fcf-2803-4301-8a75-59c6a7a3f283}
"ud381_default_1463643058938_27416" {06d4940b-067f-4bac-b4e7-a5409340da95}
"api.notification.guru-core-01" {311aef0a-8a34-48da-a2fb-fceef89a635a}
"scotchio_default_1464423206546_32780" {c94b7982-5bef-4d78-9601-913606e117c6}
"ubuntu_default_1464510147764_37768" {c8e7ffba-eac6-47a4-b293-699ac4feca2f}
"php7_default_1464762585884_30680" {c2c73091-133b-4987-a644-90601abd1465}
您将获得当前在 virtual box 中注册的所有 VM 及其关联 UUID 的列表
- 更新您现有的
id
文件:
该文件将位于以下文件夹中 <project>/.vagrant/machines/default/virtualbox/id
。只需复制您从步骤 1
中找到的值
在我的示例中,如果我想关联 VM java_default_1460033990347_57680
我将复制值 ff197c01-2f63-4e46-b8b6-98757a6f5084
- 就是这样!只需 运行
vagrant up
并且 vagrant 将运行正确的 VM。
我不知道为什么,但是在执行 vagrant halt then up 之后,我在 VM 中的所有文件都丢失了。只有一个空的数据文件。当我通过 SSH 进入它时,putty 告诉我密钥已更改。 我保存了一个 package.box 可能有助于恢复我的 VM。
真不知道该怎么办。
非常感谢
在某些情况下,vagrant 似乎会在已有虚拟机的情况下重新创建一个新虚拟机。如果您需要将现有 VM 重新关联到您当前的 vagrant 项目目录,您可以 运行 以下步骤:
找出在VirtualBox中注册的VM是什么:
VBoxManage list vms
fhenri@machine:~$ VBoxManage list vms "<inaccessible>" {cf5c9fe6-be04-40f8-aeec-415bb0b74e37} "<inaccessible>" {08732b8b-e80e-4707-9f4c-842bdcdb2442} "<inaccessible>" {ced87630-c5d9-4396-9fc1-7a9277ec2f4a} "<inaccessible>" {b9fc4466-2382-4629-9fcf-f414ab5093fd} "<inaccessible>" {4442b12f-2b52-4edd-aa94-e87e2f4e54cd} "default" {650472d0-3bb7-4a64-9035-8a6c6e012eb3} "<inaccessible>" {17140ebf-94f3-4434-8576-e8c19cce05f4} "<inaccessible>" {4bbf157f-00d4-4ee6-8aa1-fc3b170ad1a9} "java_default_1460033990347_57680" {ff197c01-2f63-4e46-b8b6-98757a6f5084} "debian_default_1461336132946_97987" {57559b51-0446-4b62-98c6-100bd09700a0} "puppet-java_app_1463209753687_62581" {47779f5f-a5c2-4cda-9e6e-636173fc3dd2} "testboxpuppet_default_1463642283236_68875" {ab8e9fcf-2803-4301-8a75-59c6a7a3f283} "ud381_default_1463643058938_27416" {06d4940b-067f-4bac-b4e7-a5409340da95} "api.notification.guru-core-01" {311aef0a-8a34-48da-a2fb-fceef89a635a} "scotchio_default_1464423206546_32780" {c94b7982-5bef-4d78-9601-913606e117c6} "ubuntu_default_1464510147764_37768" {c8e7ffba-eac6-47a4-b293-699ac4feca2f} "php7_default_1464762585884_30680" {c2c73091-133b-4987-a644-90601abd1465}
您将获得当前在 virtual box 中注册的所有 VM 及其关联 UUID 的列表
- 更新您现有的
id
文件:
该文件将位于以下文件夹中 <project>/.vagrant/machines/default/virtualbox/id
。只需复制您从步骤 1
在我的示例中,如果我想关联 VM java_default_1460033990347_57680
我将复制值 ff197c01-2f63-4e46-b8b6-98757a6f5084
- 就是这样!只需 运行
vagrant up
并且 vagrant 将运行正确的 VM。