Статистика
Сегодня: 44 Онлайн: 1
Опрос

Помог ли наш сайт решить Вашу проблему?

View Results

Загрузка ... Загрузка ...

Друзья и коллеги

Технология жизни - технология будущего

#Записки сисадмина

Denis Tulyakov

PostHeaderIcon VirtualBox без Xorg

К этому материалу есть уточняющая статья, смотрите здесь.
После того, как qemu простилась с ядерным модулем kqemu и работать с ней стало совершенно невозможно, пришлось мне в плане виртуализации искать другие решения. Вариантов, на самом деле, не много, из всего найденного больше всего приглянулся emulators/virtualbox-ose, однако изрядно смущает, что он оборудован графическим интерфейсом, который в свою очередь при сборке вытягивет за собой чуть не весь xorg. Что, согласитесь, на сервере совершенно неуместно.
Однако, GUI от virtualbox отрывается легко и непринужденно с сохранением всего функционала программы. Итак, для начала надо правильно собрать:

1
2
$ cd /usr/ports/emulators/virtualbox-ose
$ sudo make config

Здесь надо правильно сконфигурировать сборку: отключить qt4, x11 и NLS. Если нативную поддержку языков не отключить, не соберется, потребовав поддержки графики. Обязательно не забыть установить [X] напротив VNC, эта штука архиполезна на этапе установки операционки в гостевую машину, да и вообще не помешает:

Конфигурация сборки virtualbox

После этого

1
2
3
$ sudo make
$ sudo make install
$ sudo make clean

Все, virtualbox у нас установлен, причем без лишних сущностей. В отсутствие GUI конфигурирование виртуальных машин и управление ими производится из командной строки. Вот пример создания и запуска вирутальной машины:

Создаем виртуальную машину:

1
VBoxManage createvm -name "TestBSD" -register

Изменяем параметры созданной машины:

1
VBoxManage modifyvm "TestBSD" --memory 1024 --acpi on --nic1 bridged --bridgeadapter1 em0 --nictype1 82540EM

—memory 1024 — задаем количество памяти в мегабайтах (1024 мб — 1 Гб)
—acpi on — включаем ACPI
—nic1 bridged — определяем одну сетевую карту для гостевой системы и задаем ей тип «мост»
—bridgeadapter1 em0 — цепляем мостом гостевую сетевую карту к физически существующему интерфейсу em0
—nictype1 82540EM — тип сетевой карты, используемый виртуальной машиной. Доступны следующие типы:

Am79C970A PCNet-PCI-II 10 mbit
 Am79C973 PCNet-Fast III 100 mbit
82540EM Intel pro/1000 MT Desktop 1 Gb
82543GC Intel pro/1000 T Server 1 Gb
82545EM Intel pro/1000 MT Server 1 Gb

 

 

 

 

Добавляем IDE контроллер в виртуальную машину:

1
VBoxManage storagectl TestBSD --name "Disk Controller" --add ide

или добавляем SATA контроллер в виртуальную машину.

1
VBoxManage storagectl TestBSD --name "Disk Controller" --add sata

Создаем жесткий диск размером в 50 гб.

1
VBoxManage createhd --filename /home/denis/vms/7301.vdi --size 51200

Сжимаем его. будет расти по мере заполнения.

1
VBoxManage modifyhd /home/denis/vms/7301.vdi compact

Подключаем созданный диск к контроллеру

1
VBoxManage storageattach TestBSD --storagectl "Disk Controller" --port 0 --device 0 --type hdd --medium /home/denis/vms/testbsd.vdi

Подключаем образ установочного диска к контроллеру

1
VBoxManage storageattach TestBSD --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/denis/isos/install.iso

Включаем загрузку ВМ с установочного образа

1
VBoxManage modifyvm TestBSD --boot1 dvd

Запуск машины.

1
VBoxHeadless -startvm 'TestBSD' -n -o password

Вот тут-то и пригодилась нам та [X] перед VNC :) Ключ -n указывает, что вместе с машиной нужно запустить vnc сервер, который будет показывать нам виртуальную машину, а ключ -o задает пароль для присоединения к этому серверу. То есть запустив машину и подцепившись любым vnc клиентом к IP адресу хоста мы увидим консоль созданной виртуальной машины. Собственно, после того как машина настроена, на нее установлена операционная система и настроена сеть, можно vnc сервер отключить.
В заключение приведу скриптик, который я сваял для того, чтобы автоматизировать процесс создания виртуальной машины. Скрипт предельно примитивный, изящества кода внем нет, но он работает :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/sh
#Скрипт для создания виртуальных машин VirtualBox.
#ВНИМАНИЕ: Скрипт не использует инкакой "защиты от дурака", поэтому
#проверяйте ввод: права на папки, куда помещаются файлы,
#должны у вас быть, названия устройств и пути необходимо писать правильно
#Все спасибы и ругачки можно оставить здесь: http://www.daemony.ru/?p=967
#
ALLRIGHT=n
while [ $ALLRIGHT != "y" ]
do
echo -n "Введите название виртуальной машины: "
read NAMEVM
echo -n "Введите объем оперативной памяти виртуальной машины в мегабайтах: "
read RAMSZ
echo -n "Введите имя сетевого интерфейса хоста для создания сетевого моста: "
read IFNAME

echo "Выберите тип сетевой карты виртуальной машины:"
echo "1. PCNet-PCI-II 10 mbit"
echo "2. PCNet-Fast III 100 mbit"
echo "3. Intel pro/1000 MT Desktop"
echo "4. Intel pro/1000 T Server"
echo "5. Intel pro/1000 MT Server"
read VMIFTYPE
case "$VMIFTYPE" in
1)
  VMIFTYPE="Am79C970A";;
2)
  VMIFTYPE="Am79C973";;
3)
  VMIFTYPE="82540EM";;
4)
  VMIFTYPE="82543GC";;
[5p])
  VMIFTYPE="82545EM";;
*)
  echo "неверный ввод";;
esac
echo "Введите тип интерфейса дисков:"
echo "1. ide"
echo "2. sata"
echo "3. scsi"
echo "4. sas"
echo "5. floppy"
read DISKTYPE
case "$DISKTYPE" in
1)
  DISKTYPE="ide"
  CONTTYPE="PIIX4";;
2)
  DISKTYPE="sata"
  CONTTYPE="IntelAHCI";;
3)
  DISKTYPE="scsi"
  CONTTYPE="BusLogic";;
4)
  DISKTYPE="sas"
  CONTTYPE="LSILogicSAS";;
[5p])
  DISKTYPE="floppy"
  CONTTYPE="I82078";;
*)
  echo "неверный ввод";;
esac
echo -n "Введите имя образа виртуальной машины включая путь и расширение .vdi: "
read PATHVM
echo -n "Введите объем жесткого диска виртуальной машины в мегабайтах: "
read DISKSZ
echo -n "Подключить загрузочный обзаз? (y/n)"
read BOOTDISK
case "$BOOTDISK" in
y)
  echo -n "Введите полное имя файла загрузочного образа, включая путь и расширение"
  read BOOTDISK;;
[Nn])
  BDMESSAGE="Загрузочный диск не подключен";;
*)
  echo "неверный ввод";;
esac
echo "Проверьте правильность ввода данных:"
echo " "
echo  "имя виртуальной машины: $NAMEVM"
echo  "объем оперативной памяти: $RAMSZ"
echo  "имя сетевого интерфейса хоста: $IFNAME"
echo  "тип интерфейса дисков: $DISKTYPE"
echo  "тип контроллера дисков: $CONTTYPE"
echo  "расположение и имя файла виртуальной машины: $PATHVM"
echo  "размер жесткого диска виртуальной машины: $DISKSZ"
echo  "тип сетевого адаптера виртуальной машины: $VMIFTYPE"
echo  "Образ загрузочного диска: $BDMESSAGE"
echo " "
echo -n "Верны ли введенные данные (y/n)?"
read ALLRIGHT
done
VBoxManage createvm -name "$NAMEVM" -register
VBoxManage modifyvm "$NAMEVM" --memory $RAMSZ --acpi on --nic1 bridged --bridgeadapter1 $IFNAME --nictype1 $VMIFTYPE
VBoxManage storagectl $NAMEVM --name "Disk Controller" --add $DISKTYPE --controller $CONTTYPE
VBoxManage createhd --filename $PATHVM --size $DISKSZ --format VDI
VBoxManage modifyhd $PATHVM compact
VBoxManage storageattach $NAMEVM --storagectl "Disk Controller"  --port 0 --device 0 --type hdd --medium $PATHVM
case "$BOOTDISK" in
y)
  echo " ";;
[Nn])
  echo " ";;
*)
  VBoxManage storageattach $NAMEVM --storagectl "Disk Controller"  --port 1 --device 0 --type dvddrive --medium $BOOTDISK;;
esac

3 комментария на “VirtualBox без Xorg”

  • andy03 says:

    незнаю, правда насколько это юзабельно, но вот что нашел http://retis.sssup.it/~fabio/freebsd/lkvm/

  • skiangel says:

    Звучит прикольно, надо пробовать. Правда, время будет только в феврале.

  • adre says:

    хмм такое ощущение что дизайн сменился и целерончик в кладовке заменился чем-то большим… =) —Да работает. это ставил. Удобно. Особенно когда геморой с RAID для фейк контролеров + нищебродство контор которые жмутся на нормальные рэйды, от жадности вставил на SB850 raid10 на 2Тб. Пытался VMware залепить.  но увы мне надоело тратить на это время, связка bsd + box + phpbox  на 1055T + 16Г рамы — шустро бегает да и насрать что мендленнее чем на vmware. по хорошему надо было поставить в кеш SSD но увы нищебродство… Итог RAID10 првератился в raid0 и всё с него бекапится bz2 на удалённый ПК. Машинки хорошо зажимаются, минус — долгая развертка на массив. Плюс в том что очень редко выходят диски из строя, и надо максимум раз в год. Так что приведённая статья автором — удобно и бюджетно, в противном случае просто ставится нормальный RAID заливается VMWare и всё. —Автору мега бонус за то что так долго в эфире. помоему с 2007 года? =)

Оставить комментарий

PR-CY.ru