添加存储设备后,vagrant vm无法启动

时间:2016-02-03 11:28:08

标签: vagrant virtual-machine virtualbox disk vagrantfile

我想使用带有2个磁盘的vagrant创建vm。 vm在gui上显示错误“致命:无法从启动媒体读取”。如果创建没有任何磁盘任何磁盘,它运行正常。 这是我的Vagrantfile:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.define "cn1" do |cn1|
            cn1.vm.box = "trusty"
            cn1.vm.hostname = "cn1"
            cn1.vm.network "private_network", ip: "192.168.100.11"
            cn1.vm.network "private_network", ip: "10.10.10.11"
            cn1.vm.host_name = "controller1"
            cn1.vm.provider :virtualbox do |vb|
                    vb.memory = 500
                    vb.customize ["createhd",  "--filename", "machine1_disk0", "--size", "8192"]
                    vb.customize ["createhd",  "--filename", "machine1_disk1", "--size", "8192"]
                    vb.customize ["storagectl", :id, "--name", "SATA Controller", "--remove"]
                    vb.customize ["storagectl", :id, "--name", "SATA Controller", "--add", "sata"]
                    vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", "1", "--type", "hdd", "--medium", "machine1_disk0.vdi"]
                    vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", "2", "--type", "hdd", "--medium", "machine1_disk1.vdi"]
                    vb.gui = true
            end
    end
end

1 个答案:

答案 0 :(得分:0)

VirtualBox告诉您无法从磁盘启动。

如果您打开VirtualBox并查看VM的设置,在存储下,您会发现您声明了2个磁盘,但未附加基本映像。

如果你现在查看你的文件系统(位置取决于你的操作系统,我在mac上)这个VM

fhenri@machine:~/Documents/Virtual Machines.localized/trusty_cn1_1454620633289_44965$ ll
total 3174824
drwx------   6 fhenri  staff         204  4 fév 22:17 .
drwxr-xr-x  12 fhenri  staff         408  4 fév 22:17 ..
drwx------   3 fhenri  staff         102  4 fév 22:17 Logs
-rw-------   1 fhenri  staff  1625489408  4 fév 22:19 box-disk1.vmdk
-rw-------   1 fhenri  staff        8488  4 fév 22:17 trusty_cn1_1454620633289_44965.vbox
-rw-------   1 fhenri  staff        8143  4 fév 22:17 trusty_cn1_1454620633289_44965.vbox-prev 

所以vagrant已经在box-disk1.vmdk导入了这个盒子,但你已经删除了这个磁盘并添加了2个空白磁盘,因此无法启动。

如果删除这2行

            vb.customize ["storagectl", :id, "--name", "SATAController", "--remove"]
            vb.customize ["storagectl", :id, "--name", "SATAController", "--add", "sata"]

然后磁盘仍然连接到VM,您可以启动。

现在,如果您在VirtualBox中打开VM设置,您将找到3个磁盘(在SATA控制器下):

  • 箱disk1.vmdk
  • machine1_disk0.vdi
  • machine1_disk1.vdi