Цель
Создать виртуальную машину с Vagrant и Virtualbox с 2 дисками для установки raid1 позже.
Мой Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "debian/buster64"
disco1 = 'disco1.vdi'
disco2 = 'disco2.vdi'
config.vm.provider "virtualbox" do |vb|
# Create disk files if they haven't been created
if not File.exists?(disco1)
vb.customize ['createhd', '--filename', disco1, '--variant', 'Fixed', '--size', 10 * 1024]
end
if not File.exists?(disco2)
vb.customize ['createhd', '--filename', disco2, '--variant', 'Fixed', '--size', 10 * 1024]
# Add SATA controller with 4 ports
vb.customize ['storagectl', :id, '--name', 'SATAController', '--add', 'sata', '--portcount', 4]
# Attach the disks to the SATA controller
vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disco1]
vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', disco2]
end
end
end
Отображение дерева каталогов
.
|-- Vagrantfile
`-- Vagrantfile.b
0 directories, 2 files
Я создал каталог для этого сценария и покажу вывод tree -a
, чтобы вы могли видеть, что все в порядке.
Ошибка, которую я получаю после vagrant up
Я покажу вам полный вывод, чтобы вы могли видеть весь процесс + ошибка
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'debian/buster64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: scenario_raid1_default_1569617045977_67208
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
A customization command failed:
["createhd", "--filename", "disco1.vdi", "--variant", "Fixed", "--size", 10240]
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", "disco1.vdi", "--variant", "Fixed", "--size", "10240"]
Stderr: 0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage: error: Failed to create medium
VBoxManage: error: Could not create the medium storage unit '/home/atlas/Documents/vagrant/scenario_raid1/disco1.vdi'.
VBoxManage: error: VDI: cannot create image '/home/atlas/Documents/vagrant/scenario_raid1/disco1.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 462 of file VBoxManageDisk.cpp
>
Please fix this customization and try again.
Я не могу понять, почему я получаю эту ошибку, если, как вы видите, я удалил всефайлы снова из предыдущих созданий с ошибками.
НО происходит что-то смешное.Если после получения этой ошибки я снова выполняю tree -a
, посмотрите, что я получаю:
.
|-- .vagrant
| |-- machines
| | `-- default
| | `-- virtualbox
| | |-- action_set_name
| | |-- creator_uid
| | |-- id
| | |-- index_uuid
| | `-- vagrant_cwd
| `-- rgloader
| `-- loader.rb
|-- Vagrantfile
|-- Vagrantfile.b
`-- disco1.vdi
5 directories, 9 files
Как вы можете заметить, один из двух дисков был создан (но я уверен, что это не такработает, потому что контроллер Sata и связь с контроллером SATA не были выполнены).
Я почти уверен this является большой подсказкой о том, что здесь происходит, но я не понимаю, какя могу решить эту ситуацию.