
Optional package bootCD v.0.3 for fli4l 2.0.4

Introduction

This optional package for the [1]fli4l project provides some scripts
and modified files to create a bootable CD rather than a boot floppy
for setting up e.g. an ISDN router.
Beside the fact, that a CD has a much higher capacity than a floppy,
the boot process is usually also much faster when booting from a
recent CD drive, e.g. down to 10-30 seconds even with a large
configuration instead of somtimes several minutes with floppy disk
even though configuration was minimalistic.
The package comes with a modified root filesystems which incorporates
the neccessary modules in oder to access a CD just after boot
(ide-cd.o, cdrom.o for cdrom access and isofs.o for access to the
filesystem used on CDs). As of now, only booting from ATAPI (i.e.
CDrom drives connected to the IDE bus) is supported, as access to SCSI
drives would mean to include lots of modules for all the different
types of SCSI adapters around (thus blowing up things quite a lot)
whereas some tiny modules do suffice to achieve this for ATAPI drives.
Moreover ATAPI drives are quite cheap in comparison to SCSI drives and
the basic intension of fli4l is to be run on low-cost, somewhat
outdated hardware anyway. So if you own a SCSI drive only but would
like to boot from CD, better consider getting an old ATAPI drive
instead of adding SCSI modules to this package.

Modified files

The files in this package follow the directory standard as defined by
the fli4l project, however some files will be modified as follows:

img/rootfs.gz:
root filesystem with CD boot related modules and modified startup
script (/etc/rc)

img/syslinuxcd.cfg:
sylinux configuration with specification of CD rom drive

opt/etc/rc.local:
modified in respect to appropriate generation of fstab

mkclean.{sh|.bat}:
will clean up also files related to boot CD creation

If you intend to use this package together with the hd package (for
installation onto a harddisk), make sure that you also unpack the file
hd_update.zip located in the root directory of the fli4l tree after
you unpacked the hd package. This will additionaly modify the
following files of the hd package:

config/hd.txt new setting HDINSTALL_MOUNT_BOOT hat determines whether
the boot partition should be mounted after harddisk installation. (for
harddisk installation, the parameter MOUNT_BOOT of the base fli4l
package must be set set to 'ro' or 'rw', but not to 'no', because the
files could not be copied to the harddisk otherwise. however, setting
HDINSTALL_MOUNT_BOOT='no' will allow to install fli4l on a harddisk,
but have the boot partition not mounted afterwards when finally
booting from harddisk)
config/hd.txt comprises check for HDINSTALL_MOUNT_BOOT
opt/hd.txt CD rom related modules skipped, as they already must be on
the root filesystem, anyway
opt/files/usr/sbin/setup allows also installation from boot CD to
harddisk

Usage

1. After you unpacked the package into the fli4l tree, configure the
files in config/ as usual.
2. (Optional) If you have the hd package installed, make sure you
also unpacked hd_update.zip and configured config/hd.txt. Note,
that unpacking this archive will overwrite some files that coe
with this package, so make backup copies if you want to keep the
original files.
There's an additional parameter for the updated files from the hd
package: HDINSTALL_MOUNT_BOOT='no' (or 'rw' or 'ro')
will override the setting of MOUNT_BOOT in config/base.txt. The
reason for this is, that installtion to a harddisk requires
MOUNT_BOOT='ro' or MOUNT_BOOT''rw', because the setup script needs
to copy files from there to the harddisk. The config (which is
located on the boot filesystem) file will be copied as well from
there. So whatever you chose for MOUNT_OPT, if will also apply for
the final installation on harddisk. Setting HDINSTALL_MOUNT_BOOT
to something different however will override MOUNT_OPT, thus
although you have chosen to mount boot during installation to
harddisk, the boot partition will not be mounted afterwards.
3. (Optional)
If you want a special CD drive to be used, change the parameter
"cd=auto" in img/syslinuxcd.cfg to the drive you'd like to be used:
cd=/dev/hda if it's master on first IDE channel,
cd=/dev/hdb if it's slave on first IDE channel,
cd=/dev/hdc if it's master on second IDE channel,
cd=/dev/hdd if it's slave on second IDE channel.
Otherwise the CD will be sought for automaticaly in the following
order: hdc, hdb, hdd, hda
4. For Linux, run the script mkcd.sh, for Windows invoke mkcd.bat.
These scripts will first perform as usual the check of the config
files and create the files needed for creating a boot floppy.
Note, that you will need a formatted 1.44MB floppy for this
purpose
From this boot floppy a floppy image will be read which is
neccessary for bootable CDs. After the floppy image has been
created, a CD iso image which comprises this floppy image as well
as all files neccessary for starting the router software will be
created in img/fli4l.iso.
5. The script will then ask you, if you want to burn this image to a
blank CD immediately, for details see the section "CD buring",
below.

If you are using Linux, and if you once started the mkcd.sh script,
you can skip the (rather slow) generation of the boot floopy, provided
you have root privileges, because in that case the next time you want
to create a CD image, the former floppy image will be mounted as a
loopback device and the modified configuration will be written to the
image directly rather than first writing it to floppy and then reading
the whole floppy to a file.
However, if you have not root privileges or if you use Windows to
create the image, you'll have no choice and the floppy will be
generated each time you call the script. The reason for this is, that
mounting files as loopback devices is usually allowed for the root
user only in Linux on the one hand and accessing images in this way is
not supported in Windws at all.
There are three parameters that control the behaviour of these
scripts:
[-g] This forces the generation of a new floppy image, even if the
former one could be used.
[-s] This creates a "slow, stupid and secure" version of the syslinux
loader. Use this if you have a somewhat broken machine and the usual
way fails for you.
[config-directory] This uses a different directory where config files
are sought for rather then the default "config" directory.

CD burning

The creation of the CD image as well as the actual burning process is
provided by means of third party software, see this section for
details.
To find out if your CD recorder is supported, check the list of
supported drives on J”rg Schilly's page.
After he script created a CD image, your system will be scanned by
CDRECORD for drives, the list of drives will be presented to you, e.g.

scsibus1:
0,0,0   100) '        ' 'OME-W141        ' '1.40' Removable CD-ROM
0,1,0   101) 'DM126D  ' 'DVDROM '01/01/29' '1.1C' Removable CD-ROM
:
:

and you will be prompted to choose a drive from the list which should
be used to burn the CD image to a blank medium. Please enter the
three-digit id of your drive here, e.g. "0,0,0".
If you do not want to burn the image, e.g. because you prefer to burn
it with a piece of software of your choice, then abort this prompt by
pressing Ctr-C. Otherwise prior to actual burning, a write simulation
will be performed. If write simulation succeeds, you'll be prompted
again for the actual write process, otherwise the script will fail.

FAQs

Q: I always get the error message "Windows was not able to gain exclusive
access to the floppy drive" - so what's wrong ?
A: Apparently you use windows 2000 or NT - the access restrictions are
much more rigid that e.g. for win 98 or 95. I hav eno key why this
happens sometimes, however what fails is the installation of the
bootloader syslinux (that's the part thet make the floppy a bootable
one). Fortunatelly I found out that does not happen neccessarily,
thus trying again and again and pressing the "Cancel" button of the
dialog window that pops up should help. If someone kows a more
elegant way to overcome this, lease send me a note: a.pogoda@web.de
Furthermore this problem seems to happen less frequently if you call
the script from inside a DOS box rather than just clicking on its icon
(which however is more convenient - sure). Moreover you'll be able to
call the script with optional parameters when doing so.
Another solution to this is to use windows 95 or 98 (or XP - can
someone prove this ?)

Q: I always get the message ""Error writing or reading the
floppy disk maybe the disk is full-try to select fewer options in
configuration and try again" - what can I do ?
A: Apparently you still use the very first version of the bootCD package.
It suffered from the fact that the tool which is used to create the
floppy image inside the mkcd script, apparently created the image
in read-only mode the first time you invoked the script.
If you ivoke it again, the tool is unable to overwrite it.
Either get a recent version of the bootCD package or delete the file
"img/cd/boot.img" manually before invokation of mkcd.

Q: There' splenty of space on the CD in contrast to boot floppy.
Therefore I installed some 1000 optinal packages. Now there's
a lack of storage space on the ramdisk when fli4l starts up -
what's the way round this ?
A: Obviously the size of the ramdisk is to small - you can adjust it
with the "RAMSIZE" parameter in "config/base.txt".
Most of the files from optional packages do not reside inseide the
ramdisk that contains the rootfs but into a seperate one.
Then symbolic links are created in the rootfs to these optional files.
So in most cases it should be sufficient to set RAMSIZE to some larger
value, e.g. 4096  (4MB), 8192 (8MB) etc.
If there's a need for quite a lot of links on the rootfs or if you
installed packages which force files to reside inside the rootfs
rather than the optional ramdisk, then even this can fail.
For this  reason there's an optional switch "-l" to the mkcd script
which will cause the script to use a 32MB version of the root filesystem
instead of the default one.
Of course you have to make sure that the amount of physical memory in
the fli4l box you use is sufficiently large for the ramdisk, so you
should have something like 64MB or more.
If the default rootfs is too small for your needs, but the 32MB
version is too large for your physical memmory, it's up on you to
create a customized rootfs. You'll find valuable information on the
fli4l homepage regarding this issue (http://fli4l.sf.net);

Q: Why does the skript always create this nasty floppy image -
can I prevent it from doing so ?
A: Yes and No - In the stoneage of PCs in the early 1980s there was no
way to make a PC boot from a CD - mostly because CDs did no exist at
all. So when the CDs came up and people wanted to boot from these just
as they did with floppy disks, there was an agreement that the BIOS
should read a special floppy image file on bootable CDs, load it into
memory and treat it just as it treats real floppies.
For this reason the script needs to create a raw copy of a bootable
floppy that will be located on the CD image afterwards.
Finally the CD image wil be burned on a CD medium. When the PC boots
from such a CD, it extracts the floppy image, maps it into RAM and
treats it as decribed above.
There's no elegant way to access and modify such images under windows so
the script will always create by writing files onto a floppy and
creating a raw image afterwards.
In Linux theres a concept called loopback-devices that allows for the
mounting and access to such images. The drawback with this is that you
must have superuser privileges to do so.
So if you want to avod the long lasting procedure, make sure that you
become root before you invoke the mkcd.sh script.
Note however, that the very first time you invoke it, an floppy disk
is neccessary regardless whether you're superuser or not, because a
first image must be created. Subsequent invokation will then use the
image created before.

Q: Okay, if it's really neccessary to create a floppy image because it
must reside o the CD, how is it possible that there fit more on the CD
than there was space on the floppy ?
A: The reason for this is, that not all of the files the fli4l box needs
to startup must be located for the actal boot procedure.
For this, onl the bootloader, the linux kernel and the root filesystem
must be located on the floppy. The rest - that's the opt.tgz archive
that contains all the optional files - may safely reside on the actual
CD rather than in the floppy image.
So the majority of a huge configuration is this archive - its size
may vary from several hundreds of kB up to mayn MB.
Fortunatelly ther's plenty of space on CDs, so this should be
sufficient even if your configuration cause many optional files to be
included into this archive.

Q: If I try to actually burn the CD, the program Cdrecord won't get
started.
A: (contributed by oliver.franck@gmx.net
...
I recently installed your opt-package using a fresh w2k environment
and I noticed that Cdrecord won't start up because probably the
wnaspi32.dll was not found in the system.
Due to license issues, this dll is not included into M$ products
and even a nero demo installation won't succeed without prior
downloading of this file from somewhere else :)
Apparently Nero &amp; Co. search all the directories below C:      but Cdrecord (still) does not so and considers only the standard
locations for dll's.

Description:
first installed cdrwin (demo) -&gt; aspi error message
test: installed nero (demo) -&gt; aspi error message
copied wnaspi32.dll from some place into the cdrwin directory
-&gt; all burning programs functioning perfectly except cdrecord..
...


Third party software

This package contains some third-party programs to create a CD image
and to actually write it to a blank medium and to perform the script
communication.
1. CDRTOOLS - binary windows version 1.11a12 (Author: Joerg
Schilling), see
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schi
lling/private
for the lastest version. CDRTOOLS are under the GPL, see licence
details.
You'll find find binaries of mkisocd and cdrecord in the windows/
directory. For a list of supported CD recorders search the linke
above. For licence details, see "COPYING".
2. GETVAR.EXE - form the citrix multi tools (Author: Eric Thurber),
see
http://www.oregonclassifieds.net
for the lastest version.


Links

1. http://fli4l.sf.net/
2. http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private
3. http://www.oregonclassifieds.net/

_________________________________________________________________

Author:   A. Pogoda
Datum:    Feb. 25th 2002
Modified: Apr. 05th 2002
Modified: May  23rd 2002

