vboxmanage.exe错误:无法重命名目录

13
我正在使用VirtualBox 4.2.18和Vagrant 1.3.3在Windows 7上。我已经执行了vagrant box add命令,如下所示:
vagrant box add MyBox http://ergonlogic.com/files/boxes/debian-LAMP-current.box 但是,当我到达vagrant up的步骤时,我收到以下错误消息:“vboxmanage.exe error could not rename the directory...”
如果有任何帮助,将不胜感激。
谢谢, Derek

2
启用调试模式VAGRANT_LOG=debug vagrant up以查看更多输出。 VAGRANT_HOME是否存在? - Terry Wang
谢谢Terry!那是一个非常有帮助的提示,让我更进一步了解了。现在我可以看到失败的命令是:VBoxManage modifyvm f975034b-43c2-46cb-abfc-6c233d23d61c --name Vagrant_default_1380153421,它抛出了重命名错误。 - geo derek
如果您想选择正确的答案,我的回答上有很多赞 :) - RonnyKnoxville
16个回答

40

我尝试了以下方法:

  • vagrant destroy -f
  • 手动删除虚拟机目录下的 virtualboxes 文件
  • 重启电脑
  • 重新安装 vagrant 和 virtualbox
  • 降级 vagrant 和 virtualbox
  • 使用 sudo 运行

但是都没有起作用。唯一有效的方法是打开 Virtualbox 界面,进入 Preferences 并将 Default Machine Folder 从原先的 VirtualBox VMs 改为 VMs

在这个问题上浪费了我大约 4 个小时的时间。希望有同样问题的人能够找到这篇文章。


3
感谢您的回复,我只浪费了大约30分钟的时间。 - trivektor
2
如果可以的话,我会给这个点赞100次!谢谢! - Schwesi
4
+1,因为这可能会对我有所帮助,但前提是我必须先通过vagrant destroy命令销毁所有的虚拟机,并手动创建一个C:\Users\myusername\VMs文件夹。谢谢。 - Ryan
2
我在看到这篇文章之前浪费了45分钟。 - thinkingmonster

12

我去了目录

VirtualBox VMs

我删除了里面的所有内容。然后只是执行了 vagrant up 命令,就OK了。


这对我也起作用了。不过,在你删除里面的所有内容之前,请确保运行 vagrant destroy -f - mauricioSanchez

3
我终于弄清楚了。原来知道如何为VirtualBox设置两个特定的目录路径很有用。这对我很有帮助,因为我在一个没有管理员权限的帐户下运行我的机器。所以我需要让VirtualBox使用我有安全访问权限的目录路径。第一步是设置VBOX_USER_HOME环境变量,可以在Windows 7的系统属性/环境变量中完成。通过这种方式,VBOX_USER_HOME变量将控制.VirtualBox目录的位置。其次,设置*.vbox文件的位置,通常是一个名为VirtualBox VMs的目录。要设置此路径,请打开VirtualBox GUI,然后转到“文件”>“首选项”,并在“默认机器文件夹”输入框中设置路径。希望这些信息能帮助他人。
Derek

我也遇到了管理员权限的问题。默认情况下,VirtualBox在需要管理员权限才能运行的单元中创建虚拟机。这对于VirtualBox本身并不是问题,但对于试图在此文件夹上工作的外部程序来说会造成问题。 - Ignacio Segura
你能解释一下需要为VBOX_USER_HOME和虚拟机GUI设置什么吗? - gst

3

对我有用的事情:

1)我必须手动删除 C:\Users\My_name\VirtualBox VMs\machine_name 文件夹。
2)为了防止再次发生这种情况,在执行 'vagrant destroy' 命令之前,我总是使用 'vagrant suspend' 命令停止当前机器。


不是每次都有效,有时它会显示文件夹正在使用中。 - Muhammad Omer Aslam
我认为在尝试删除文件夹之前杀死Vagrant进程将解决这个问题 :) - Vladimir Remeniuk

1
不要销毁您的vagrant机器!这是最后的选择。
在控制台中输入:
VBoxManage list vms
复制您机器的ID,类似于:
7fca07b2-65c6-420e-84b5-b958c15449a1
打开您的vagrant机器ID文件,类似于:
.vagrant/machines/default/virtualbox/id
用刚才复制的ID替换并执行:
Vagrant up 这对我总是有效。如果不行,只有作为最后的选择尝试:vagrant destroy -f

VBoxManage在PATH中不可用,所以我不得不在C:\Program Files\Oracle\VirtualBox>VBoxManage list vms中找到它。但是这在Windows 10与Laravel/homestead中刚刚起作用。 - Darkproduct

1

我刚刚删除了这个文件夹下的所有子文件夹,然后它就起作用了。


1

在使用VirtualBox v6.1.26的Windows 10上,我遇到了相同的问题。

以下是在vagrant destroy后如何重新创建VM:

尝试执行以下步骤:

  1. 运行 vagrant destroy -f
  2. 使用 vagrant global-status --prune 检查可用机器
  3. C:/Users/your_username/.VirtualBoxMachines 中找到VMs文件夹,并手动使用文件浏览器删除名为您的计算机名称的文件夹
    • 如果您无法删除文件夹(其中一些进程打开了其中的文件),请尝试重启计算机并进行删除操作
  4. 现在可以使用 vagrant up 再次工作了

这对我起作用了!


0

你只需要找到名为VirtualBox VMs的文件夹。

在该文件夹中,您应该可以看到您的虚拟机enter image description here

然后,将想要更改名称的文件夹重命名,并运行:

vagrant up

所以你已经成功地运行了它。


0

Vagrant

在使用Vagrant时,我遇到了类似的错误。这是由于命名冲突引起的。对我而言解决方法是从Vagrantfile中删除实例的名称。

vb.customize ["modifyvm", :id,
              "--name", "oracle",
              "--memory", "512",
              "--natdnshostresolver1", "on"]

将其更改为

vb.customize ["modifyvm", :id,
              "--memory", "512",
              "--natdnshostresolver1", "on"]

0

这个错误意味着在虚拟机中有另一个与您用于此虚拟机相同名称的虚拟机。因此,请返回到您之前运行的那个虚拟机的文件夹,并使用 "vagrant destroy -f" 销毁它。然后再次尝试运行此虚拟机。


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