Showing posts with label qemu. Show all posts
Showing posts with label qemu. Show all posts

Sunday, August 30, 2009

Virtual machines

I finally tried to give kvm a try on a core 2 duo laptop. And what great fun it is. :D
Following the instruction from the great arch linux wiki, I installed the qemu package. Once I've done that I added myself to the kvm group:

# gpasswd -a abdza kvm

And then I loaded the kvm & kvm-intel module:

# modprobe kvm
# modprobe kvm-intel

To change the new kvm devices to the kvm group I modified the udev rules (had to create the file) at /etc/udev/rules.d/65-kvm.rules:

KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"

I downloaded some cd iso's to boot install into the "virtual machines". First I tried ubuntu. Once the iso has been downloaded I had to create a virtual machine image with:

# qemu-img create -f qcow2 ubuntu 4194304

Not sure yet what all of that option is for but that basically would create an image named ubuntu with hard disk size of around 4GB. So I had to 'boot' that image with a cd (the iso image downloaded earlier):

# qemu-system-x86_64 --enable-kvm -hda ubuntu -m 512 -cdrom ~/Downloads/ubuntu-9.04-desktop-i386.iso -boot d -vga std -net nic,vlan=1 -net user,vlan=1

That would boot the machine with the cd "inside" it. It would run the live cd and allow you to install ubuntu on it and everthing. Then once it's already installed you can boot it without the cd with:

# qemu-system-x86_64 --enable-kvm -hda ubuntu -m 512 -boot c -vga std -net nic,vlan=1 -net user,vlan=1

Notice that the boot flag has changed to c. Now with the current `-net nic,vlan=1 -net user,vlan1` you will already get normal internet access from inside the virtual machine. But that virtual machine would not be able to access any other machines on your network and no other machines on your network can access your virtual machine neither. Reason being is that it is actually on it's own virtual network provided by qemu. I've read that you need to set up bridge and tun/tap to be able to make it appear on your normal network. Haven't tried it out yet. That would be for the next part.

Just a little side note. Whenever you click inside the virtual machine display, the mouse would be 'captured' by that machine. To release it like normal press ctrl+alt. That would release the mouse. Sometimes you might even like to view the machine full screen, to toggle that just use ctrl+alt+f.

Another small note, 4GB isn't enough to install Fedora 11. For that I created an 8GB virtual machine.

Another small note (my.. getting lots of small notes nowadays.. :P). To use sound in the 'virtual machine', add:

-soundhw all

to the options. Can even view and listen to youtube from a 'virtual' ubuntu.. :P

Thursday, October 30, 2008

Running a service on qemu

Mmmmm.. choice is good. And one thing about linux is that there is a LOT of choices. Sometimes the differences between them is enough to make you think they are actually different OS's (/me ducks away from debate of what is an OS). But recently a user tried to install mymeeting on a SUSE machine and couldn't get it to work. When we tried a fresh install on our Ubuntu's the mymeeting version he downloaded worked just fine. So there might be something about the SUSE configuration that broke it. Since we didn't want to have to reformat any of our machines to do a fresh install of openSUSE we decided to just create a virtual machine and run it from there. Sure it might be slow. But we only got to make sure it can run je.. :P

So we downloaded the openSUSE iso and with instructions from https://help.ubuntu.com/community/WindowsXPUnderQemuHowTo we installed qemu. Then kaeru showed a neat trick. When we run the qemu, run it with redir like this:

qemu -localtime -m 384 suse.img -kernel-kqemu -net nic -net user -redir tcp:8022::22 -redir tcp:8081::80

So the redir will open up the ports on your localhost to the virtual machine. `-redir tcp:8022::22` will open up the ssh port so you can do `ssh -p 8022 root@localhost` and manage the machine directly throught the command line. Haaaa.. Take that graphic heavy SUSE user interface... We beat you.. :P

And of course `-redir tcp:8081::80` will open the http port so I can check the mymeeting system just by going to http://localhost:8081/mymeeting. Very usefull..

Is Blogging No Longer a Thing?

As I embark on my new journey to learn the Rust programming language, I find myself pondering—where have all the blogs gone? In search of pr...