Boot Able
Contents
Introduction
Highlights
Installation
Syntax
Creating a bootable CD
Creating a maintenance partition
Obtaining required files
Thanks
Version History
Introduction
Boot Able is a script to create a maintenance partition or a bootable CD.
This partition/CD supports enough facilities to fully manage and recover your
system.
Personally I use it for the CD-RWs I burn my system backups to. Recovering/reinstalling
my system just takes booting-off this CD, optionally managing and formatting
volumes and unzipping the backup-zip files that are also on the CD!
Highlights
A few highlights of the script:
- Can be used to create bootable CD's and maintenance partitions (and
thus can be seen as a replacement of bootOS2);
- Easy configuration via configuration files (almost everything is configurable);
- WPS (VGA and gengradd) or command-line boot;
- Support for FAT, FAT32, HPFS, JFS, CDFS, UDF, and LVM;
- Support for IDE, SCSI, USB, Mouse, Serial port, and Parralel port;
- Support for Unicode;
- Use of DANI (default) or default drivers;
- Use of JJSCDROM or default drivers (default);
- Support for RSJ (default) or cdrecord/mkisofs;
- Small disk footprint; less than 5MB for the command-line version.
The default settings assume an IDE only setup, instuctions for adding SCSI
support are included in the defaults 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 default and defaults to one UHCI adapter. Of course this can
be fully configured. By default the script uses the DANI drivers for accessing
IDE and ATAPI devices as these are the most stable. Again this can be configured.
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.
Installation
Installation is simple, just copy the files to the correct locations:
BootAble files
Move bootAble.cmd to a directory on the PATH.
Move all other bootAble.* files to a directory on the DPATH.
Other files/applications
RSJ/cdrecord+mkisofs: Should be properly installed (only required
when creating a bootable CD);
DaniBoot: Move daniboot.flt to a directory on the DPATH(only
required when creating a bootable CD);
Savedskf: The savedskf command should be available, i.e., savedskf.exe
installed somewhere on the PATH (only required when creating a
bootable CD);
Virtual floppy: Your virtual floppy disk should be installed and
a virtual floppy of 2.88MB should be inserted (only required when creating
a bootable CD);
Ramdisk: Move ramdisk.ifs and ramdisk.exe to
a directory on the DPATH (required when creating a WPS bootable
CD);
DANI and JJSCDROM: When used, the drivers should be properly installed
(i.e., files should reside in the os2\boot directory of the boot
drive).
Notes
Instead of copying the bootAble 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).
Syntax
The command syntax is as follows:
bootAble [<configuration file>...]
The optional arguments are 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 filebootAble.cfg
(which is to be found on the DPATH).
Creating a bootable CD
Here are a few easy steps for creating a bootable CD:
- Download and install all required files;
- Read through the configuration file bootAble.cfg. All default
settings for the script are done via this file. 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 know what you are doing...);
- Create a bootAble.myCfg where you change the default options
to match your needs (an example .myCfg as well as other example
configuration files are included):
- You probably need to change directories/drives to match your setup;
- You probably want to specify BOOTMESSAGES="YES", VERBOSE=3,
and PAUSEBEFOREBOOTIMAGE="YES" (already done in the sampe bootAble.myCfg);
- You probably also want to specify ADDITIONALCFG="" as the
default will cause the screen to go to 80x50 mode, causing you to loose all
boot progress messages (already done in the sample bootAble.myCfg)
- Check and or change the USB adapter type;
- If you have SCSI, set the SCSI option and specify the device driver
for your card(s). (You may need to set the MAKEROOM and or TWODISKBOOT
options or turn-off some other options if the driver(s) is/are a
realy big);
- This should cover most cases, time to create the first boot image
(instructions are for using RSJ, see below for necessary adoptations for
using cdrecord/mkisofs):
- 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...);
- Attach the CD-R(W) (cdattach w:). If it's a CD-RW you can
erase it as well (cdwfmt w: /erase);
- Run the script with your configuration file (bootAble bootAble.myCfg);
- Put additional files on the CD if you like;
- Burn the CD (cdattach w: -s);
- Test it.
That's all! Now you probably want to play a bit with the numerous other
options :-)
Using cdrecord/mkisofs
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 cdrecord, you need to specify
CDBOOT_1.IMG as the boot image on the mkisofs command-line (-b
option to mkisofs).
Creating a maintenance
partition
When creating a maintenance partition, follow the instructions found in
the section describing the creation of a bootable CD (skip the specific
steps involving CD creation; 4a, 4b, and 4c). When adapting the configuration
file, additionally specify CREATEBOOTCD="NO" and point WRITERDRIVE
to the maintenance partition (see bootAble.maintenance for an example);
and run the script with these additional settings (e.g., bootAble bootAble.cfg
bootAble.maintenance).
Please note that the partition will be formatted by default (this can
be prevented by specifying FORMATMAINTENANCE="NO")!
Obtaining required files
All required and optional files can be obtained via the internet:
- Savedskf: search hobbes for loaddf.zip;
- DaniBoot: search hobbes for daniboot;
- Virtual disk: search hobbes for vfdisk, or search bmtmicro
for super virtual disk;
- Ram disk: search hobbes for ramfs;
- DANI IDE driver: search hobbes for danis506;
- DANI ATAPI driver: search hobbes for daniatapi;
- JJSCDROM driver: search hobbes for jjscdrom (optional);
- Fat32 driver: search hobbes for os2fat32
- cdrecord: search hobbes for cdrecord
- mkisofs: search hobbes for mkisofs
- RSJ: contact RSJ
Contact information
Hayo Baan: mailto:hrbaan@xs4all.nl,
http://www.xs4all.nl/~hrbaan
RSJ: http://www.rsj.de
BMT-Micro: http://www.bmtmicro.com
Hobbes: http://hobbes.nmsu.edu
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;
More thanks go to Daniela Engert for writing the DANI suite of device drivers
and filters.
Big thanks also go to all you people testing and commenting the script;
because of you I kept working on it ;-)
Version History
v2.5 (13/09/2002)
- Added html documentation;
- fdisk.exe is now included if LVM support is disabled;
- Added harderr.exe to support error handling, autofail=yes
now specified as well;
- Added bootAble.extra sample configuration file for adding
some extra applications;
- Added label.com and tedit.hlp by default;
- Language dll files only added when WPS support is enabled;
- chkdsk.sys is now included;
- Added configuration option for adding help files (WPS only);
- Improved handling of ide cd when not using the DANI drivers (ibmidecd.flt
is now added as well);
- Added cachef32.exe and f32stat.exe when FAT32 support
is enabled;
- Added configuration options for autochecking HPFS and JFS file systems;
- pstat.exe is now only added with WPS support (doesn't work
when not running WPS).
v2.4 (04/09/2002)
- Renamed script to bootAble (pronounce boot able) as bootIT
happened to be a trademark of TeraByte Unlimited;
- Removed unnecessary files and adopted for non eCS Warp systems.
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 been changed into a number to support this!;
- Added option to use DANI drivers instead of the default drivers (the
default is still 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 the FAT boot image follow the 8.3 file
naming limit.
v1.4 (23/08/2002)
- Files now are copied without extended attributes to the boot image;
- Added command-line option for the specification of the configuration
file;
- Corrected error in option name in bootCD.cfg 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 being 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 (advanced options);
- Added comment why there is no autocheck for file systems;
- Better option handling, not case sensitive anymore and only first
letter is required (e.g., specifying "Y" or "yes" works
now);
- Cache sizes for HPFS and JFS file systems now 1024KB by default;
- Added VERBOSE option, with this set to "YES" all
command output is shown;
- Added option to pause the script right before writing the boot image
to CD. You can use this to check and or correct the content of the boot image
on the virtual drive before it is actually written.
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 choices of virtual floppy software;
- Added contact information.
v1.1 (21/02/2002)
- Now using daniboot.flt instead of cdboot.flt.
v1.0 (16/02/2002)
- Original version for creating a bootable CD with support for most
file systems and LVM.