Latest:
- Sailfish OS and memory
- Hillshade tile server
- Statistics of OSM Scout for Sailfish OS
- Nebezpečný router
- Tree model with Silica components
By month:
- November 2021
- January 2019
- December 2017
- December 2016
- May 2014
- April 2014
- November 2013
- April 2013
- April 2011
- February 2011
- January 2011
- August 2010
- May 2010
- March 2010
- January 2010
- October 2009
- April 2009
- February 2009
- October 2008
- September 2008
- August 2008
- April 2008
- March 2008
- February 2008
Topic:
Virtuální PC pomocí KVM/QEMU
Už asi tak týden se seznamuji s vývojem (opravováním) součástí KDE. Včera mi došlo že není dobrý nápad řezat do větve na které sedím a že bych potřeboval na tento vývoj nějaké virtuální prostředí. Z virtualizačních řešení jsem nejdříve sáhnul po Virtualboxu (OpenSource edition), který už chvíli používám na virtualizaci Palmovského WebOS. Výkon byl ale naprosto zoufalý. Reakční doba instalátoru Ubuntu na tlačítko next byla zhruba deset minut při plném zatížení procesoru…
Jako druhé řešení jsem vyzkoušel KVM (Kernel-based Virtual Machine)… Vycházel jsem z těchto návodů:
- Základní nastavení: http://www.michaeldolan.com/1030
- Síť mezi hostem a virtuálním systémem: http://blog.cynapses.org/…twork-setup/
Instalace proběhla bez problémů, výkon virtuálního systému je až na grafiku téměř k nerozeznání od systému běžícího přímo na železe…
Jak na to
- Nahrát do jádra moduly pro podporu virtualizačních rozšíření
procesoru:
sudo modprobe kvm kvm-amd
(Pokud vlastníte procesor od konkurence, nahraďte druhý modul pomocí kvm-intel.)
- Přidat uživatele pod kterým bude emulátor spouštěn do skupiny
„kvm“, aby mohl přistupovat k zařízení /dev/kvm:
sudo usermod -G kvm -a $USER
- Nahrát do jádra modul pro virtuální sítě, abychom mohli
s virtuálním počítačem komunikovat:
sudo modprobe tun
- Stáhnout instalační CD oblíbené distribuce
wget http://ftp.sh.cvut.cz/MIRRORS/ubuntu-releases/karmic/ubuntu-9.10-desktop-amd64.iso
- Vytvořit prázdný image budoucího systému s dostatečnou maximální
velikostí (image se automaticky zvětšuje v závislosti na tom jak systém
využívá disk)
qemu-img create virtualpc.img -f qcow2 20G
- Nabootujeme virtuální stroj z instalačního CD:
kvm -m 750 -cdrom ubuntu-9.10-desktop-amd64.iso -boot d virtualpc.img
- Nainstalujeme systém pomocí distribučního průvodce…
- Následné spuštění virtuálního počítače je jednoduché
kvm -no-acpi -m 1024 virtualpc.img
Pokud ale chceme mít systém ve virtuálním počítači připojen k intenetu, je potřeba udělat trochu více… Následující script by měl nastavit vše potřebné před spuštěním stroje:
#!/bin/bash # nahrát jaderné moduly pro kvm a virtuální síť sudo modprobe kvm sudo modprobe kvm-amd sudo modprobe tun # přidat virtuální síťové zařízení s plným přístupem pro aktuálního uživatele WHO=`whoami` DEV=`sudo tunctl -b -u $WHO` # nastavit IP adresu a routovací záznam sudo ip l set $DEV down sudo ip addr add dev $DEV local 10.0.1.1/24 broadcast 10.0.1.255 sudo ip l set $DEV up sudo ip route add 10.0.1.0/24 dev $DEV src 10.0.1.1 # zapnout maškarádu z virtuální sítě ven do internetu sudo su -c "echo \"1\" >/proc/sys/net/ipv4/ip_forward" sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE # spustit kvm kvm -no-acpi -m 1024 -net nic,model=rtl8139,macaddr=52:54:00:12:34:56 \ -net tap,ifname=$DEV,script=no virtualpc.img
Síť na straně virtuálního počítače
Na straně virtuálního systému je potřeba nastavit síť staticky, tady existuje mnoho způsobů…- Do souboru /etc/network/interfaces přidat
iface eth0 inet static address 10.0.1.2 netmask 255.255.255.0 gateway 10.0.1.1
do /etc/rc.local poté
ifup eth0
- Odinstalovat Network-Manager a do /etc/resolv.conf přidat adresu
nejbližšího DNS serveru, například:
nameserver 147.32.127.214 nameserver 147.32.127.218