Running User Mode Linux

Site Home Page The UML Wiki UML Community Site The UML roadmap What it's good for Case Studies Kernel Capabilities Downloading it Running it Compiling Installation Skas Mode Incremental Patches Test Suite Host memory use Building filesystems Troubles User Contributions Related Links The ToDo list Projects Diary Thanks Contacts
Tutorials The HOWTO (html) The HOWTO (text) Host file access Device inputs Sharing filesystems Creating filesystems Resizing filesystems Virtual Networking Management Console Kernel Debugging UML Honeypots gprof and gcov Running X Diagnosing problems Configuration Installing Slackware Porting UML IO memory emulation UML on 2G/2G hosts Adding a UML system call Running nested UMLs
How you can help Overview Documentation Utilities Kernel bugs Kernel projects
Screenshots A virtual network An X session
Transcripts A login session A debugging session Slackware installation
Reference Kernel switches Slackware README
Papers ALS 2000 paper (html) ALS 2000 paper (TeX) ALS 2000 slides LCA 2001 slides OLS 2001 paper (html) OLS 2001 paper (TeX) ALS 2001 paper (html) ALS 2001 paper (TeX) UML security (html) LCA 2002 (html) WVU 2002 (html) Security Roundtable (html) OLS 2002 slides LWE 2005 slides
Fun and Games Kernel Hangman Disaster of the Month
| ### Running UML and logging in
Running UML
It runs on 2.2.15 or later, and all 2.4 and 2.6 kernels. Booting UML is straightforward. Simply run 'linux': it will try to mount the file `root_fs' in the current directory. You do not need to run it as root. If your root filesystem is not named `root_fs', then you need to put a `ubd0=root_fs_whatever' switch on the linux command line. You will need a filesystem to boot UML from. There are a number available for download from here . There are also several tools which can be used to generate UML-compatible filesystem images from media. The kernel will boot up and present you with a login prompt. Note: If the host is configured with a 2G/2G address space split rather than the usual 3G/1G split, then the packaged UML binaries will not run. They will immediately segfault. See this page for the scoop on running UML on your system.
Logging in
> - The prepackaged filesystems have a root account with password 'root' and a user account with password 'user'. The login banner will generally tell you how to log in. So, you log in and you will find yourself inside a little virtual machine. Our filesystems have a variety of commands and utilities installed (and it is fairly easy to add more), so you will have a lot of tools with which to poke around the system. There are a couple of other ways to log in: On a virtual console Each virtual console that is configured (i.e. the device exists in /dev and /etc/inittab runs a getty on it) will come up in its own xterm. If you get tired of the xterms, read this to see how to attach the consoles to something else, like host ptys. Over the serial line In the boot output, find a line that looks like: ``
>                           serial line 0 assigned pty /dev/ptyp1
Attach your favorite terminal program to the corresponding tty. I.e. for minicom, the command would be `host% minicom -o -p /dev/ttyp1` Over the net If the network is running, then you can telnet to the virtual machine and log in to it. See the networking page to learn about setting up a virtual network. When you're done using it, run halt, and the kernel will bring itself down and the process will exit.
Examples
Here are some examples of UML in action: A login session A virtual network

Hosted at