Настройка Linux и Sun VirtualBox

За время, прошедшее с момента опубликования статьи VirtualBox далеко ушел в развитии (на текущий момент версия 3.0.4). Бриджировать интерфейсы теперь не нужно. Вроде и проблему с usbfs решили. Но все остальное осталось актуальным и по сей день.

Как-то на работе пришлось сконфигурировать Linux для запуска виртуальных машин, чтобы потестировать кластерную конфигурацию одной системы (Windows). Пока не забыл, перенесу запись сюда. Описана конфигурация Ubuntu 8.04 LTS Server и VirtualBox 1.6, но в процессе работы поднята до 8.10 (64-бит) (не рекомендую) и VirtualBox 2.0. Запуск уже созданной VM, решение проблем с конфигурацией и usbfs, настройка сети.

Предполагается, что уже есть настроенная система Linux (как пример используется Ubuntu 8.04LTS Server). Установлен Sun VirtualBox 1.6.x. Создана виртуальная машина, в которой установлен Windows 2003 Server R2 с последними обновлениями, Microsoft SQL Server 2005 SP2. Разработчик рекомендует использовать 64-разрядные версии своих продуктов. В примере используется система 32-бит.

Проблема usbfs

При попытке запуска виртуальной машины на Ubuntu 8.04, возникает ошибка инициализации подсистемы USB filesystem (usbfs). Сама проблема и методы ее решения описаны на сайте VirtualBox (USB failure with Ubuntu Gutsy, #747). Более подробное описание проблемы и ее решения: USB Devices unrecognised by virtualbox.

После редактирования файла “/etc/init.d/mountdevsubfs.sh”, подсистема перезапускается командами:
sudo /etc/init.d/mountdevsubfs.sh stop
sudo /etc/init.d/mountdevsubfs.sh start

UPD: На Ubuntu 8.10 проблема решается другим способом.

В файл /etc/fstab добавляется строка вида:

#usbfs
none /proc/bus/usb usbfs devgid=46,devmode=664 0 0

После чего перечитывается конфигурация монтирования файловых систем:

$ sudo fstab -a

Проблема с запуском виртуальной машины Windows 2003 Server на Linux

При запуске готовой виртуальной машины может происходить сброс системы Windows в “синий экран” и перезагрузка в цикле. Чаще всего это происходит, если неправильно установлен тип контроллера IDE. По умолчанию для новой виртуальной машины установлен PIIX4! Более корректный вариант – PIIX3.

Бриджирование интерфейсов

Для того, чтобы виртуальные машины находились в той же сети, что и хост-машина и выглядели со стороны сети как самостоятельные компьютеры (в противном случае они будут видны только с хост-машины), они должны воспользоваться сетевым адаптером хост-машины, но иметь независимые адреса. Этого можно добиться бриджированием. В системе должен быть установлен пакет bridge-utils.
Конфигурация интерфейсов хранится в файле /etc/network/interfaces, например:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The bridge for VirtualBox clients
auto br0
iface br0 inet static
address 10.0.0.7
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1
bridge_ports eth0

После изменения конфигурации, перезапустить сетевые интерфейсы:
sudo /etc/init.d/networking restart.

Создание виртуальных сетевых интерфейсов для VirtualBox (как минимум, один на VM):
sudo VBoxAddIF vbox0 имя_пользователя_в_системе br0.
Подробнее в документации к VirtualBox (раздел 6.7.1.1). Виртуальный сетевой интерфейс в конфигурации виртуальной машины просто вписывается, а не выбирается из списка.

Клонирование виртуальных машин

Если для запуска нужны 2 идентичные системы (конфигурация SQL Server Warm Backup), виртуальные машины лучше всего просто скопировать. Система не даст запустить скопированный образ виртуального диска. Скопированному образу диска необходимо дать новый UUID:
VBoxManage internalcommands setvdiuuid copied_disk.vdi.

Система готова к запуску. После старта каждой машины на забыть корректно настроить параметры сети Windows и имя машины (hostname).

Leave a comment

Your comment