<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 &quot;OK&quot; or stop &quot;Cancel&quot;.</P>

<p>
The <u>first row</u> presently has only one Boot Method choice:
"2 disk compression."&nbsp;&nbsp;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.&nbsp;&nbsp;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. &nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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:&nbsp;&nbsp;Turn off and on the 
stripping of symbols.&nbsp;&nbsp;The stripping 
behavior for libraries may be changed by clicking on the right mouse button 
to change --strip-debug to --strip-all.&nbsp;&nbsp;Binaries default to
--strip-all and Modules default to --strip-debug.</p>

<p>

"Devel Device"&nbsp;&nbsp;If the device used for development is different than the 
actual boot device, use this field to indicate that device.&nbsp;&nbsp;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"&nbsp;&nbsp;Add devices to the boot disk which are necessary for the
kernel to function properly.&nbsp;&nbsp;Put a space between each 
device.&nbsp;&nbsp;For instance, /dev/fb0 for frame buffer devices.</p>

<p>

"append ="&nbsp;&nbsp;Add append options to brlilo.conf.&nbsp;&nbsp;If you are using a frame
buffer device you could add something like video=matrox:vesa:402,depth:16.</p>

<p>

"Kernel Module"&nbsp;&nbsp;Add the modules found in 
/lib/modules/kernel-version which are necessary for the Boot Method to work
properly.&nbsp;&nbsp;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.&nbsp;&nbsp;In the 
case of 2 disk compression, floppy needs to be included in the 
kernel or included as a module. &nbsp;&nbsp;Kmod inserts the modules, and 
kmod needs to be built into the kernel along
with initrd and ramdisk."</p>

<p>

"Kernel Version"&nbsp;&nbsp;Override the kernel version number found in the
kernel header.&nbsp;&nbsp;This will change the /lib/modules/kernel-version
directory.</p>

<p>

System.map:&nbsp;&nbsp;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.&nbsp;&nbsp;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"&nbsp;&nbsp;This is the device used for the root filesystem when 
constructing the Boot/Root set.&nbsp;&nbsp;You may choose a device which is 
different 
than the Boot device, but presently only floppy devices are supported.</p>

<p>

"Root Device Size"&nbsp;&nbsp;The size of the actual media used for the Root Device.</p>

<p>

"Root Filename"&nbsp;&nbsp;The name give to the root filesystem when 
initially made in the temporary creation location.&nbsp;&nbsp;The save 
button allows the creation to
be saved in the permanent default location when the 
Accept button is pressed.</p>

<p>

"Filesystem Size"&nbsp;&nbsp; Root Methods make the filesystem the size 
which is specified here.</p>

<p>

"Compression"&nbsp;&nbsp;Off by default to allow user-mode-linux 
testing.&nbsp;&nbsp;Turn on 
compression when you are ready to use a Boot Method 
which requires compression.</p>

<p>

"Method"&nbsp;&nbsp;The root filesystem creation method.</p>

<p>

"Template"&nbsp;&nbsp;The template associated with a Root 
Method.&nbsp;&nbsp;Not all Root Methods
have templates.</p>

<p>

"Generate"&nbsp;&nbsp;This puts the chosen Root Method in action.</p>

<p>

"UML"&nbsp;&nbsp;Abbreviation for user-mode-linux.&nbsp;&nbsp;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"&nbsp;&nbsp;This accepts the created root filesystem if it is 
found in the 
temporary creation directory.&nbsp;&nbsp;The UML box and the main section 
will now 
reflect the path to this root filesystem.&nbsp;&nbsp;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"&nbsp;&nbsp;Choose an xterm with its executable options switch.</p>

<p>

"Options"&nbsp;&nbsp;Enter uml command-line options like: mem=64, 
devfs=nomount.</p>

<p>

"Root_Fs"&nbsp;&nbsp;Choose an uncompressed root 
filesystem.&nbsp;&nbsp;Append with ubd?=.</p>

<p>

"Abort"&nbsp;&nbsp;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.&nbsp;&nbsp;It has several 
interesting features.

<p>

The check boxes at the bottom represent the different stages involved in
creating a root filesystem.&nbsp;&nbsp;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.&nbsp;&nbsp;Edit->Stages->continuous proceeds non-stop
through all the 
stages.&nbsp;&nbsp;Edit->Stages->'user defined' allows the user to
choose any stages the user wants, and will then proceed through all the
chosen 
stages.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;bOOTrOOT will not allow read-only 
templates or template links to be saved
with their own name.&nbsp;&nbsp;A few of these example files are
included.&nbsp;&nbsp;You may make changes to them or 
clear their buffers.&nbsp;&nbsp;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.&nbsp;&nbsp;--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.&nbsp;&nbsp;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.&nbsp;&nbsp; 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.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;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>1.&nbsp;&nbsp;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.&nbsp;&nbsp;bzip2 -dc root_fs_tomrtbt_1.7.205.bz2 > root_fs_tomrtbt_1.7.205.
</p>

<p>
 
3.&nbsp;&nbsp;Run 
gbootroot.&nbsp;&nbsp;Click on the Advanced Root Section, click on
the UML button. &nbsp;&nbsp;Select root_fs_tomrtbt_1.7.205, add devfs=nomount
to the options, and click on the Submit
button.</p>

<p>

4.&nbsp;&nbsp;Click on the Advanced Boot 
Section.&nbsp;&nbsp;Root_fs_tomrtbt is about 16M, so add ramdisk_size=16384 to
the 'append=' entry.&nbsp;&nbsp;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.&nbsp;&nbsp;Click the Submit button on the main 
box.&nbsp;&nbsp;Have two floppy disks ready.

<p>

6.&nbsp;&nbsp;When you see Lilo you may access the menu using [Ctrl] and 
[Tab] to see the available images. 

<p>
 
7.&nbsp;&nbsp;Download 
<a href="http://sourceforge.net/project/showfiles.php?group_id=9513">
root_fs_debian_x11-(latest revision).bz2</a>.&nbsp;&nbsp;Then follow the 
instructions in the 
first three steps, but don't add devfs=nomount.&nbsp;&nbsp;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>

<b>My root filesystem doesn't start in single mode when started like
this:&nbsp;&nbsp&quot;bootdisk 1?&quot;</b></P>

<P>

When you start a kernel image with 1, you are telling it to start in runlevel 
1, not in single mode.&nbsp;&nbsp;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.&nbsp;&nbsp;Often 
your creation will only work with "single" until all the conflicts
are resolved.&nbsp;&nbsp;Things are complicated even futher by the fact that
devices can now be set up in two majors ways: tty? or ttys/? (devfs).
&nbsp;&nbsp;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.&nbsp;&nbsp;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. .&nbsp;&nbsp;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.&nbsp;&nbsp;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.&nbsp;&nbsp;Feel free 
to add your comments to the Feature Request.&nbsp;&nbsp;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.&nbsp;&nbsp;There are two adjustments, 
step and page increments.&nbsp;&nbsp;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.  
&nbsp;&nbsp;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.&nbsp;&nbsp;Now 
page up with the second button to 1440 and step with the first button to 
1722.&nbsp;&nbsp;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:&nbsp;&nbsp;Jonathan Rosenbaum&nbsp;&nbsp;<<a href="freesource@users.sourceforge.net">freesource@users.sourceforge.net</a>>
<br>
Submit a Bug:&nbsp;&nbsp;<a href="http://sourceforge.net/bugs/?group_id=9513">gBootRoot Bug System</a>
<br>
Join or browse the mailing lists:&nbsp;&nbsp;<a href="http://sourceforge.net/mail/?group_id=9513">gbootroot-{devel,user} mailing lists</a>
<br>
Ask a question:&nbsp;&nbsp;<a href="http://sourceforge.net/forum/forum.php?forum_id=29639">Help Forum</a>
<br>
Start a discussion:&nbsp;&nbsp;<a href="http://sourceforge.net/forum/forum.php?forum_id=29638">Open Discussion Forum</a>

<p>

</body></html>