添加存储设备后 vagrant vm 未启动
vagrant vm not starting after adding storage device
我想使用带有 2 个磁盘的 vagrant 创建虚拟机。 vm 在 gui "FATAL: Could not read from boot medium" 上显示错误。如果在没有任何磁盘的情况下创建任何磁盘,它运行良好。
这是我的 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
VirtualBox 提示您无法从磁盘启动。
如果您打开 VirtualBox 并查看 VM 的设置,在存储下,您会发现您拥有声明的 2 个磁盘,但未附加基本映像。
如果您现在查看此 VM 的文件系统(位置取决于您的 OS,我在 mac)
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 个空白磁盘,所以你无法启动。
如果你删除那两行
vb.customize ["storagectl", :id, "--name", "SATAController", "--remove"]
vb.customize ["storagectl", :id, "--name", "SATAController", "--add", "sata"]
然后磁盘仍然连接到 VM,您可以启动。
现在如果你在 VirtualBox 中打开虚拟机设置,你会发现 3 个磁盘(在 SATA 控制器下):
- 框-disk1.vmdk
- machine1_disk0.vdi
- machine1_disk1.vdi
我想使用带有 2 个磁盘的 vagrant 创建虚拟机。 vm 在 gui "FATAL: Could not read from boot medium" 上显示错误。如果在没有任何磁盘的情况下创建任何磁盘,它运行良好。 这是我的 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
VirtualBox 提示您无法从磁盘启动。
如果您打开 VirtualBox 并查看 VM 的设置,在存储下,您会发现您拥有声明的 2 个磁盘,但未附加基本映像。
如果您现在查看此 VM 的文件系统(位置取决于您的 OS,我在 mac)
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 个空白磁盘,所以你无法启动。
如果你删除那两行
vb.customize ["storagectl", :id, "--name", "SATAController", "--remove"]
vb.customize ["storagectl", :id, "--name", "SATAController", "--add", "sata"]
然后磁盘仍然连接到 VM,您可以启动。
现在如果你在 VirtualBox 中打开虚拟机设置,你会发现 3 个磁盘(在 SATA 控制器下):
- 框-disk1.vmdk
- machine1_disk0.vdi
- machine1_disk1.vdi