You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需执行vagrant add box导入Vagrant?跨设备访问虚拟机数据

1. 不执行vagrant add box命令导入Vagrant的方法
  • 直接通过Vagrantfile指定本地box路径:
    在你的Vagrantfile里配置本地box文件的绝对路径,启动时Vagrant会自动加载该文件,无需提前执行vagrant add box,示例代码如下:
    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/focal"
      config.vm.box_url = "/home/user/boxes/ubuntu-focal.box"
    end
    
  • 手动放置box到Vagrant默认存储目录:
    1. 找到Vagrant的box存储路径:
      • Windows:C:\Users\<你的用户名>\.vagrant.d\boxes
      • macOS/Linux:~/.vagrant.d/boxes
    2. 按规则创建子目录结构:比如针对ubuntu/focal,需创建ubuntu-VAGRANTSLASH-focal文件夹,再在其中新建版本号子目录(如1.0.0),最后是provider目录(如virtualbox)
    3. 将.box文件放入provider目录,同时创建metadata_url文件,内容填写任意有效URL(如https://vagrantcloud.com/ubuntu/focal)
      完成后Vagrant会自动识别该本地box,无需执行添加命令。
2. 跨电脑访问VirtualBox Vagrant虚拟机的存储信息

针对基于VirtualBox的ubuntu/focal虚拟机,可通过以下方式获取存储内容:

  • 导出虚拟磁盘文件挂载访问
    1. 在原电脑关闭虚拟机:vagrant halt
    2. 找到虚拟机的.vdi格式磁盘文件,路径通常在Vagrant项目目录下的.vagrant/machines/default/virtualbox/,或VirtualBox默认存储目录
    3. 将.vdi文件复制到目标电脑,在目标电脑的VirtualBox中:
      • 新建虚拟机时选择“使用已有的虚拟硬盘文件”挂载该.vdi
      • 或在现有虚拟机中添加硬盘,选择该.vdi文件,即可访问其中存储内容
  • 通过共享文件夹同步后传输
    1. 在原电脑的Vagrantfile中添加共享文件夹配置,将虚拟机内目标目录同步到本地:
      Vagrant.configure("2") do |config|
        config.vm.synced_folder "/var/app/data", "/local/app/data"
      end
      
    2. 执行vagrant reload生效,本地目录会同步虚拟机内内容
    3. 将本地同步目录的文件复制到目标电脑即可
  • 通过局域网直接访问虚拟机
    1. 在原电脑的Vagrantfile中配置桥接网络,让虚拟机接入局域网:
      Vagrant.configure("2") do |config|
        config.vm.network "public_network"
      end
      
    2. 启动虚拟机后,在虚拟机内执行ip addr show获取局域网IP
    3. 在目标电脑上:
      • 若已复制Vagrant项目目录,直接执行vagrant ssh连接
      • 或用SSH直接连接:ssh vagrant@<虚拟机IP>(默认用户名/密码均为vagrant)
      • 连接后可直接查看存储内容,或用SCP传输文件:scp vagrant@<虚拟机IP>:/path/to/file /local/target/path

内容的提问来源于stack exchange,提问作者DIRKK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:30:51