Table of Contents
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1. Introduction
1.1 How is User Mode Linux Different?
13. What to do when UML doesn't work
13.1 Strange compilation errors when you build from source
- 13.2 UML hangs on boot after mounting devfs
+ 13.2 (obsolete)
13.3 A variety of panics and hangs with /tmp on a reiserfs filesystem
13.4 The compile fails with errors about conflicting types for 'open', 'dup', and 'waitpid'
13.5 UML doesn't work when /tmp is an NFS filesystem
1. Download the latest UML patch from
- the download page <http://user-mode-linux.sourceforge.net/dl-
- sf.html>
+ the download page <http://user-mode-linux.sourceforge.net/
In this example, the file is uml-patch-2.4.0-prerelease.bz2.
bug fixes and enhancements that have gone into subsequent releases.
- If you build your own kernel, and want to boot it from one of the
- filesystems distributed from this site, then, in nearly all cases,
- devfs must be compiled into the kernel and mounted at boot time. The
- exception is the SuSE filesystem. For this, devfs must either not be
- in the kernel at all, or "devfs=nomount" must be on the kernel command
- line. Any disagreement between the kernel and the filesystem being
- booted about whether devfs is being used will result in the boot
- getting no further than single-user mode.
-
-
- If you don't want to use devfs, you can remove the need for it from a
- filesystem by copying /dev from someplace, making a bunch of /dev/ubd
- devices:
-
-
- UML# for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $i; done
-
-
-
-
- and changing /etc/fstab and /etc/inittab to refer to the non-devfs
- devices.
-
-
-
2\b2.\b.2\b2.\b. C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg a\ban\bnd\bd i\bin\bns\bst\bta\bal\bll\bli\bin\bng\bg k\bke\ber\brn\bne\bel\bl m\bmo\bod\bdu\bul\ble\bes\bs
UML modules are built in the same way as the native kernel (with the
as modules, especially filesystems and network protocols and filters,
so most symbols which need to be exported probably already are.
However, if you do find symbols that need exporting, let us
- <http://user-mode-linux.sourceforge.net/contacts.html> know, and
+ <http://user-mode-linux.sourceforge.net/> know, and
they'll be "taken care of".
You will need a filesystem to boot UML from. There are a number
available for download from here <http://user-mode-
- linux.sourceforge.net/dl-sf.html> . There are also several tools
- <http://user-mode-linux.sourceforge.net/fs_making.html> which can be
+ linux.sourceforge.net/> . There are also several tools
+ <http://user-mode-linux.sourceforge.net/> which can be
used to generate UML-compatible filesystem images from media.
The kernel will boot up and present you with a login prompt.
+\bo None - device=none
- This causes the device to disappear. If you are using devfs, the
- device will not appear in /dev. If not, then attempts to open it
- will return -ENODEV.
+ This causes the device to disappear.
Note that the IP address you assign to the host end of the tap device
must be different than the IP you assign to the eth device inside UML.
- If you are short on IPs and don't want to comsume two per UML, then
+ If you are short on IPs and don't want to consume two per UML, then
you can reuse the host's eth IP address for the host ends of the tap
devices. Internally, the UMLs must still get unique IPs for their eth
devices. You can also give the UMLs non-routable IPs (192.168.x.x or
Harald's original README is here <http://user-mode-linux.source-
- forge.net/text/mcast.txt> and explains these in detail, as well as
+ forge.net/> and explains these in detail, as well as
some other issues.
kernel.
These were pointed out by Tim Robinson <timro at trkr dot net> in
- <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="this uml-
+ <http://www.geocrawler.com/> name="this uml-
user post"> .
- Making it world-writeable looks bad, but it seems not to be
+ Making it world-writable looks bad, but it seems not to be
exploitable as a security hole. However, it does allow anyone to cre-
ate useless tap devices (useless because they can't configure them),
which is a DOS attack. A somewhat more secure alternative would to be
there are multiple COWs associated with a backing file, a -d merge of
one of them will invalidate all of the others. However, it is
convenient if you're short of disk space, and it should also be
- noticably faster than a non-destructive merge.
+ noticeably faster than a non-destructive merge.
uml_moo is installed with the UML deb and RPM. If you didn't install
UML from one of those packages, you can also get it from the UML
- utilities <http://user-mode-linux.sourceforge.net/dl-sf.html#UML
+ utilities <http://user-mode-linux.sourceforge.net/
utilities> tar file in tools/moo.
- 1\b13\b3.\b.2\b2.\b. U\bUM\bML\bL h\bha\ban\bng\bgs\bs o\bon\bn b\bbo\boo\bot\bt a\baf\bft\bte\ber\br m\bmo\bou\bun\bnt\bti\bin\bng\bg d\bde\bev\bvf\bfs\bs
-
- The boot looks like this:
-
-
- VFS: Mounted root (ext2 filesystem) readonly.
- Mounted devfs on /dev
-
-
-
-
- You're probably running a recent distribution on an old machine. I
- saw this with the RH7.1 filesystem running on a Pentium. The shared
- library loader, ld.so, was executing an instruction (cmove) which the
- Pentium didn't support. That instruction was apparently added later.
- If you run UML under the debugger, you'll see the hang caused by one
- instruction causing an infinite SIGILL stream.
-
-
- The fix is to boot UML on an older filesystem.
-
-
-
1\b13\b3.\b.3\b3.\b. A\bA v\bva\bar\bri\bie\bet\bty\by o\bof\bf p\bpa\ban\bni\bic\bcs\bs a\ban\bnd\bd h\bha\ban\bng\bgs\bs w\bwi\bit\bth\bh /\b/t\btm\bmp\bp o\bon\bn a\ba r\bre\bei\bis\bse\ber\brf\bfs\bs f\bfi\bil\ble\bes\bsy\bys\bs-\b-
t\bte\bem\bm
1\b13\b3.\b.5\b5.\b. U\bUM\bML\bL d\bdo\boe\bes\bsn\bn'\b't\bt w\bwo\bor\brk\bk w\bwh\bhe\ben\bn /\b/t\btm\bmp\bp i\bis\bs a\ban\bn N\bNF\bFS\bS f\bfi\bil\ble\bes\bsy\bys\bst\bte\bem\bm
- This seems to be a similar situation with the resierfs problem above.
+ This seems to be a similar situation with the ReiserFS problem above.
Some versions of NFS seems not to handle mmap correctly, which UML
- depends on. The workaround is have /tmp be non-NFS directory.
+ depends on. The workaround is have /tmp be a non-NFS directory.
1\b13\b3.\b.6\b6.\b. U\bUM\bML\bL h\bha\ban\bng\bgs\bs o\bon\bn b\bbo\boo\bot\bt w\bwh\bhe\ben\bn c\bco\bom\bmp\bpi\bil\ble\bed\bd w\bwi\bit\bth\bh g\bgp\bpr\bro\bof\bf s\bsu\bup\bpp\bpo\bor\brt\bt
n\bne\bet\bt
If you can connect to the host, and the host can connect to UML, but
- you can not connect to any other machines, then you may need to enable
+ you cannot connect to any other machines, then you may need to enable
IP Masquerading on the host. Usually this is only experienced when
using private IP addresses (192.168.x.x or 10.x.x.x) for host/UML
networking, rather than the public address space that your host is
Michael Jennings <mikejen at hevanet.com> sent in some material which
is now gracing the top of the index page <http://user-mode-
- linux.sourceforge.net/index.html> of this site.
+ linux.sourceforge.net/> of this site.
SGI <http://www.sgi.com> (and more specifically Ralf Baechle <ralf at
uni-koblenz.de> ) gave me an account on oss.sgi.com
Chris Reahard built a specialized root filesystem for running a DNS
server jailed inside UML. It's available from the download
<http://user-mode-linux.sourceforge.net/dl-sf.html> page in the Jail
- Filesysems section.
+ Filesystems section.