Vagrant vb.customize';storageattach';第一次挂载我的磁盘,但更改在异常停止后丢失;流浪汉

Vagrant vb.customize';storageattach';第一次挂载我的磁盘,但更改在异常停止后丢失;流浪汉,vagrant,virtualbox,Vagrant,Virtualbox,我是vagrant的新手,正在尝试向与vagrant合作的虚拟机添加第二个磁盘。 我知道如何在VM第一次启动时连接磁盘,但是当我关闭机器时 然后再次备份(使用“vagrant up--provision”确保provisioners运行)我对磁盘所做的更改 我们迷路了 我运行了两次日志记录,第二次运行的日志输出(机器初始配置后重新启动)显示正在执行storageattach命令。但我在“/dev/shm”下创建的每个文件(似乎是第二个磁盘的装入点)都消失了 故障模式为: 流浪汉 touch /

我是vagrant的新手,正在尝试向与vagrant合作的虚拟机添加第二个磁盘。 我知道如何在VM第一次启动时连接磁盘,但是当我关闭机器时 然后再次备份(使用“vagrant up--provision”确保provisioners运行)我对磁盘所做的更改 我们迷路了

我运行了两次日志记录,第二次运行的日志输出(机器初始配置后重新启动)显示正在执行storageattach命令。但我在“/dev/shm”下创建的每个文件(似乎是第二个磁盘的装入点)都消失了

故障模式为:

流浪汉

 touch /dev/shm/some.file
 ls /dev/shm/some.file   # see output here... 
游荡的停顿

流浪者——供给

ls /dev/shm/some.file     #  no such file or directory.. where did it go ? 
任何提示都将不胜感激

我的档案是:

Vagrant.require_version ">= 1.4.3"
VAGRANTFILE_API_VERSION = "2"
disk = './secondDisk.vdi'
BOX_NAME="test"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.define :master do |master|
        master.vm.box = "centos65"
        master.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
        master.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", "4196"]
          v.name = BOX_NAME
        end
        master.vm.network :private_network, ip: "192.168.33.10"
        master.vm.hostname = BOX_NAME
    end

    config.vm.synced_folder(".", "/vagrant",
        :owner => "vagrant",
        :group => "vagrant",
        :mount_options => ['dmode=777','fmode=777']
    )
    config.vm.provider "virtualbox" do |vb|
        unless File.exist?(disk)
            vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 1 * 1024]
        end
        vb.customize ['storageattach', :id,  '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk]
    end
end
下面是第二个“vagrant up--provision”的日志输出[我使用--provision来确保每个vagrant up都完成了所有配置步骤]:

INFO sanedefaults: Automatically figuring out whether to enable/disable NAT DNS proxy...
 INFO subprocess: Starting process: ["C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe", "modifyvm", "ea5c09                              e7-11e7-4630-a7ca-ec66461b9eb6", "--natdnsproxy1", "on"]
DEBUG subprocess: Selecting on IO
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderVirtualBox::Action::Customize:0x3dc9818>
 INFO interface: info: Running 'pre-boot' VM customizations...
 INFO interface: info: ==> master: Running 'pre-boot' VM customizations...
==> master: Running 'pre-boot' VM customizations...
 INFO subprocess: Starting process: ["C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe", "storageattach", "e                              a5c09e7-11e7-4630-a7ca-ec66461b9eb6", "--storagectl", "SATA", "--port", "1", "--device", "0", "--type", "hdd", "-                              -medium", "./secondDisk.vdi"]
DEBUG subprocess: Selecting on IO
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
INFO-sanedefaults:自动确定是否启用/禁用NAT DNS代理。。。
信息子流程:启动流程:[“C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe”、“modifyvm”、“ea5c09 e7-11e7-4630-a7ca-ec66461b9eb6”、“--natdnsproxy1”、“on”]
调试子进程:在IO上选择
调试子进程:等待进程退出。剩余超时时间:32000
调试子进程:退出状态:0
信息管理员:呼叫行动:#
信息接口:信息:正在运行“预引导”VM自定义。。。
信息接口:信息:==>主机:正在运行“预引导”VM自定义。。。
==>主机:正在运行“预引导”VM自定义。。。
信息子流程:启动流程:[“C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe”、“storageattach”、“e a5c09e7-11e7-4630-a7ca-ec66461b9eb6”、“--storagectl”、“SATA”、“--port”、“1”、“--device”、“0”、“--type”、“hdd”、“--medium”、“/secondDisk.vdi”]
调试子进程:在IO上选择
调试子进程:等待进程退出。剩余超时时间:32000
调试子进程:退出状态:0

感谢宝马精心设计和时尚的答案,还有彼得。参考文章(gist.github.com/leifg/4713995)具有魔力,我将在下面的一个Vagrant脚本和一个相应的引导文件中复制它,该文件从新添加的第二个磁盘创建一个文件系统,并将其添加到/etc/fstab。这完全解决了我的问题[不再有消失的数据]

流浪汉档案:

Vagrant.require_version ">= 1.4.3"
VAGRANTFILE_API_VERSION = "2"

disk = './secondDisk.vdi' 
BOX_NAME="test"


Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.define :master do |master|
        master.vm.box = "centos65"
        master.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
        master.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--memory", "4196"]
          v.name = BOX_NAME
        end
        master.vm.network :private_network, ip: "192.168.33.10"
        master.vm.hostname = BOX_NAME
    end

    config.vm.synced_folder(".", "/vagrant",
        :owner => "vagrant",
        :group => "vagrant",
        :mount_options => ['dmode=777','fmode=777']
    )

    # create the second disk and attach it
    config.vm.provider "virtualbox" do |vb|
        unless File.exist?(disk)
            vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 1 * 1024]
        end

        vb.customize ['storageattach', :id,  '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk]
    end

    # NEW - invoke script which  partitions the new disk (/dev/sdb) 
    # and create mount directives in /etc/fstab
    #config.vm.provision :shell, path: "bootstrap.sh"  
    config.vm.provision "shell" do |shell|
        shell.inline = "sudo /vagrant/bootstrap.sh"  
    end
end
bootstap脚本:

#!/bin/bash  -x

#   configure and mount second disk 
#
yum install -y parted
parted /dev/sdb mklabel msdos
parted /dev/sdb mkpart primary 512 100%
mkfs.xfs /dev/sdb1
mkdir /mnt/disk
echo `blkid /dev/sdb1 | awk '{print$2}' | sed -e 's/"//g'` /mnt/disk   xfs   noatime,nobarrier   0   0 >> /etc/fstab
mount /mnt/disk

您是否遵循了此url的设置:,有什么不同吗?我的同事Peter Wells给了我一些建议,我现在将发布这些建议。我将尝试创建一个小的“mount”脚本来与我的Vagrant配方集成,如果我能让它工作,我将发布完整的结果。(来自Peter):您正在/dev/shm下寻找额外的硬盘,但根据mount命令的输出:tmpfs on/dev/shm type tmpfs(rw,rootcontext=“system\u:object\r:tmpfs\u t:s0”),因此,似乎/dev/shm实际上是一个临时文件系统,第二个硬盘被连接,但是它没有分区,也没有挂载。回答不错。有一个问题:
parted/dev/sdb mkpart primary 512 100%
。“512”在Mo中,所以分区从512Mo开始。谢谢。我已经有一段时间没有做这件事了,但如果我回到过去,我会记住你的评论;^)