1

У меня есть "набор" из 5 виртуальных машин, которые я хотел бы создать, все гостевые ОС Ubuntu Server 12.04, но с радикально различными программными стеками поверх ОС (один сервер - это "сервер сборки" с установленными Subversion, Hudson и т.д.). на нем другой сервер - это сервер приложений с JBoss и т. д.).

Установка и настройка Ubuntu Server занимает несколько часов. Если это вообще возможно, я хотел бы сделать это только один раз (чтобы получить "базовую" версию ОС, установленной на ВМ), а затем скопировать эту "базу" в другие 4. Таким образом, я экономлю 2-3 часа на машину, и мне просто нужно сосредоточиться на установке и настройке приложений для каждого сервера.

Когда я создаю виртуальную машину, я вижу три файла:

  • my-vm.vbox - я предполагаю, что это виртуальная машина
  • my-vm.vbox-prev - не знаю, что это такое
  • my-vm.vdi - я предполагаю, что это фактический диск, на котором установлена гостевая ОС (моя "база")

К сожалению, я уже создал все 5 виртуальных машин, и сейчас я нахожусь в процессе установки Ubuntu Server на первой, поэтому мои настройки выглядят так:

  • build-srv.vbox , build-srv.vbox-prev , build-srv.vdi (VDI инициализирован, но в нем ничего нет)
  • app-srv.vbox , app-srv.vbox-prev , app-srv.vdi (то же самое, инициализировано, но в нем ничего нет)
  • и т.д ... (для всех 5)

Я нахожусь в процессе установки Ubuntu Server на сервере сборки (build-srv). Я надеюсь, что, как только я закончу , вся эта информация о конфигурации будет просто сохранена в build-srv.vdi . Теоретически, я должен иметь возможность просто скопировать-n-paste build-srv.vdi на каждый из других серверов и поменять их соответствующие VDI, верно?

Я уверен, что мне нужно было бы также зайти в настройки виртуальной машины и как-то изменить VDI, но я даже не уверен, что я на правильном пути.

Что мне нужно возможно? Если да, что мне нужно сделать, чтобы настроить каждую ВМ на одну и ту же копию экземпляра ОС, в котором я сейчас нахожусь? Если нет, каковы мои варианты (кроме повторения той же 2-часовой установки для каждой виртуальной машины!)? Заранее спасибо!

2 ответа2

1

Каждый файл VDI содержит идентификатор в форме UUID.
Virtualbox записывает эти UUID в базу данных и отказывается использовать VDI, который вы только что скопировали (но это нормально на другом компьютере, потому что он ничего не записывает об этом UUID).

Я знаю 2 метода:
- скопируйте VDI (с помощью файлового менеджера или командной строки), затем используйте vboxmanage internalcommands sethduuid "path/yourdisk.vdi" и у вас будет новый UUID для этого VDI
- или используйте медиа-менеджер Virtualbox (в меню). Выберите диск, который вы хотите скопировать ... и нажмите кнопку "Копировать". Это сделает то же самое с легкостью

  • my-vm.vbox - это файл XML, описывающий виртуальную машину . Вы можете открыть его с помощью текстового редактора или веб-браузера.
  • my-vm.vbox-prev - это резервная копия my-vm.vbox
  • my-vm.vdi - это виртуальный диск

редактировать: функция copy кажется, присутствует только в Windows. Моя коробка с Linux не имеет, моя коробка с Windows имеет

0

То, что вы можете искать, - это режим подключения нескольких дисков, который можно применять после создания и настройки исходного образа диска. Затем вы можете использовать его в качестве ядра для нескольких виртуальных машин, и каждая из них будет иметь свое собственное разностное изображение на основе оригинала - копирование или клонирование не требуется. Пожалуйста, смотрите документы по адресу: http://www.virtualbox.org/manual/ch05.html#hdimagewrites

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .