< html >
< head > < title > gBootRoot< / title > < / head >
< body text = "#000000" bgcolor = "#FFFFFF" link = "#0000EF" vlink = "#51188E"
alink="#FF0000">
< H1 align = "center" > gBootRoot< / h1 >
< H3 align = "center" > at< / h3 >
< p align = "center" > < A href = "http://sourceforge.net/projects/gbootroot" >
< IMG src = "http://sourceforge.net/sflogo.php?group_id=9513&type=1"
width="88" height="31" border="0"
alt="SourceForge Logo"> < / A > < / p >
< p > < / p >
< P align = "center" >
< b > bOOTrOOT< / b > makes the development, construction, and
testing of distributions fun and simple.< / P >
< br >
< P align = "center" >
< b > Download gBootRoot< / b > < / P >
< P align = "center" >
< b > Newest version< / b > < br >
< a href = "http://freshmeat.net/redir/gbootroot/3075/url_tgz/gbootroot.orig.tar.gz" > gbootroot source (type make to install)< / a > < br >
< a href = "http://freshmeat.net/redir/gbootroot/3075/url_deb/gbootroot_all.deb" >
gbootroot debian package< / a > < / p >
< P align = "center" >
< b > Add-ons< / b > < br >
< a href = "http://freshmeat.net/redir/make-debian-x11/18842/url_tgz/make-debian-x11.orig.tar.gz" >
make-debian-x11 source (type make to install)< / a > < br >
< a href = "http://freshmeat.net/redir/make-debian-x11/18842/url_deb/make-debian-x11_all.deb" >
make-debian-x11 debian package< / a >
< p >
< p align = "center" >
< em > Users who use packaging tools which support apt should add these lines to
their sources.list:< / em > < br > < br >
< align > deb http://prdownloads.sourceforge.net/gbootroot ./< br >
deb http://prdownloads.sourceforge.net/avd ./< br > < / p >
< p align = "center" > Older versions found at this
< A href = "http://prdownloads.sourceforge.net/gbootroot/" > site< / A > < / P > < br >
< P align = "center" >
< IMG ALT = "" SRC = "images/gbootroot.jpg" >
< / P >
< P align = "center" >
< b > How to Use gBootRoot< / b > < / P >
< P > < IMG ALT = "" SRC = "images/gBS.jpg" align = "right" > The most important button to
familiarize yourself with is the Submit button which starts the whole process;
dialogs are presented as the process continues asking you if you want to
continue " OK" or stop " Cancel" .< / P >
< p >
The < u > first row< / u > presently has only one Boot Method choice:
"2 disk compression." Clicking on the menu on the right selects
the Boot Method.< / p >
< P > The < u > second row< / u > allows you to select the kernel for the Boot/Root set. You
may either use the file selector button on the right hand side, or you may
type in the location on the left hand side.< / P >
< P >
The < u > third row< / u > allows you to select the compressed filesystem you are
providing, using either of the two ways mentioned before. You may use a
pre-made root filesystem or you may create one using one of the Methods
provided in the Advanced Root Section.
< / P >
< P > The < u > fourth row< / u > allows you to select the device you want to use. The default
device is the first floppy disk - /dev/fd0.< / P >
< p >
The < u > fifth row< / u > allows you to choose the size of the device being used. The default size of 1440 assumes you are using a floppy drive
(Note: You may
want to experiment with 1722 which works fine with many floppy drives.), but
can be used with other sized devices like tape drives. Click on the
appropriate radio button to choose either gzip or bzip2 compression if the
program doesn't automatically detect it.< / p >
< P align = "center" > < b > Verbosity Box< / b > < / p >
< IMG ALT = "" SRC = "images/verbosity_box.jpg" align = "right" >
The < u > slider bar< / u > on the right allows the output of the verbosity box
to be
changed from the highest (2) to the lowest setting (1) or to be turned off (0)
or on again. At times it may be advantageous to turn off the
verbosity box
since large quantities of output to this box may cause gbootroot to use too
much cpu power; however, output may still be found in the text file "verbose"
in /tmp/gbootroot_tmp'time-date'.< / p >
< br > < br > < br > < br > < br > < br > < br > < br >
< p > < P align = "center" > < b >
Using the Advanced Boot Section< / b > < / p >
< p > < IMG ALT = "" SRC = "images/ABS.jpg" align = "right" >
Libraries & Binaries & Modules check boxes: Turn off and on the
stripping of symbols. The stripping
behavior for libraries may be changed by clicking on the right mouse button
to change --strip-debug to --strip-all. Binaries default to
--strip-all and Modules default to --strip-debug.< / p >
< p >
"Devel Device" If the device used for development is different than the
actual boot device, use this field to indicate that device. You will have to
run lilo -v -C brlilo.conf -r "device mount point" manually at a later time
on the actual boot device.< / p >
< p >
"Opt. Device" Add devices to the boot disk which are necessary for the
kernel to function properly. Put a space between each
device. For instance, /dev/fb0 for frame buffer devices.< / p >
< p >
"append =" Add append options to brlilo.conf. If you are using a frame
buffer device you could add something like video=matrox:vesa:402,depth:16.< / p >
< p >
"Kernel Module" Add the modules found in
/lib/modules/kernel-version which are necessary for the Boot Method to work
properly. If these modules aren't found in the modules directory
it is assumed
that they either are in the kernel or they do not exist. In the
case of 2 disk compression, floppy needs to be included in the
kernel or included as a module. Kmod inserts the modules, and
kmod needs to be built into the kernel along
with initrd and ramdisk."< / p >
< p >
"Kernel Version" Override the kernel version number found in the
kernel header. This will change the /lib/modules/kernel-version
directory.< / p >
< p >
System.map: When a non-running kernel is chosen it is important
to include a copy of that kernel's System.map file so that depmod can use
the correct set of kernel symbols to resolve kernel references in each
module. This can be found in the kernel's source code after
compilation.
< br > < br > < br > < br > < br > < br > < br >
< P align = "center" >
< b > Using the Advanced Root Section< / b > < / P >
< p > < IMG ALT = "" SRC = "images/ARS.jpg" align = "right" >
"Root Device" This is the device used for the root filesystem when
constructing the Boot/Root set. You may choose a device which is
different
than the Boot device, but presently only floppy devices are supported.< / p >
< p >
"Root Device Size" The size of the actual media used for the Root Device.< / p >
< p >
"Root Filename" The name give to the root filesystem when
initially made in the temporary creation location. The save
button allows the creation to
be saved in the permanent default location when the
Accept button is pressed.< / p >
< p >
"Filesystem Size" Root Methods make the filesystem the size
which is specified here.< / p >
< p >
"Compression" Off by default to allow user-mode-linux
testing. Turn on
compression when you are ready to use a Boot Method
which requires compression.< / p >
< p >
"Method" The root filesystem creation method.< / p >
< p >
"Template" The template associated with a Root
Method. Not all Root Methods
have templates.< / p >
< p >
"Generate" This puts the chosen Root Method in action.< / p >
< p >
"UML" Abbreviation for user-mode-linux. This is a
linux kernel which runs on
top of the host system's linux kernel and allows a you run a live root
filesystem.< / p >
< p >
"Accept" This accepts the created root filesystem if it is
found in the
temporary creation directory. The UML box and the main section
will now
reflect the path to this root filesystem. You can now test with
the UML
button or a put together a complete Boot/Root set with the Submit button.< / p >
< br > < br > < br > < br > < br > < br > < br >
< p > < P align = "center" > < b > User Mode Linux Box< / b > < / p >
< p > < IMG ALT = "" SRC = "images/uml_box.jpg" align = "right" >
"Xterm" Choose an xterm with its executable options switch.< / p >
< p >
"Options" Enter uml command-line options like: mem=64,
devfs=nomount.< / p >
< p >
"Root_Fs" Choose an uncompressed root
filesystem. Append with ubd?=.< / p >
< p >
"Abort" Abort user-mode-linux kernel processes.< / p >
< p > < P align = "center" > < b >
About the Yard Box< / b > < / p >
< p > < IMG ALT = "" SRC = "images/yard_box.jpg" align = "center" > < / p >
The Yard Box is a Root Method which is "Generated" from the Advanced Root
Section after a Template is chosen. It has several
interesting features.
< p >
The check boxes at the bottom represent the different stages involved in
creating a root filesystem. The behavior of these stages
may be altered in
three ways: Edit->Stages->one-by-one (default) will perform each stage
sequentially, stopping between each stage, the user may continue the process
by pressing the Continue
button. Edit->Stages->continuous proceeds non-stop
through all the
stages. Edit->Stages->'user defined' allows the user to
choose any stages the user wants, and will then proceed through all the
chosen
stages. Choosing only 'Check', 'Links & Deps', 'Create' is a good
example.< / p >
< p > < IMG ALT = "" SRC = "images/tests.jpg" align = "center" > < / p >
< p >
The behavior of some of the stages may be
altered. For instance Alt-T allows
you to choose which tests to run on the newly created
root filesystem.< / p >
< p > < IMG ALT = "" SRC = "images/template_search.jpg" align = "center" > < / p >
< p >
Press Alt-S to enable template text searching in either
direction. Find exact matches or ignore case with
the case sensitive check box.< / p >
< p > < IMG ALT = "" SRC = "images/file.jpg" align = "center" > < / p >
< p >
Use Ctl-S to save the changes to an open template, and Alt-A to save the
template with a new name. bOOTrOOT will not allow read-only
templates or template links to be saved
with their own name. A few of these example files are
included. You may make changes to them or
clear their buffers. Then you may save the template with a
different name.< / p >
< p > < IMG ALT = "" SRC = "images/stripping.jpg" align = "center" > < / p >
< p >
Edit->Settings->Stripping allows you to turn off/on stripping for
Libraries, Binaries, and Modules. --strip-all is the
default for binaries and libraries,
and --strip-debug is the default for modules; however libraries may
be changed to --strip-debug in the settings.< / p >
< p > < IMG ALT = "" SRC = "images/paths.jpg" align = "center" > < / p >
< p >
Edit->Setting->Paths allows you to prepend a new search path to your
environments $PATH variable.
< / p >
< p > < IMG ALT = "" SRC = "images/filesystem.jpg" align = "center" > < / p >
< p >
Edit->'File System" may alter the type of filesystem used to make the root
filesystem. Because the filesystem is
created on a loop device, some
filesystem types may complain or not be created at all.< / p >
< p > < IMG ALT = "" SRC = "images/replacements.jpg" align = "center" > < / p >
< p >
Edit->Replacements in your $HOME/.gbootroot/Replacements directory using
an editor of your choice.
< / p >
< p > < IMG ALT = "" SRC = "images/create.jpg" align = "center" > < / p >
< p >
Create->Replacements creates special replacement
files. Presently it creates
an fstab configuration file as Replacements/etc/fstab.new in
$HOME/.gbootroot/yard/.< / p >
< P > Little things you may want to know:< / P >
< P > * gBootRoot requires ash for initrd. Ash is a feather weight version of Bash.< / P >
< br >
< P > < IMG ALT = "" SRC = "images/gBSicon.jpg" align = "center" > < b > FAQ< / b > < / P >
< P > < b > What does the 2 disk compression method do?< / b > < / P >
< P > This Boot Method creates a boot disk with lilo, a kernel and an initrd
image. The
initrd script mounts another root disk with a compressed (gzip or bzip2)
filesystem.< / P >
< P > < b > What's the advantage of using this program?< / b > < / P >
< p >
(Explanation from the first gbootroot.)< br >
"You can use a bzip2 compressed filesystem, this program is easy to use, and
it provides a framework showing a simple initrd method which you can freely
modify. I wrote this program as an extension to BootRoot
which was written
as a solution to help oster at EE (www.experts-exchange.com) create separate
boot and root floppies for an emergency system for his customers."< / P >
< P > < A href = "./bootroot.html" > BootRoot< / A >
was the original program, but I decided that a GUI approach
provided the user much more versatility and power in creating
distributions. Since the first gBootRoot,
bOOTrOOT has become a full blown distribution creation program.< / P >
< P > If you make a cool change to this program, or if this program helps you I'd love to know, that's better than receiving pizza. :)< / P >
< P > < b > How can I test gBootRoot?< / b > < / P >
< p >
(Note: You may run all these tests as a normal user.
See the exceptions which apply in the FAQ.)< / p >
< center > < u > Test an existing mini distribution.< / u > < / center >
< P > 1. Download
< a href = "http://prdownloads.sourceforge.net/user-mode-linux/root_fs_tomrtbt_1.7.205.bz2" >
root_fs_tomrtbt_1.7.205.bz2< / a > from
< a href = "http://www.sourceforge.net/projects/user-mode-linux" >
user-mode-linux< / a > at Sourceforge to your
$HOME/.gbootroot/root_filesystems. < / p >
< p >
2. bzip2 -dc root_fs_tomrtbt_1.7.205.bz2 > root_fs_tomrtbt_1.7.205.
< / p >
< p >
3. Run
gbootroot. Click on the Advanced Root Section (ARS), click on
the UML button. Select root_fs_tomrtbt_1.7.205, add devfs=nomount
to the options, and click on the Submit
button.< / p >
< center > < u > Create a boot and root floppy for an existing mini distribution.< / u > < / center >
< p >
4. Click on the Advanced Boot
Section (ABS). Root_fs_tomrtbt is about 16M, so add ramdisk_size=16384 to
the 'append=' entry. From the main box choose '2 disk compression', and
press on the Root Filesystem button and select root_fs_tomrtbt_1.7.205.bz2.
< / p >
5. Click the Submit button on the main
box. Have two floppy disks ready.
< p >
6. When you boot the boot disk you will see Lilo, you may access the menu using [Ctrl] and [Tab] to see the available images, or wait for the
prompt to insert the root disk.< / p >
< center > < u > Test a macro distribution created by make_debian-X11.< / u > < / center >
< p >
7. Download
< a href = "http://sourceforge.net/project/showfiles.php?group_id=9513" >
root_fs_debian_x11-(latest revision).bz2< / a > . Then follow the
instructions in the
first three steps, but don't add devfs=nomount. This root
filesystem was created with
the make_debian-X11 script from the make-debian-x11 add-on found at
< a href = "http://sourceforge.net/project/showfiles.php?group_id=9513" >
gbootroot's< / a > Sourceforge home.< / p >
< center > < u > Make your own micro distribution from an existing template.< / u > < / center >
< p >
8. Click on the ARS if its not already opened.
Choose Yard from the Method pull-down menu. Chosse Example-Mini.yard
from the pull-down Template menu. Click on the Generate button.
The Yard Box will pop up. Click on the Continue button
until you reach the Create check box. You could continue to the
tests, but they really wouldn't apply to this minimalistic example because
there are no links or login type files in the template.< / p >
< p >
9. Experiment with Edit->Stages from the Yard Box menu.
Try different types of staging behavior, and notice the
differences.< / p >
< p >
10. Test your creation with the UML box as explained in step 3.
You will want to add init=/bin/bash to the Options entry.< / p >
< p >
11. At this point you will probably want to play around a little
bit. Familiarize yourself with the Format Rules found
near the top of the template. You may want to save the template
with a different name and experiment with changes, or create a new template
using File->New (Shortcut: Alt-N).< / p >
< center > < u > Make your own mini distribution from an existing template.< / u > < / center >
< p >
12. Choose Example.yard from the Template menu in the ARS.
Save it with a new name.< / p >
< p >
13. There are two types of inittabs provided for each major
distribution type. The inittab with nodevfs appended doesn't use
the
device fs, i.e. the devfs=nomount kernel option. Uncomment the
inittab, getty, and gettydefs (if required) for
your distribution type. If you aren't using Debian and make sure to
comment (#) out the corresponding stuff for Debian.< / p >
< p >
14. The Example.yard template introduces you to Replacements like
the inittabs described above.
Replacements can be anywhere as long as they are either in an absolute path
or found in $PATH
(Edit->Settings->Path); the default location for users is
$HOME/.gbootroot/yard/Replacements. For more information see the
FAQ question
"What are all these CVS directories doing in my replacements?"
Also, this template introduces you to links, $VERSION,
how library dependencies are automatically figured for binaries
and the automated
approach for finding service modules and dependencies for PAM and NSS.
Once you learn the format rules and how they are interpreted
by the program you will find that making your own templates is
quite simple.< / p >
< p >
15 Click on the Continue button until you finish the Space Left
stage. Adjust the Filesystem Size in the ARS to a size larger than
the Total space shown in the verbosity box. Create your
root_fs,
and make sure there was enough room left. You may have to adjust the
size and run Create again.< / p >
< p >
16 Now that you have a root filesystem you may continue to
the Test stage and observe what is missing. Next run the root_fs
from the UML box.
If things don't work correctly you will have to hunt down the cause,
make the appropriate changes and proceed through the stages again. & nbsp
If you only make a change to a Replacement, you only have to run
the Create stage again. If you make a change to the template you
have to run at least the Check, Links & Deps, and Create stages again.< / p >
< center > < u > Make your own root filesystems from your own templates.< / u > < / center >
< p >
17. Now that you have done your homework, I set you free to create
your own root filesystems from your own templates with replacements
of your own choice. Create a root_fs which can fit on a block
device, and then create an emergency disk customized for your own system,
or create your own customized macro distribution and run it from the
UML box to try things you never would have dreamed of doing on your host
system. And that is just the beginning of the things you can do.
< P >
< b > What are all these CVS directories doing in my replacements?< / b > < / p >
< P >
< b > Can I use a program linked to uClibc in the template?< / b > < / p >
< p >
< b > What is make_debian, and how do I use it?< / b > < / p >
< p >
< b > How am I able to create root filesystems as a normal user?< / b > < / p >
< p >
< b > How can I create boot disks as a normal user?< / b > < / p >
< p >
< b > My root filesystem doesn't start in single mode when started like
this:  " bootdisk 1?" < / b > < / P >
< P >
When you start a kernel image with 1, you are telling it to start in runlevel
1, not in single mode. Use "single" instead.< / p >
< p >
While on the subject, it should be pointed at the setting up init and its
runlevels is one of the
most challenging areas of creating a bootable root_fs. Often
your creation will only work with "single" until all the conflicts
are resolved. Things are complicated even futher by the fact that
devices can now be set up in two majors ways: tty? or ttys/? (devfs).
Fortunately, user-mode-linux comes in very handy for hunting
down all the bugs.
< / P >
< p > < b > There isn't enough room left on my 1440 floppy to make a Boot or Root
disk. Is there any way to free up more space apart from reducing
the size of the kernel?< / b > < / p >
< p >
Move the device size to 1722. This is a trick that < a href = "http://www.toms.net/rb/" > tomsrtbt< / a > uses on his famous rescue disk.< / p >
< p >
(Update 10/06/2001) < br >
Up until mke2fs version 1.19 you were able to do
`mke2fs -F /dev/fd0 1722` on a 1440 device without any problem, but since
then mke2fs has become much more particular about enforcing actual device
size. . Mke2fs will complain:< / p >
< p >
"mke2fs: Attempt to write block from filesystem resulted in short write
zeroing block 1600 at end of filesystem."< / p >
< p >
I understand Theodore Ts'o reasoning for doing this, but I strongly believe
that the old behavior was very useful for people creating
mini-distributions so I have issued
< a href = "
http://sourceforge.net/tracker/index.php?func=detail& aid=468652& group_id=2406& atid=352406">Feature Request #468652< / a > at e2fsprogs site
at Sourceforge. It should
be noted that fdformat is an unacceptable solution because it tends
to be machine specific, and the original mke2fs behavior made floppies that
worked
everywhere. Feel free
to add your comments to the Feature Request. Thanks.< / p >
< p >
< b > gBootRoot doesn't start because it can't locate Gtk.pm?< / b > < / P >
< p > This program requires Gtk-Perl available from < a href = "http://www.perl.com/CPAN" > CPAN< / a > , < a href = "http://freshmeat.net/projects/gtk-perl" > Freshmeat< / a > or most GNU/Linux distributions.< / p >
< p > < b > If you roll the floppy density counter down to 0 and then try go back
up towards 1440 and 1722, you get very funny figures.< / b > < / p >
< p >
This is because of the way Gtk works. There are two adjustments,
step and page increments. When you press your first mouse button the step
has been set to 282 so that a person can easily switch between 1440 and 1722.
When you use your second mouse button the page is set at 360. You can go
down to zero by pressing your third mouse button on the
down arrow. Now
page up with the second button to 1440 and step with the first button to
1722. Pretty cool, eh?< / p >
< p > Why we are on this subject please check out these keyboard shortcuts for Gtk.< / p >
< P > Motion Shortcuts
< UL >
< LI > Ctrl-A Beginning of line < / LI >
< LI > Ctrl-E End of line < / LI >
< LI > Ctrl-N Next Line < / LI >
< LI > Ctrl-P Previous Line < / LI >
< LI > Ctrl-B Backward one character < / LI >
< LI > Ctrl-F Forward one character < / LI >
< LI > Alt-B Backward one word < / LI >
< LI > Alt-F Forward one word < / LI >
< / UL >
< P > Editing Shortcuts
< UL >
< LI > Ctrl-H Delete Backward Character (Backspace) < / LI >
< LI > Ctrl-D Delete Forward Character (Delete) < / LI >
< LI > Ctrl-W Delete Backward Word < / LI >
< LI > Alt-D Delete Forward Word < / LI >
< LI > Ctrl-K Delete to end of line < / LI >
< LI > Ctrl-U Delete line < / LI >
< / UL >
< P > Selection Shortcuts
< UL >
< LI > Ctrl-X Cut to clipboard < / LI >
< LI > Ctrl-C Copy to clipboard < / LI >
< LI > Ctrl-V Paste from clipboard < / LI >
< / UL >
< IMG ALT = "Larry Ewing's Penguin celebrates in gBootRoot." SRC = "images/peng-movie.4.gif" >
< br > < br > < br >
Contact me: Jonathan Rosenbaum < < a href = "freesource@users.sourceforge.net" > freesource@users.sourceforge.net< / a > >
< br >
Submit a Bug: < a href = "http://sourceforge.net/bugs/?group_id=9513" > gBootRoot Bug System< / a >
< br >
Join or browse the mailing lists: < a href = "http://sourceforge.net/mail/?group_id=9513" > gbootroot-{devel,user} mailing lists< / a >
< br >
Ask a question: < a href = "http://sourceforge.net/forum/forum.php?forum_id=29639" > Help Forum< / a >
< br >
Start a discussion: < a href = "http://sourceforge.net/forum/forum.php?forum_id=29638" > Open Discussion Forum< / a >
< p >
< / body > < / html >