Boot Able

Hayo Baan
version 2.12 20/10/2002

Contents

1. Introduction
2. Highlights
3. Installation
3.1 BootAble file
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:

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 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
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:

  1. Download and install all required files;
  2. 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.
  3. 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):
    1. You probably need to change directories/drives to match your setup;
    2. You probably want to specify BOOTMESSAGES='YES', VERBOSE=3, and PAUSEBEFOREBOOTIMAGE='YES' (already done in the sampe bootAble.myCfg);
    3. 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)
    4. Check and or change the USB adapter type;
    5. 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;
  4. 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):
    1. 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...);
    2. Attach the CD-R(W) (cdattach w:). If it's a CD-RW you can erase it as well (cdwfmt w: /erase);
    3. Run the script with your configuration file (bootAble bootAble.myCfg);
    4. Put additional files on the CD if you like;
    5. Burn the CD (cdattach w: -s);
  5. 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.12 (20/10/2002)

v2.11 (30/09/2002)

v2.10 (29/09/2002)

v2.9 (24/09/2002)

v2.8 (23/09/2002)

v2.7 (22/09/2002)

v2.6 (17/09/2002)

v2.5 (13/09/2002)

v2.4 (04/09/2002)

v2.3 (02/09/2002)

v2.2 (01/09/2002)

v2.1 (01/09/2002)

v2.0 (01/09/2002)

v1.4 (23/08/2002)

v1.3 (22/08/2002)

v1.2 (20/08/2002)

v1.1 (21/02/2002)

v1.0 (16/02/2002)