Boot Able
Contents
1. Introduction
2. Highlights
3. Installation
3.1 BootAble files
3.2 Other files and applications
4. Syntax
5. Creating a bootable CD
5.1 Using
cdrecord+mkisofs instead of RSJ
6. Creating a maintenance
partition
7. Contact information
8. Thanks
Version History
1. 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!
2. 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, HPFS386, NTFS, JFS, CDFS, UDF, and
LVM;
- Support for IDE, SCSI, USB, Mouse, Serial port, and Parallel port;
- Support for Unicode;
- Support for REXX;
- Support for basic TCP/IP networking, including DHCP;
- Support for NETBIOS and NETBIOS over TCP/IP protocols;
- Support for Roman Stangl's CD Boot Menu;
- Use of DANI or default drivers;
- Use of JJSCDROM or default drivers;
- Support for RSJ or cdrecord/mkisofs;
- Small disk footprint; less than 5MB for the command-line version;
- Can make use of LXLITE to make disk footprint even less;
- And much, much more...
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 making more room 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.
3. Installation
Installation is simple, just copy the files to the correct locations:
3.1. BootAble files
File |
Description |
Location* |
bootAble.cmd |
The script to create a bootAble CD or
maintenance partition |
PATH |
bootAble.cfg |
Defaults for configuration options/variables |
SEARCHPATH |
bootAble.Urc |
User ini template (WPS) |
SEARCHPATH |
bootAble.Src |
System ini template (WPS) |
SEARCHPATH |
bootAble.html |
These instructions |
- |
bootAble.myCfg |
Sample configuration file can be used as
starting point for creating your own specific settings |
SEARCHPATH |
bootAble.testCD |
Sample configuration file for testing the
burning of a CD |
SEARCHPATH
|
bootAble.maintenance |
Sample configuration file for creating a
maintenance partition |
SEARCHPATH |
bootAble.wps |
Sample configuration file for creating a WPS
bootAble CD/maintenance partition |
SEARCHPATH |
bootAble.extra |
Sample configuration file for adding some extra
utilities |
SEARCHPATH |
bootAble.acrobat |
Sample configuration file for adding Acrobat
Reader |
SEARCHPATH |
bootAble.emxrt |
Sample configuration file for adding the EMX
runtime (contributed by Christoph Brendes) |
SEARCHPATH |
bootAble.norman |
Sample configuration file for
adding Norman Anti Virus support (contributed by Doug Bissett)
|
SEARCHPATH
|
bootAble.4os2
|
Sample configuration file for
adding the 4OS/2 command shell environment
|
SEARCHPATH
|
* Instead of copying the bootAble files to locations on the PATH/SEARHPATH,
a specific directory where all files reside will of course also work
(just make sure the command is invoked from that directory).
Note: As the SEARCHPATH is specified in a
configuration
file, the DPATH is used until after a configuration file
setting the SEARCHPATH variable has been processed.
3.2. Other files and applications
File/Application/Option
|
Description
|
Req'd?
|
Location
|
Download
|
OS/2 Warp or eCS
|
The base OS and files.
|
YES
|
Installed* |
IBM/eComStation |
CD Recorder Software |
Either cdrecord+mkisofs or RSJ can be used. |
1
|
Installed |
Hobbes/RSJ |
Virtual floppy |
Either vfdisk or super virtual disk can be
used.
A virtual floppy disk of 2.88MB should be inserted. |
1 |
Installed |
Hobbes/BMT-Micro |
daniboot.flt |
Required file for enabling CD-Boot. |
1
|
SEARCHPATH |
Hobbes |
savedskf.exe |
Command to create a floppy-disk image file. |
1 |
PATH |
Hobbes |
FAT32
|
Fat32 files system driver developed by Henk
Kelder. |
2a
|
Installed*
|
Hobbes |
danis506.add
|
Enhanced IDE driver developed by Daniela Engert. |
2a
|
Installed*
|
Hobbes |
daniatap.flt or daniatapi.flt
|
Enhanced ATAPI driver developed by Daniela
Engert. |
2a
|
Installed*
|
Hobbes |
HPFS386
|
HPFS386 file system driver (Warp server). |
2b
|
Installed*
|
IBM |
jjscdrom.dmd
|
Enhanced CDROM driver developed by Takayuki
'January June' Suwa. |
2b
|
Installed*
|
Hobbes |
danin512.flt or n512dasd.flt
|
Non-512 bytes/sector removable media support
driver. Either Daniela Engert's or Alexander Terekhov's driver can be
used. When both drivers are present, Daniela's is used. |
2b
|
Installed*
|
Hobbes |
NTFS |
NTFS file system driver (eCS 1.1)
|
2b
|
Installed*
|
eComStation |
ibmrscsi.flt
|
Removable SCSI devices geometry filter driver. |
2b
|
Installed*
|
eComStation |
LXLITE |
Compresses files (.exe, .dll,
.fon,
etc.) before writing, thus saving extra space. |
2b |
Installed** |
Hobbes |
Roman Stangl's CDBoot menu |
Adds a boot menu to a bootable CD.
Note: When using RSJ, make sure not to add the
installation
directory to the PATH! |
2b |
Installed** |
Hobbes |
ramdisk.exe and ramdisk.ifs |
Ramdisk support (Required for a WPS enabled CD). |
2b |
SEARCHPATH |
Hobbes |
bos2rexx.exe |
Required file when adding REXX support to a
command-line boot. This file can be found in the bootOS2 package. |
2b |
SEARCHPATH |
Hobbes |
keyboard.dcp |
A smaller keyboard.dcp file to save
extra space on the boot image, can be found on disk 2 of the
WARP 4 installation disks. |
2b |
SEARCHPATH |
IBM |
* In addition to the standard location, necessary files are also
searched for on the SEARCHPATH.
** The exact location is specified with a configuration variable.
1 Required when creating a bootable CD
2a Required when related option is enabled (default)
2b Required when related option is enabled (disabled by default)
4. 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).Note:You
only need to specify configuration options/variables which override the
defaults!
5. 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...);
Please note: When configuring bootAble you can/should leave
the generic defaults file bootAble.cfg alone and create your
own configuration file(s). A configuration file only needs to contain
lines for configuration options/variables overriding the defaults! See
for example the supplied configurations files bootAble.wps, bootAble.maintenance,
etc.
- 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 TWODISKBOOT
option 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 :-)
5.1 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).
6. 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.myCfg bootAble.maintenance).
Please note that the partition will be formatted by default (this
can be prevented by specifying FORMATMAINTENANCE='NO')!
7. Contact information
Hayo Baan: mailto:hrbaan@xs4all.nl,http://www.xs4all.nl/~hrbaan
IBM: http://www.ibm.com
eComStation: http://www.ecomstation.com
RSJ: http://www.rsj.de
Hobbes: http://hobbes.nmsu.edu
BMT-Micro: http://www.bmtmicro.com
8. Thanks
Thanks go to Allan Dermody for providing CD_BOOT.FLT and
the first insight into creating bootable CDs;
Thanks also go to Alfredo 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;
Many thanks go to Simon Wright who helped me get my DHCP and DDNS
server up and running.
Finaly big thanks also go to all you people testing and commenting
the script; because of you I kept working on it ;-)
Version History
v2.16 (09/07/2003)
- Added SIO and SIO2K serial port driver support (SIOSERIALPORT, SIO2KSERIALPORT, disabled by
default);
- Added ability to specify content of files to be placed on the CD (EXTRACREATEFILES,
EXTRACREATEFILEDIRECTORY.n, EXTRACREATEFILENAME.n,
EXTRACREATEFILECONTENT.n), see bootAble.4os2 for an example;
- Added NTFS support (NTFS,
disabled by default);
- Added sample configuration file for adding the 4OS/2 command
shell environment (bootAble.4os2);
- The PPZIP device is not enabled by default anymore;
- Minor eCS 1.1 adjustments (file locations have changed).
v2.15 (16/03/2003)
- Corrected fdisk.exe
into fdisk.com when
creating a non LVM system;
- The parallel port driver (print01.sys)
and aspi driver (os2aspi.dmd)
are basedevs, not devices;
- The EPM-file actions.lst
is no longer a required file when adding WPS applications;
- Corrected bug where the BOOTFLTFILE
was included even when creating a maintenance partition.
v2.14 (12/01/2003)
- Added ability to create startup.cmd
file (STARTUPCMD);
- Added sample configuration file for adding Norman Anti Virus
support (bootAble.norman, contributed by Doug Bissett);
- Changed the all-files selector '*.*' into '*' (which is more
correct);
- Corrected comments for the EXTRADEVICE
settings (were incorrectly referring to basedevs).
v2.13 (15/11/2002)
- Added ability to recurse directories when specifying extra
directories (EXTRADIRECTORYRECURSE.n), see bootAble.acrobat
for an example;
- Corrected path handling when HPFS386 support was enabled.
v2.12 (20/10/2002)
- Added NETBIOS and NETBIOS over TCP/IP protocol support (NETBIOS
and NETBIOSTCPIP, disabled by default);
Note: Only the protocols themselves are supported, PEER
functionality, for instance, is not provided.
- Added option to clean-out cdrecord image directory (pointed to by
WRITERDRIVE)
prior to adding bootable files and directories (CDRECORDCLEANDIR,
disabled by default);
- Added option to support latest IBM Atapi driver which doesn't
need IBMIDECD.FLT anymore (LATESTATAPI, disabled by
default);
- Made many changes to TCP/IP support:
- Added ARP.EXE by default,
- Added INETWAIT.EXE to the TCP/IP initialisation,
- Corrected TCP/IP initialisation when using DHCP,
- Now using AFLEAN.SYS and SOCKETS.SYS
instead
of AFINETK.SYS and SOCKETSK.SYS,
- AFOS2.SYS has been removed (was not required for basic
TCP/IP),
- Improved DHCP support; nameserver can now also be specified by
the server dynamically (requires RAMDISK support on a
bootAble
CD),
- DHCP Client Monitor gets added when DHCP is enabled (WPS),
- Improved TCP/IP version 4.31 support; the 4.31 DHCP client
required some additional DLLs, these will now be added when TCP/IP 4.31
is specified (TCPIP431, default).
- Additional DEVICE drivers can now be specified similar to how
extra BASEDEV drivers were specified (EXTRADEVICE, EXTRADEVICEFILE.n,EXTRADEVICEOPTIONS.n).
- You can now specify multi-level directory structures without
having to create the higher level directories first (EXTRADIRECTORY.n),
you can now also specify the BOOKSHELF as path (EXTRADIRECTORYADDTOPATH.n);
- You can now comment-out lines in the configuration files and
ini-file template with ';' as well;
- Corrected bug with ASPI support;
- Options of CDROM and ASPI support are now respected;
- Added sample configuration file for adding EMX runtime (bootAble.emxrt,
contributed by Christoph Brendes)
- Improved parsing of ini-file templates: using '$$' as
variable and '%%' as option delimeters, furthermore all
configuration variables and options can now be used;
- Removed second setting of displaytype and help-path when WPS
support was enabled;
- Rewrote installation instructions and merged with obtaining
required files section.
v2.11 (30/09/2002)
- Added DHCP support (TCPIPDHCP);
- Fixed bug in bootAble.extra (missing quotes);
- Fixed bug in handling of extra directories, sometimes ',1' was
added to the directory name.
v2.10 (29/09/2002)
- You can now specify a search path (SEARCHPATH) where
files will be searched for in addition to the location specified (by
default this is set to the DPATH). This allows for adding
components to a bootable CD/maintenance partition which have not (yet)
been installed on your system (or reside in a completely different
location from the deafult); just add the files to a directory on the
specified path!;
- Added support for HPFS386 file system (HPFS386);
- Added support for parallel port ZIP drive (PPZIP);
- Added support for using lxlite when copying files,
freeing extra space! (LXLITE);
- Added option for using the small keyboard.dcp file from
the Warp 4 boot disks, saving yet again quite some space! (SMALLKEYBOARDDCP);
Note: This keyboard.dcp most likely only supports
a
very limited set of keyboard layouts...
- You can now specify additional ini file lines using the format of
the makeini command (EXTRAUSERINI, EXTRASYSINI);
- Added configuration variable for specifying the command shell
prompt (SHELLPROMPT);
- Added configuration variables for specifying the names of the
boot images (BOOTIMAGENAME.1 and BOOTIMAGENAME.2);
Note: When using AudioCDCreator, the name of the first image
should be OSBOOT.IMG (now default).
- Added advanced configuration variables for specifying the number
of threads (advanced, THREADS, now 1024 by default), FAT
cache
options (advanced, FATCACHEOPTIONS, now 1MB by default),
swapping parameters (advanced, MEMMAN and SWAPPATH);
- Renamed all *DLLS option variables to *DLLFILES
for consistency;
Note: If you have created your own configuration files, make
sure to reflect this change!
- Added ability to specify additional directory structure and the
extra files to go into these directories, including the ability to add
these directories to a path (EXTRADIRECTORY.n, EXTRADIRECTORYFILES.n,
EXTRADIRECTORYADDTOPATHS.n);
- Files can now contain spaces (just make sure they are within
double-quotes!);
- Fixed bug where extra basedev files where not copied at all;
- Added main option name of new options in the version history
(starting from version 2.0), to ease finding them;
- Corrected typo in Alfredo Fernandez Diaz's name in the
documentation (Thanks section in this file);
- rxqueue.exe is now added by default when REXX support is
enabled;
- wpstkmri.dll is now an optional file as well (only for
scroll mouse?);
- When TCP/IP and REXX support are both enabled with WPS, either
the file rxsock.infor the file rxsocket.inf is
added
(seems the file got renamed with later Warp installations);
- The maxtransmits directive has been removed from the protocol.ini
file (network support), it is not supported on all network cards (and
not required either);
- Added sample configuration file bootAble.testCD for
testing the creation of a bootAble CD. Instead of writing the results
to
a CD-R(W), the results are written to a temp directory;
- Added sample configuration file bootAble.acrobat for
adding acrobat reader to your system, also shows the use of the new EXTRADIRECTORY
and EXTRA*INI configuration variables.
v2.9 (24/09/2002)
- Added support for Roman Stangl's CD Boot Menu (CDBOOTMENU);
Note: When using RSJ, make sure that Roman Stangl's cdboot
command is not located on the PATH!
- Added comments to clarify the use of configuration files (you
only need to specify the configuration options/variables which override
the defaults in bootAble.cfg!);
- Added comments for when files are required (Obtaining required
and optional files section in this file);
- Added reference to help for the country and keyboard definition
configuration variables;
- UNICODELANGDIR not required anymore (some installations
did not even have one!);
- Added icon (based on default CD icon), anyone a better idea?;
- Improved error checking for required files; created new function searchPath
to be used in configuration files instead of the standard sysSearchPath.
v2.8 (23/09/2002)
- Corrected typos in required files for REXX TCP/IP support.
v2.7 (22/09/2002)
- Added basic TCP/IP networking support (TCPIP).
Note: For most TCP/IP commands to work, WPS support is
required.
v2.6 (17/09/2002)
- Added REXX support (REXX);
Note: In order for REXX to work when booting to a
command-line (even when WPS support is enabled), you will need to have bos2rexx.exe
(from the BootOS2 package) located somewhere on your DPATH.
- Added support for non 512 bytes/sector removable media (NON512DASD);
- Added support for removable SCSI media geometry filter (REMOVABLESCSI);
- Added "Refresh removable media" object when LVM support is
enabled (WPS);
- Help support is now installed as part of the command-line apps,
not only when WPS support is installed;
- Corrected a bug introduced in version 2.5 where setting
configuration variables to an empty string did not override the default
(which could be non-empty);
- Corrected a bug with autochecking HPFS partitions (now it works
:-).
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
is 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, EXTRAHELPFILES);
- 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 (HPFSAUTOCHECK, JFSAUTOCHECK);
- 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, WPS);
- Added APM support (APM);
- Added UDF support (UDF);
- 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 (SCSIBEFOREIDE);
- 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, DANIIDE, DANIATAPI);
- 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, JJSCDROM)
- Added the ability to add extra basedevs (EXTRABASEDEV);
- Made sure that files copied to the FAT boot image follow the 8.3
file naming restrictions.
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.