VirtualBox → QEMU (KVM)

Оскіль­ки кля­тий Оракл пола­мав гіл­ку 4.3, при­чо­му так, що кори­сту­ва­ти­ся нею тепер зов­сім ніяк (пишуть, зві­сно, що в 4.3.4 про­бле­ми з вір­ту­а­лі­за­ці­єю на ядрах PREEMPT виправ­ле­но, але вже пізно), тому я вирі­шив для себе кори­сту­ва­ти­ся гото­вим ріше­н­ням у вигля­ді QEMU.

Вір­ту­ал­ка мені потрі­бна, щоб запу­ска­ти не менш кля­ту сімьо­ро­чку макси­маль­ну. Від VirtualBox'а зали­шив­ся 40-гіга­бай­тний диско­вий образ, який QEMU про­ха­вав без про­блем.

Потім я пере­вів усе на SPICE, вклю­чив драй­ве­ри VirtIO, запу­стив дво­сто­рон­ній буфер обмі­ну, під­няв сам­бу для обмі­ну фай­ла­ми, ще й звук вклю­чив. На арче­ві­кі є вичер­пна ста­т­тя про те, як це все роби­ться, нічо­го скла­дно­го. Я наве­ду тіль­ки свій скрипт для запу­ску всьо­го хазяй­ства:

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
#!/usr/bin/env bash
 
MONITOR_HOST="127.0.0.1"
MONITOR_PORT="44001"
SPICE_HOST="127.0.0.1"
SPICE_PORT="5930"
VM_NAME="Windows 7"
CPU_COUNT="2"
RAM_COUNT="4096"
DRIVE="Windows 7.qcow2"
NET_INTERFACE="tap0"
MAC_ADDRESS="52:52:52:ac:3f:65"
 
export QEMU_AUDIO_DRV=alsa
 
nohup qemu-system-x86_64 \
	-name "$VM_NAME" \
	-cpu host \
	-enable-kvm \
	-smp $CPU_COUNT \
	-m $RAM_COUNT \
	-drive file="$DRIVE",media=disk,if=virtio \
	-vga qxl \
	-spice port=$SPICE_PORT,disable-ticketing \
	-device virtio-serial-pci \
	-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
	-chardev spicevmc,id=spicechannel0,name=vdagent \
	-rtc base=localtime \
	-soundhw ac97 \
	-usb \
	-usbdevice tablet \
	-net nic,model=virtio,macaddr=$MAC_ADDRESS \
	-net tap,ifname="$NET_INTERFACE",script=no,downscript=no \
	-monitor telnet:$MONITOR_HOST:$MONITOR_PORT,server,nowait \
	&
sleep 1
nohup spicec --host $SPICE_HOST --port $SPICE_PORT --title "$VM_NAME" --full-screen=auto-conf &

Після запу­ску цьо­го скри­пту я отри­мую:

  • звук (ряд­ки 14 і 29);
  • SPICE із нор­маль­ним відео (тоб­то, довіль­ною роз­діль­ною зда­тні­стю й інте­гра­ці­єю кур­со­ра, ряд­ки 5, 6, 23, 24, 31, 37, при­чо­му 31‑й рядок важли­вий для нор­маль­ної син­хро­ні­за­ції кур­со­рів);
  • під­трим­ку USB (рядок 30);
  • VirtIO-диск (ряд­ки 10, 22);
  • VirtIO-мере­жу (ряд­ки 11, 12, 32, 33);
  • дво­сто­рон­ній буфер обмі­ну (ряд­ки 25–27);
  • локаль­ний час у він­ді (рядок 28);
  • telnet-кон­соль в QEMU, щоб можна було деякі пара­ме­три змі­ню­ва­ти «на льо­ту» (ряд­ки 3, 4, 34);
  • натив­ний CPU в гостьо­вій систе­мі (рядок 18).

Інше, думаю, зро­зумі­ло. Ще раз: в арче­ві­кі все роз­жо­ва­но, дані поси­ла­н­ня на потрі­бні дро­ва (на звук, напри­клад, став­ля­ться офі­цій­ні ріал­те­ко­ві драй­ве­ри), хоча якщо будуть пита­н­ня, гото­вий допо­мог­ти.

Єди­не, чого мені не виста­чає, це зру­чно­го керу­ва­н­ня мере­жею й GUI для змі­не­н­ня CD.

Мітки: , , , , , ,
2 коментарі в “VirtualBox → QEMU (KVM)
  1. Олег сказав:

    А може­те поді­ли­ти­ся інстру­кці­єю з нала­шту­ва­н­ня мере­жі між хостом та вір­ту­аль­ною маши­ною?

  2. Oleksandr Natalenko сказав:

    Напи­ши мені на пошту деталь­ні­ше, я поді­лю­ся сво­єю кон­фі­гу­ра­ці­єю.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.