Here's a description of the root filesystems found at , , and .

Jeff Dike may move the ones he likes up to: and .


As of 2001/03/24, we're building 6 different types of filesystems (anonsrv, client, dns, email, full and server) from Caldera 3.1.1, Conectiva 7.0, Mandrake 8.1 and 8.2, Redhat 6.2 and 7.2 and Turbolinux 7. They should all have enough to boot succssfully and make a network connection back to the host. Here's how they differ:

Apache, wu-ftpd, rsync and ssh servers.
Bind and ssh servers.
Sendmail, pop and imap and ssh servers.
A bunch of client apps, both console and X. lynx, mc, tcpdump, strace, traceroute, strace, traceroute, less, man, info, diff, rpm, vim, telnet, ftp, ssh, ircii, gcc, fvwm, enlightenment, xsysinfo, xosview and gdm.
(x)inetd, apache, bind, sendmail, imap, inn, linuxconf, pidentd, portmap, rsync, squid, samba, telnet, ssh, snmp and wu-ftpd servers.
This includes everything in client and server.
A few more details about them.

How to use

To use one of them, download the bz2 file (say, root_fs.rh-7.2-full.pristine.20020312.bz2). The files are rather large, but since the free space on them is largely filled with empty sectors, one can save a bunch of hard drive space (approximately equal to the amount of free space in the file) by opening them with the following commands:

cp -p --sparse=always <( cat root_fs.rh-7.2-full.pristine.20020312.bz2 | bunzip2 -c - ) root_fs.rh-7.2-full.pristine.20020312
chmod 444 root_fs.rh-7.2-full.pristine.20020312
touch --reference=root_fs.rh-7.2-full.pristine.20020312.bz2 root_fs.rh-7.2-full.pristine.20020312
cp -p --sparse=always <( cat swap.pristine.bz2 | bunzip2 -c - ) swap
chmod 644 swap
touch --reference=swap.pristine.bz2 swap

If that works successfully and you really want to save space, you can delete the original bz2s with:

rm -f root_fs.rh-7.2-full.pristine.20020312.bz2 swap.pristine.bz2

The root filesystems were designed to be left read-only so you could start a Copy-On-Write (COW) file above them. Here's an example of how to start uml in this fashion:

./linux mem=64M ubd0=root_fs.rh-7.2-full.cow,root_fs.rh-7.2-full.pristine.20020312 ubd1=swap eth0=ethertap,tap2,C0:FF:EE:C0:FF:EE,

If you'd like to work with them opened up to a directory on your drive, say, to run uml chrooted, here's an example. Say you want the files from to end up in ~/caldera_root . You'll need sudo privileges to run mount, umount, and tar to do this (or run them as root, but sudo recommended).

rsync -av ~
cp -p --sparse=always <( cat | bunzip2 -c - )
mkdir ~/tmpmount ~/caldera_root
sudo mount -o loop ~/tmpmount
( cd ~/tmpmount && sudo tar cf - . ) | (cd ~/caldera_root && sudo tar xpvf - )
sudo umount ~/tmpmount
rmdir tmpmount

How they were built

The scripts to build them are at . If this documentation doesn't match the scripts, trust the script. "updateme" calles the others to build all 18 filesystems. It has hardcoded paths for the distribution mirrors used at ists, but should hopefully be customizable without too much trouble.

Testing and help

While the build process has gotten a lot of time, and obviously the raw distributions have gotten a lot of testing, these individual filesystems have not. This is where you come in! We'd love to hear feedback on whether they work for you or not. Please send any and all feedback to William Stearns and the UML development mailing list at Please include as much detail as you're able, including:

If a root filesystem is missing some tool or utility that makes it essentially unusable, we'd love to know. On the other hand, it might be that the root filesystem is missing a tool that you use a lot, but isn't truly necessary for basic operation. In the latter case, feel free to add the tool yourself. If you're not sure if a package falls into the "crucial" or "I'd really like it" category, feel free to post to the list and Bill.

Empty filesystems

If you'd like an empty filesystem for storing your own stuff, we have some prebuilt ones in dos (fat), ext2, ext3, minix, reiser and swap in 16, 32, 64, 100, 128, 256, 512, 1024, 1536, 2048, and 3072 megabyte sizes (reiser from 64-2047). Download the bz2 file you'd like and open it up with the "cp" command mentioned in "How to use", above. Don't simply type "bunzip2 emptyfs...bz2" as you'll use that much space; the cp command uses almost no actual space on your drive until you start to fill up the filesytem.

Here's an example:

cp -p --sparse=always <( cat emptyfs.ext3.256.bz2 | bunzip2 -c - ) emptyfs.ext3.256
mv emptyfs.ext3.256 myworkspace
./linux mem=64M ubd0=root_fs.rh-7.2-full.pristine.cow,root_fs.rh-7.2-full.pristine ubd1=swap ubd2=myworkspace eth0=ethertap,tap2,C0:FF:EE:C0:FF:EE,

Once inside uml, add the following line to /etc/fstab:

/dev/ubd/2      /workspace          ext3    defaults 0 0

and type:

mkdir /workspace
mount /workspace

Any files you save in /workspace will be saved in the myworkspace file on the host. This allows you to upgrade the root filesystem later without having to back up any files stored on the root filesystem.

If you'd like a different size, feel free to make your own with mkemptyfs.


Last edited: 3/24/2002

Thanks to Chris Martin for typo spotting.

Best viewed with something that can show web pages... <grin>

The files in this collection are part of William Stearns' software archive. If any of the links on this page do not work, you may be viewing an incomplete mirror. There is a complete list of the mirror sites at the starting page for this mirror and at the primary mirror.