Vagrant - 为VirtualBox设置虚拟硬盘的位置

时间:2016-03-20 12:15:16

标签: vagrant vagrantfile

我在目录D:\vagrant\precise32\02-lamp\

中执行了以下命令(在Windows上,使用Git Bash)
$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
$ vagrant init precise32
$ vagrant up

请注意。我没有改变原来的Vagrantfile。

我认为目录D:\vagrant\precise32\02-lamp\将是VDI类文件的位置,但事实并非如此。工作目录用作共享文件夹

我找到了Vagrant盒子的位置 C:\Users\USER\.vagrant.d\boxes\precise32\0\virtualbox

根据Where is Vagrant saving changes to the VM我在VirtualBox GUI中找到了虚拟硬盘驱动器文件的位置。这是

C:\Users\USER\VirtualBox VMs\02-lamp_default_1458429875795_57100\

我想将此文件放在系统驱动器C:\中,而不是放在D:\的数据驱动器中。 如何设置这样的流浪汉配置?

3 个答案:

答案 0 :(得分:13)

对于VirtualBox,您可以通过GUI的“首选项”对话框更改所谓的“默认计算机文件夹”的位置。

VBox GUI (Preferences)

This guide,虽然有几年的历史,但工作正常,上周我就如何将现有的vagrant / VirtualBox硬盘移动到新的位置。

修改

我引用了以上链接/指南中的步骤,为子孙后代:

  
      
  • vagrant_home移至外部驱动器。我将其重命名为VAGRANT_HOME   我能够在没有ls -a的情况下看到它。

  •   
  • /path/to/drive/vagrant_home设为   ~/.bash_profile中的/path/to/drive/VirtualBox VMs

  •   
  • 打开VirtualBox   应用程序,打开首选项,并将其默认计算机文件夹设置为   VirtualBox VMs

  •   
  • 关闭VirtualBox。

  •   
  • 移动你的   驱动器的VirtualBox VMs文件夹。重新打开VirtualBox。你会看到的   您的虚拟机列为"无法访问"。从列表中删除它们。

  •   
  • 有关   外部驱动器上.vbox文件夹中的每个VM,浏览   到Finder中的文件夹,然后双击vagrant init文件将其还原   到VirtualBox Manager。 (有比这更简单的方法吗?)

  •   
  • 最后,移动您用过的任何现有的Vagrant目录   Vagrantfile(这些是每个中都有LOOP AT gt_eanl INTO gs_eanl. ls_eanl_new = gs_eanl. lv_temp = ls_eanl_new-anlart. if lv_temp ca ''. CONDENSE lv_temp. ls_eanl_new-anlart = lv_temp. endif. CALL FUNCTION 'ISU_DB_EANL_UPDATE' EXPORTING x_eanl = ls_eanl_new x_eanl_old = gs_eanl x_upd_mode = 'U'. IF sy-subrc NE 0. write:'eanl not updated'. skip. ELSE. write:'eanl updated'. skip. ENDIF. ENDLOOP. 的目录)   外部驱动器。由于这些目录只存储您的元数据   可以将它们留在你的主驱动器上,但保留一切都很好   这样你就可以很容易地将整个驱动器插入另一个驱动器   机器并从那里启动你的虚拟机。

  •   

答案 1 :(得分:1)

  

对于外部驱动器上VirtualBox VMs文件夹中的每个VM,浏览到Finder中的文件夹,然后双击.vbox文件将其还原到VirtualBox Manager。 (有比这更简单的方法吗?)

有一种更简单的方法...... 进入VirtualBox Manager GUI,单击Machine>添加并找到您要添加的.vbox。

答案 2 :(得分:0)

也可以通过CLI来执行以下操作:始终要在导入期间更改Virtualbox创建VM的位置(因为Virtualbox通常希望将它们放在一个位置,而不是像VMware那样跟踪它们在磁盘上的任何位置做到了。

请注意,通过GUI或CLI更改此设置不会移动现有的VM,它只会设置一个新路径,供导入/创建的下一台计算机使用。如果您有要移动的现有计算机,则可以关闭并关闭Virtualbox的所有实例,然后在cmd / shell窗口中使用mv /old/path /new/path或将文件夹剪切并粘贴到GUI中的新位置,然后将machinefolder更改为该路径,然后打开Virtualbox,它将检测到所有现有的VM。

如果您有大量用户需要将VM路径移出其主目录,以避免大量文件自动备份,那么使用CLI可使脚本编写/自动化变得更加容易。 VM的“最佳”位置取决于您的系统,但是/usr/local/可能是在macOS或Linux上创建新文件夹的好位置。

# Look at the current path

vboxmanage list systemproperties | grep machine

# Output (commented for easier copying and pasting of commands)
# Default machine folder:          /Users/<YourUser>/VirtualBox VMs

# Set it to a different folder in your home aka ~
# If you user has access to the path and can create files/folders, then
# the folder doesn't need to exist beforehand, Virtualbox will create it

vboxmanage setproperty machinefolder ~/VirtualMachines

# No output produced

vboxmanage list systemproperties | grep machine

# Output (commented for easier copying and pasting of commands)
# Default machine folder:          /Users/<YourUser>/VirtualMachines

您还可以将其设置为家庭以外的文件夹,但这通常需要创建该文件夹并在Virtualbox可以使用它之前固定权限。

# [Optional] Only needed if moving out of the home directory to
# a place the user doesn't have permission to access by default
sudo mkdir -p /usr/local/VirtualMachines && \
sudo chown -R ${USER} /usr/local/VirtualMachines

# If you add : like this `${USER}:` to the above, instead of 
# setting the group to admin or wheel it will use the user's default group
# which can be seen by running `id -g`
vboxmanage setproperty machinefolder /usr/local/VirtualMachines

# No output produced

vboxmanage list systemproperties | grep machine

# Output (commented for easier copying and pasting of commands)
# Default machine folder:          /usr/local/VirtualMachines

如果您改变主意,可以轻松地将其设置为默认值,但是您需要自己将虚拟机重新移回。

vboxmanage setproperty machinefolder default

vboxmanage list systemproperties | grep machine

# Output (commented for easier copying and pasting of commands)
# Default machine folder:          /Users/<YourUser>/VirtualBox VMs