Using User-Mode Linux

Because it can be tricky to get user mode linux working correctly, I have written out some "works-for-me" directions about the specific version I have gotten working. For a comprehensive document, go to the UML home page. Of particular note, these instructions allow one to build and use UML on the UT Linux boxes without root access.

Version

I used Linux 2.6.13.2 + the skas-2.6.13-rc7-v9-pre7.patch uml patch. I used the Debian-3.0r2.ext2 disk image file from mdz as a starting point.

Compiling

To select kernel options, type 'make ARCH=um menuconfig'
Be sure to:

To compile, type 'make ARCH=um linux'. If you have problems, you can also add 'KBUILD_VERBOSE=1' to the command line to see what is happening.
UT Notes: For some reason compilation doesn't go as smoothly on the UT machines as at home for me. In particular, to get everything to compile I had to type the definition of CLONE_PARENT into arch/um/kernel/skas/clone.c. Also, change '/lib/libutil.a' to '-L/usr/lib -lutil' in arch/um/Makefile (thanks to Sibi Govindan).

Other tools you will need

You will want to download and install the uml utilities package (in particular the port-helper binary). Also, you will want to download and install the slirp package.

Booting UML

Type: ./linux ubd0=./Debian-3.0r2.ext2 eth0=slirp,,/path/to/slirp/executable
and you are off to the races.

Networking

To get networking without root, you can use slirp. There are better ways of setting up virtual networking, but you have to have root on the host machine. So, here we are.
Log in to uml as root
Edit /etc/resolv.conf and add:
nameserver 128.111.1.2
nameserver 128.111.1.1

Edit /etc/network/interfaces:
auto eth0
iface eth0 inet static
    address 10.0.2.15
    netmask 255.0.0.0
    gateway 10.0.2.15

type:
ifup eth0 (first time only - after that it should start on its own).