------------
Introduction
------------

This script can be used to create a maintenance partition or bootable
CD with enough facilities to fully manage and recover your system.

It contains support for LVM, HPFS, JFS, FAT32, UDF (turned-off by
default), and the CD file system.  The total space occupied is less
than five MB for a command-line version!

Personally I use it on the CD-RWs I burn my system backups to.
Recovering/reinstalling the system just takes booting-off this CD,
optionally managing (lvm) and formatting volumes, and unzipping the
backup-zip files that are also on the CD!

Present settings assume an IDE only setup, instuctions for adding SCSI
support are included in the configuration file.  If you need extra
space on the boot image (for instance if you added SCSI support),
instructions for moving some files to the CD are included as well.
Full USB support is also enabled by and defaults to one UHCI adapter.
Of course this can be fully configured as well.

When creating a bootable CD, the script assumes you use RSJ for
burning CDs and that you have already attached the CD-R(W).  A virtual
2.88MB floppy should also be available.  Instructions for using this
script with cdrecord and mkisosofs are included.

The script furthermore assumes you use the DANI drivers for accessing
IDE and ATAPI devices as these are the most stable. Again, this can be
configured.


------------
Installation 
------------
Installation is simple, just copy the files to the correct locations:
  move bootIT.cmd   to a directory on the PATH
  move all other bootIT files to a directory on the DPATH 

Other required files:
  move daniboot.flt to a directory on the DPATH
  move ramdisk.ifs  to a directory on the DPATH (required for WPS boot)
  move ramdisk.exe  to a directory on the DPATH (required for WPS boot)

Optional files:
  The DANI IDE, DANI ATAPI and JJSCDROM drivers should be properly
  installed if one wants to use these with this script
   
Instead of copying the files to locations on the PATH/DPATH, a
specific directory where all files reside will of course also work
(just make sure the command is invoked from that directory...)

See below for instructions on where to get the other required files.


------
Syntax
------
bootIT [<configuration files>]

The optional <configuration files> argument is a list of one or more
configuration files to use.  If no path for these files is specified,
the DPATH is searched.

Use these configuration files to override the defaults as specified in
the file bootIT.cfg (which is to be found on the DPATH).


------------------------
Creating a bootable disk
------------------------
Here's a few easy steps for creating your first bootable disk.

1) Download and install all required files.

2) Read through the configuration file bootIT.cfg.  Default settings
   for the script are done via this.  The options are all commented.
   Work through them top to bottom, most likely you will only
   need/want to change a few of the 'basic' ones.  You'll probably not
   going to neet to bother with the 'advanced' ones (unless you don't
   use the DANI drivers AND you know what you are doing...)

   Here are some hints for the first try:

   Create a bootIT.myCfg where you change the default options to
   match your needs (an example myCfg as well as other example
   configuration files are included):
   a) You probably need to change the directories/drives to match
      your setup.
   b) You probably want to specify BOOTMESSAGES="YES", VERBOSE=3,
        PAUSEBEFOREBOOTIMAGE="YES".
   c) Check the USB adapter type.
   d) If you have SCSI, set the SCSI option and specify the device
      driver for your card(s).  (You may need to set the TWODISKBOOT
      option or turn some other options off is this is a realy big
      file)
   e) To prevent losing the boot messages, specify the ADDITIONALCFG
      option containing nothing.

   This should cover most cases, time to create the first boot image!

3) Insert an empty CD-R(W) in your burner.  I would realy suggest to
   use CD-RW media; you are probably going to run this script a lot of
   times to get things the way you want...  I know CD-Rs are dirt
   cheap, but please give the environment a break and what would you
   do with tons of coasters?  (Yeah, you can microwave them for great
   effects but that becomes boring after a while as well :-)

4) Attach the CD-R(W) (cdattach w:).  If it's a CD-RW you can erase it
   as well (cdwfmt w: /erase).

5) Run the script with your configuration file (bootIT bootIT.myCfg)

6) Put additional files on the CD if you like.

7) Burn the CD (cdattach w: -s).

8) Test it.

That's all!  Now you probably want to play a bit with the numerous
other options :-)


-----------------------------
Using cdrecord instead of RSJ
-----------------------------
When using cdrecord and mkisofs, change the configuration variable
CDWRITER to the path you are going to build the CD in and set the
option CDRECORD to "YES".

The script is now ready to be used for cdrecord/mkisofs.  Just one
more thing needs to be done after running the script; instead of
creating a normal ISO image for burning by cdrecrord, you need to
specify CDBOOT_1.IMG as the boot image on the mkisofs command-line (-b
option to mkisofs).


------------------------
Obtaining required files
------------------------
All required and optional files can be obtained from Hobbes:

    savedskf.exe: search for loaddf.zip (required)
    daniboot.flt: search for daniboot   (required)
    virtual disk: search for vfdisk     (required for bootable CD)
    ram disk:     search for ramfs      (required for WPS)
    DANI IDE:     search for danis506   (optional but default)
    DANI ATAPI:   search for daniatapi  (optional but default)
    JJSCDROM:     search for jjscdrom   (optional)
    fat32:        search for os2fat32   (optional)

Another option for a virtual disk is Super Virtual Disk.
This is shareware and can be obtained from bmtmicro

For info about RSJ, look at their website


------
Thanks
------
Thanks go to Allan Dermody for providing CD_BOOT.FLT and the
first insight into creating bootable CD's.

Thanks also go to Alfrede Fernandez Diaz for writing an excelent
article on how to create a bootable CD in OS2Voice, July 2000
http://www.os2voice.org/VNL/past_issues/VNL0700H/vnewsf2.htm.

More thanks go to Daniela Engert for writing the DANI suite of
device drivers and filters.

Enjoy!


-------------------
Contact information
-------------------
Author:
    Name:    Hayo Baan
    e-mail:  hrbaan@xs4all.nl
    updates: http://www.xs4all.nl/~hrbaan

RSJ:
    Website: http://www.rsj.de
    
BMT-Micro:
    Website: http://www.bmtmicro.com

Hobbes:
    Website: http://hobbes.nmsu.edu


---------------
Version History
--------------- 

v2.3 02/09/2002: Corrected  a very annoying bug  where the script would
                   fail under the standard OS/2 command processor
                   cmd.exe (it worked under 4OS/2)
                 Added verbosity level 3 where also errors from
                   external commands are shown (9 shows all output)

v2.2 01/09/2002: Corrected additional bug regarding cleanup when
                   creating a directory failed
                 The bootdrive is now determined by sysBootDrive by
                   default (somehow this function is missing from the
                   rexx documentation...)
                 Renamed options for the FAT32 file system from FAT to
                   FAT32

v2.1 01/09/2002: Corrected a bug where output would always be verbose
                   and no cleanup was performed

v2.0 01/09/2002: Renamed script to bootIT as it is now able to create
                   a maintenance partition as well
                 Added WPS support (VGA and GENGRADD)
                 Added APM support
                 Added UDF support
                 The command-line option can now specify multiple
                   configuration files and these are now used to
                   override the defaults in bootIT.cfg
                 Added ability to enable SCSI support before IDE
                 Added ability to specify any number of SCSI cards
                   NOTE: The SCSI option has changed into a number to
                   support this!
                 Added option to use DANI drivers instead of the
                   default drivers (the default is to use the DANI
                   drivers)
                 Adapted the script to handle both daniatapi.flt and
                   daniatap.flt versions of the DANI ATAPI driver.
                 Added option to use JJSCDROM instead of default cdrom
                   driver (the default is not to use JJSCDROM)
                 Added the ability to add extra basedevs
                 Made sure that files copied to a FAT drive/partition
                   follow the 8.3 file naming limit.

v1.4 23/08/2002: Files are copied without extended attributes
                 Added comman-line option for the specification
                   of the configuration file
                 Corrected error in option name in config.sys for
                   fallback driver (wasn't renamed)
                 USB printer device now defaults to LPTn instead of $USBPRT
                 Added parallel port (printer) support
                 Added serial port support
                 Added mouse support
                 Improved the way of to specificy which shell to use, now
                   it is possible to specify PROTSHELL and OS2_SHELL
                   independantly (advanced options)
                 Improved VERBOSE, you can now specify the message level
                 Added genral instructions for using this script
                 Added instructions for using this script with
                   cdrecord/mkisofs
                 Added ability to split boot image over two disks
                   providing even more room for device drivers and
                   other things
                 Other general improvements

v1.3 22/08/2002: Added USB support
                 Fixed bug with SHELLFILE variable not respected
                 Renamed option IDECD to ATAPI (more correct)
                 Renamed option HDDFALLBACK to DASDFALLBACK (more
                   correct)
                 Now possible to specify options for IFS and BASEDEV
                   lines
                 Added comment why there is no autocheck for IFSs
                 Better option handling, not case sensitive anymore,
                   specifying 'Y' is enough
                 Cache sizes for HPFS and JFS now 1024KB by default
                 Added VERBOSE option with this to "YES" all command output
                   is shown.
                 Added option to pause the script right before writing the
                   image to CD.  You can use this to check and or correct
                   the content of the boot image.
                 
v1.2 20/08/2002: Now a REXX script
                 Added configuration options
                 CONFIG.SYS is now created automatically by the script
                   and respects set options.
                 Added notes concerning virtual disk software
                 Added contact information

v1.1 21/02/2002: Now using daniboot.flt instead of cdboot.flt

v1.0 16/02/2002: Original version

