gBootRoot pronounced "bOOtrOOt"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
freesource 96a1c4303d Haha, there's always 1 silly inaccuracy, but in the big picture this 20 years ago
BootRoot Another cool change making gui fssize 8192 .. just more convenience. 20 years ago
add-ons/yard/make-debian-X11 Added a configure script to handle skas-or-tt for now, since editing 20 years ago
doc/html k 20 years ago
genext2fs Not necessary to have this in the sources. 20 years ago
pkg More stuff 20 years ago
skas-or-tt Fixed a bug which causes lock-ups during seconf fs creation with 20 years ago
user-mode-linux/usr/lib/uml 2.4.20-1! 20 years ago
yard Haha, there's always 1 silly inaccuracy, but in the big picture this 20 years ago
.gitignore *** empty log message *** 22 years ago
COPYING It's GNU GPLED, ofcourse. 20 years ago
Changes 2.4.20-1! 20 years ago
Makefile This puts the README in the normal binary. 20 years ago
Makefile.pkg 2.4.20-1! 20 years ago
README More stuff 20 years ago * This is an exciting module by jdike of UML, it uses the Expect, IO::Stty, and 22 years ago
configure A better approach. 20 years ago
expect_uml More stuff 20 years ago
gbootroot More stuff 20 years ago
gbootroot-nest1_pkg This puts the README in the normal binary. 20 years ago
gbootroot.xpm Right now this xpm is just used by the menu system .. not exactly 32x32 or given 21 years ago
gbootroot_pkg Changed to agetty first in control structure, and changed Helper.yard 20 years ago
gbootrootrc Font change. 21 years ago
yard_chrooted_tests More stuff 20 years ago


$Id: README,v 1.29 2003/02/18 18:28:06 freesource Exp $
Program: gBootRoot pronounced "bOOtrOOt"
License: GNU General Public License


If you can compile a kernel on your system, then you should have no
problems getting the Makefile to work, and if you are using the
sources for the Debian package, then you can always do an "apt-get
build-dep gbootroot" to automatically figure out your build
requirements. Gbootroot makes its own root_fs, when the output gets
colorful (blue and red) you know this is happening. If things go
wrong at this point you will want to look at the requirements below.

You will want wget installed because the Makefile attempts to download
the necessary sources and then places them in the sources/ directory.
This is what makes the unofficial Debian and RedHat source packages
unique, because usually another package would provide the necessary
sources since official distributions aren't always used online. On
the other hand, this is a FEATURE. Anytime you want to update
gbootroot to the current user-mode-linux patch just change the
Makefile PATCH_VERSION, run ./configure, run "make clean", and then
"make". If this is your first time making gbootroot from the source
package just run ./configure and "make".

The two root_fs created are root_fs_helper and Initrd.gz.
Root_fs_helper has lots of different filesystem utilities, but the
CRUCIAL ones to get the build to work properly are mke2fs and
mkcramfs. Here's a list of what utilities are included: mke2fs
mkcramfs genromfs mkfs.minix mkminix mkreiserfs mkfs.jffs mkfs.jffs2

These are the build-depends from the Debian source package that can be
used as a guide for other distributions: binutils (>=,
fileutils (>= 4.0), gcc (>= 2:2.95.4), make, libc6-dev (>= 2.2.5),
bin86, wget, mkcramfs, e2fsprogs, reiserfsprog, genromfs, util-linux,
mtd-tools, m4, libreadline4-dev, libncurses5-dev, libgtk-perl (>=
0.7002) [see gbootroot's site], libexpect-perl [required rpms can be
found at gbootroot's site]. For instance, in Redhat libc6-dev
translates into glibc-devel and glibc-kernheaders, libreadline4-dev
translates into readline-dev, libncurses5-dev translates into
ncurses-devel, reiserfsprog translates into reiserfs-utils. Mandrake
requires glibc-static-devel along with glibc-devel, but the other
package names are more similar to Debian.

Suse users may need to edit /usr/include/asm/ptrace.h adding "#define
FRAME_SIZE 17" after the "#define SS 16" line or else uml won't
compile. This was observed in Suse 7.3; why this line is missing is a
complete mystery.


You may want to add your own customizations to the uml kernel. To
accomplish this you will need to understand that the Makefile runs
oldconfig on the configuration file ".config" which is first copied
from user-mode-linux/usr/lib/uml/config to .config in the
linux-$VERSION directory where the kernel sources reside. What this
means is that after doing a make config or one of the config alternatives
from the kernel sources directory, you should copy the customized
configuration file you made to the ../user-mode-linux/usr/lib/uml
directory and then run gbootroot's Makefile.


If you build the package as a non-root user, and you don't have
permissions to write to system directories you can always run
gbootroot from the immediate source directory "./gbootroot --home ."
or "perl -I . ./gbootroot --home ." if there is already another
installed version on the system.

To install on the system type "make install" and follow the
instructions in the "Important Configurations" section near the bottom
of this page, and then run gbootroot.

When you run gbootroot if a boot or root method are missing required
programs, pop-up dialog boxes and information from the verbosity box
will give a good indication of what is causing the problem.



Gtk-Perl (Required for CLI/GUI)

Version 0.7002 or greater.

[ The next three are required for automated normal (non-root) user
functionality . ]

Expect (tested with 1.11/1.15)
RPM version can be found at

RPM versions can be found at

RPM versions can be found at


2 disk compression

This method will tell you when any of these utilities are missing:

ash lilo bzip2 file


Yard (This is a method - not a program)

Watch the verbosity box, it will be obvious when a required command is
missing. Make sure you have this file installed on your system:



"chown 0:0 /usr/bin/uml_net; chmod 4755 /usr/bin/uml_net" so normal
users can have network capabilities; ofcourse, you may totally avoid
doing the suid thing by using tunctl.

Should the host kernel have the skas patch applied?

"Yes, I highly recommended it. It's a great performance improvement,
and gbootroot will run a lot better. Modes are figured out
automatically by skas-or-tt so don't add mode={tt,skas} in the UML
box. The host-skas3.patch is available from . Alternatively, there is a
skas module available from ."


Documentation and FAQ are in doc/html/index.html

Have fun!


Please infuse your suggestions, bug reports, insults, and patronage back to:
Jonathan Rosenbaum <>