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 distribution installation procedures

There are a number of reasons to want to run a distribution's install procedure inside UML:

- The result is an authentic, upgradable installation, which you might not get by using a more ad-hoc method.
- You can do a dry run of the install without needing to devote hardware to it. This can tell you what the installation will involve, and booting the result will give you an idea of what the distribution looks like once installed.
- It's good exercise for the kernel. Installation procedures are somewhat unusual and they are good at exposing bugs in the kernel.

A couple of installation procedures have been made to run under UML:

- Slackware - This one was the easiest so far. Slackware has a completely text-based procedure and it is also willing to take your word on what devices it should use as installation sources and targets. It doesn't poke at the system and do sanity checks on devices like other, more user-friendly, installations do. A Slackware installation kit is available here . It contains a Slackware boot disk image and a README which will walk you through the install. You can see the README here, and a log of a typical installation here.
- SuSE - SuSE is pickier about the system it installs on. It looks at /proc/partitions to figure out what devices are available as installation targets, which requires the ubd block device to fake partition information. It doesn't seem to have a textual install. Instead, it uses ASCII graphics which only seem to display right on a virtual console. I haven't found a terminal emulator which will do the right thing with it. So, in order to run the SuSE installation, you have to run the kernel on one of the host virtual consoles.
- RedHat - It takes a little hacking to get RedHat to install cleanly on a UML system, but Oleg Drokin has suceeded in getting RedHat up and running. He has produced a document with lots of screenshots if you want to do it yourself.
- Debian - The Debian UML maintainer, Matt Zimmerman has managed to get Debian Woody to install under UML with only a number of small issues. You can read all about his progress at lists.debian.org where his original post to debian-boot can be read.
- Linux From Scratch - LFS is a slightly different kettle of fish, as we have to compile our own Linux distribution, then boot it on UML. There is a great HOW-TO on using LFS with UML over at hints.linuxfromscratch.org.

Hosted at