Here's a description of the root filesystems found at http://uml-pub.ists.dartmouth.edu/uml/pristineroots/ , ftp://uml-pub.ists.dartmouth.edu/uml/pristineroots/ , and http://mirror.math.leidenuniv.nl/uml.ists.dartmouth.edu/pristineroots/ .
Jeff Dike may move the ones he likes up to:
http://uml-pub.ists.dartmouth.edu/uml/ and ftp://uml-pub.ists.dartmouth.edu/uml/ .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:
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,192.168.0.254
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 root_fs.ca-3.1.1-dns.pristine.20020318.bz2 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 uml-pub.ists.dartmouth.edu::uml/pristineroots/root_fs.ca-3.1.1-dns.pristine.20020318.bz2 ~ cp -p --sparse=always <( cat root_fs.ca-3.1.1-dns.pristine.20020318.bz2 | bunzip2 -c - ) root_fs.ca-3.1.1-dns.pristine.20020318 mkdir ~/tmpmount ~/caldera_root sudo mount -o loop root_fs.ca-3.1.1-dns.pristine.20020318 ~/tmpmount ( cd ~/tmpmount && sudo tar cf - . ) | (cd ~/caldera_root && sudo tar xpvf - ) sudo umount ~/tmpmount rmdir tmpmount
The scripts to build them are at http://www.stearns.org/mkrootfs/ . 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.
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 wstearns@pobox.com and the UML development mailing list at user-mode-linux-devel@lists.sourceforge.net. 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.
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,192.168.0.254
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.