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 SourceForge Logo