ИСПРАВЛЕНО: путем изменения относительного имени пути, чтобы удалить ведущий «./»
file_to_disk = 'tmp/source_code_disk.vdi'
я удалил «./» в пути к файлу на диске и надежно не суметь установить сейчас завершает без каких-либо проблем, - я подозреваю, что есть ошибка проверки пути в сочетании с некоторыми вопросами синхронизации при использовании относительных путей с префиксом безвредных разделителей, такие «./»
# -*- mode: ruby -*-
# vi: set ft=ruby :
file_to_disk = 'tmp/source_code_disk.vdi'
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty32"
config.vm.network "private_network", ip: "192.168.33.11"
config.vm.hostname = "testdisk"
config.ssh.forward_agent = true
config.ssh.shell = "/bin/bash -l"
config.vm.provision :shell do |shell|
shell.inline = "sudo chsh -s /bin/bash vagrant"
end
# create a disk for the source code
config.vm.provider "virtualbox" do | v |
unless File.exist?(file_to_disk)
v.customize ['createhd', '--filename', file_to_disk, '--size', 50 * 1024]
v.customize ['storageattach', :id, '--storagectl', 'SATAController', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk]
end
end
end
Примечание: исходный файл ТРУДЫ В большинстве случаев, но время от времени, когда я копирую файл в новый каталог и пытаюсь «бродяжничать», я не могу заставить VM обеспечить. Я знаю, это звучит маловероятно, но это правда, и вот отладка, показывающая неудачу, которая работает, если я «бродяжничать», а затем удаляю только «./» из пути к файлу - никаких других изменений.
==> default: Running 'pre-boot' VM customizations...
INFO subprocess: Starting process: ["/usr/bin/VBoxManage", "createhd", "--filename", "./tmp/source_code_disk.vdi", "--size", "51200"]
INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stderr: 0%...
DEBUG subprocess: stderr: 10%...20%...30%...40%...50%...60%...70%...80%...90%...
DEBUG subprocess: stderr:
Progress state: NS_ERROR_INVALID_ARG
DEBUG subprocess: stderr: VBoxManage: error: Failed to create medium
DEBUG subprocess: stderr: VBoxManage: error: Cannot register the hard disk '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi' {0c2aa882-a1ef-427e-b7c4-85ef86c0f819} because a hard disk '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi' with UUID {17da2b81-dd91-44a3-b60e-6c4921d8e75a} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox
VBoxManage: error: Context: "RTEXITCODE handleCreateMedium(HandlerArg*)" at line 449 of file VBoxManageDisk.cpp
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 1
INFO retryable: Retryable exception raised: #<Vagrant::Errors::VBoxManageError: There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["createhd", "--filename", "./tmp/source_code_disk.vdi", "--size", "51200"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...
Progress state: NS_ERROR_INVALID_ARG
VBoxManage: error: Failed to create medium
VBoxManage: error: Cannot register the hard disk '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi' {0c2aa882-a1ef-427e-b7c4-85ef86c0f819} because a hard disk '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi' with UUID {17da2b81-dd91-44a3-b60e-6c4921d8e75a} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox
VBoxManage: error: Context: "RTEXITCODE handleCreateMedium(HandlerArg*)" at line 449 of file VBoxManageDisk.cpp
>
INFO subprocess: Starting process: ["/usr/bin/VBoxManage", "createhd", "--filename", "./tmp/source_code_disk.vdi", "--size", "51200"]
INFO subprocess: Command not in installer, restoring original environment...
Please fix this customization and try again.
A customization command failed:
["createhd", "--filename", "./tmp/source_code_disk.vdi", "--size", 51200]
The following error was experienced:
#<Vagrant::Errors::VBoxManageError: There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["createhd", "--filename", "./tmp/source_code_disk.vdi", "--size", "51200"]
Stderr: 0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage: error: Failed to create medium
VBoxManage: error: Could not create the medium storage unit '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi'.
VBoxManage: error: VDI: cannot create image '/home/stg38/vagrant/vstb/./tmp/source_code_disk.vdi' (VERR_ALREADY_EXISTS)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium
VBoxManage: error: Context: "RTEXITCODE handleCreateMedium(HandlerArg*)" at line 449 of file VBoxManageDisk.cpp
>
Please fix this customization and try again.
Это сработало и для меня. 'Vagrant up' создаст эту ошибку, если я попытаюсь вывести окно после перезапуска хоста. – mjuopperi