qemu on OpenSuse

Inspired by khairil’s blog on qemu, I’d installed it on my laptop running OpenSuse. As usual, I’m a lazy person and only care for something that work out-of-the-box. Khairil’s article look’s promising. These are my expection when trying something new:-

  • Easy to install, means I can get it as binary package or if no binary package available I can install it by ./configure && make && make install without pulling my hair or smashing my keyboard.

  • Quickstart. All I need to get started are just command --help, man command or a few keyword on google.

That said, installing qemu on Suse is quite easy. Just untar the binary package in your / directory and everything is ready to go. First test with KNOPPIX quite impressive although little bit slow (tooo slow actually) but that was expected. Fully loaded to KDE, KNOPPIX quite usable (I’d only tested with Firefox). The second test was installing my all the time favourite linux distro archlinux. The installation went fine, then I realized that network connection was emulated to the actual interface so there was no chance for me to test the recent archlinux support for wireless connection.

Having a usable archlinux system running (without X) I wanna see if I can configure it as a development server. Network connectivity from guest to host has no problem. I can ssh to the host machine but not the reverse. Checking the documentation, I have to use the -redir option to redirect the request to the guest os. So to enable ssh and http service from host OS, I need to start qemu with:-

$ qemu -hda image -boot c -redir tcp:555:10.0.2.16:22 -redir tcp:8000:10.0.2.16:80

Now I can ssh to guest OS using port 5555 and access the http server using port 8000. But this only work from the host machine. Trying to access the service at the mentioned port from other machine did not work. So to actually use qemu as virtual development environment, few questions remained:-

  • How to access the network services from other machine.
  • How to map the port to the actual listening port so I can just access the services as http://virtual-machine.com/ instead of http://virtual-machine:8000/.

Comments

Use Apache rewrites and ssh tunnels

Some quick options to try

for http use apache rewrites or a simple proxy like pound
ssh tunnel to map the local redirect from another machine