如何恢复我的vagrant虚拟机(所有文件都已删除)?

3
我不知道为什么,在执行vagrant halt和up之后,我的虚拟机中的所有文件都丢失了。只剩下一个空的数据文件。当我SSH进入时,putty告诉我密钥已更改。 我保存了一个package.box,可能可以帮助恢复我的虚拟机。
我真的不知道该怎么办。
非常感谢。

你能打开VirtualBox并检查你的旧虚拟机是否还在吗?如果你只是使用vagrant halt命令停止了虚拟机,那么虚拟机文件不会消失,所以虚拟机应该还在。有很多情况报告称vagrant up命令会重新创建一个新的虚拟机(同时保留旧的虚拟机),因此你需要将旧的虚拟机与当前的vagrant重新连接。现在先检查一下你的虚拟机是否在VirtualBox中。 - Frederic Henri
是的!Vagrant 加载了错误的虚拟机。重新连接正确的虚拟机的方法是什么?非常感谢。 - glemoulant
1个回答

7

在某些情况下,Vagrant似乎会在已经存在虚拟机的情况下重新创建一个新的虚拟机。如果您需要将现有的虚拟机重新关联到当前的Vagrant项目目录中,您可以执行以下步骤:

  1. find out what are the VM registered in VirtualBox: 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}
    
你将会得到一个虚拟机的列表,其中包含它们关联的UUID。
第二步:更新你现有的id文件:
该文件位于以下文件夹中:<project>/.vagrant/machines/default/virtualbox/id。只需从步骤1中找到的值进行复制即可。
例如,如果我想关联虚拟机java_default_1460033990347_57680,我会复制值ff197c01-2f63-4e46-b8b6-98757a6f5084
第三步:完成了!只需运行vagrant up,vagrant就会操作正确的虚拟机。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接