savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] submission of LifeBoat - savannah.nongnu.org


From: lifeboat
Subject: [Savannah-hackers] submission of LifeBoat - savannah.nongnu.org
Date: Thu, 14 Aug 2003 20:45:10 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030626

A package was submitted to savannah.nongnu.org
This mail was sent to address@hidden, address@hidden


Steve Stites <address@hidden> described the package as follows:
License: gpl
Other License: 
Package: LifeBoat
System name: lifeboat
Type: non-GNU

Description:
Project Purpose and Summarization :

     I have created a project called LifeBoat.  LifeBoat is a script 
program which creates rescue CDs on a Linux box.  It builds the
rescue CD by copying the necessary programs from the host softare.
The resulting rescue CD is highly compatible with the host system.
The LifeBoat CD system is highly configurable.By using the LifeBoat 
Addons feature the user can include any functions that he wants from
the host system up to the size capacity of a CD.

     I have the source code and the web site available as tarballs.  
I do not have any place to post LifeBoat on the web.  That is why I
am approaching Savannah, to ask for free web hosting space.  I can
send the source code toyou in a tarball as an attachment to an 
email.  This tarball is the LifeBoat download and the size is 138
Kb.  I also have the complete LifeBoat web site available in a
tarball and the size is 155Kb.  The website tarball includes 
the download tarball, so sending both is redundent.

     To complete my description of LifeBoat I am appending the text 
version of the LifeBoat documentation.
--------------------------------------------------------------------
                                    LifeBoat

                         Copyright (C) 2003 Steve Stites
         LifeBoat is released under the GNU General Public
License. See the file called COPYING for a copy of the GNU
General Public License.

Introduction

     LifeBoat is a script program which can be used to create a
Linux bootable rescue CD.  LifeBoat uses your kernel, your
device configuration, your man pages, and your utility programs
so that the resulting rescue CD is highly compatible with your
Linux system.  LifeBoat is configurable and you can add any
program you want to the base system provided by LifeBoat.

     The LifeBoat CD is designed to be a versatile and reliable
rescue system. It is not a general purpose Linux system although
with a lot of work you could create a general purpose Linux CD
system using the addons feature.  Rather than doing that, if
you want a general purpose CD Linux system then I highly
recommend Klaus Knopper's Knoppix:  http://www.knoppix.org/

     The LifeBoat CD base system is a command line based system
running as root.  It does not have a GUI.  It does not have
passwords.  It does not have a package manager.  It does not
have a compiler.  It does not have any networking.  What
the LifeBoat CD does have is your kernel, your devices, a large
number of your command line utilities and your man pages.

Installation

     Login as root or su to root.

     Extract the tarball in the working directory you will use to
       create your LifeBoat CD.


Creating your LifeBoat CD

     1.  Use a text editor to make any necessary changes to the
         configuration file, config.  The config parameters are:


       CDR_DEVICE
         The CDR_DEVICE is the scsi address of your CD-RW.
         The default is:  CDR_DEVICE="0,0,0"

       CDR_SPEED
         The CD_SPEED is the burn speed of your blank CD-RW or CD-R.
         LifeBoat runs the burn at the fastest speed that your CD
         burner will allow.  If you want to run the burn at a slower
         speed then set CDR_SPEED to the slower speed.  For example
         if you want to do a 12X burn then set CDR_SPEED=12
         The default is:  CDR_SPEED=  (which means as fast as
         possible)

DISTRO
         The DISTRO is the name of your Linux distribution.
         Different distributions have different file structures so
         LifeBoat gives you a choice of commands to copy your files
         to the LifeBoat CD.  The current choices are generic,
         Mandrake, RedHat, Slackware,SuSE, and Yoper.  If all of
         these choices do a poor job of finding files on your
         distribution then make your own DISTRO command.  Use the
         generic  command as a base to create a DISTRO command that
         works well on your distribution.  Save your command in the
         distributions directory and make it executable.  If you
         make your own DISTRO command please send it to me as an
         email attachment and I will include it in a future release
         of LifeBoat.
         The default is:  DISTRO=generic

IDESCCI
         The IDESCSI parameter is entered into isolinux.cfg as a
         boot parameter describing your CD-RW.  If your CD-RW is
         scsi then set it to null:  IDESCSI=
         If your CD-RW is on /dev/hdd and uses ide-scsi emulation
         then enter: IDESCSI="hdd=ide-scsi"
         The default is:  IDESCSI="hdb=ide-scsi"

KERNEL
         The KERNEL parameter describes the full path and name of
         your kernel.  The default is:  /boot/vmlinuz

MANPAGES
         The MANPAGES parameter is used to indicate whether or not
         you want your man pages included on the LifeBoat CD.  See
         the "memory usage" section for more information about
         MANPAGES.  Answer yes or no.
         The default is:  yes

MYNAME
         MYNAME is the name of the person who is creating the
         LifeBoat CD.  That's you!  The default is STITES.  I
         suggest that you type your name in capital letters.  That
         makes the boot message more readable.  Enclosing your name
         in quotes will take care of any names which contain
         special characters like "O'LEARY" or "VAN DER WAALS".  If
         your name has more than thirty characters try using a
         shorter nickname.

RAMDISK_SIZE
         The RAMDISK_SIZE is the megabytes of memory set aside for
         a ramdisk.  See the "Ram disk" section for a description
         of how to decide how large a ramdisk you need.
         The default is:  RAMDISK_SIZE=250

     2.  Use a text editor to edit the addons file.  In the addons
         file you can add anything that you want to the base
         LifeBoat system.

     3.  cd to the LifeBoat-0.2 directory.  This is in the directory
         where you extracted the LifeBoat tarball.

     4.  Insert a CD-RW or a blank CD-R in your CD recorder.

     5.  Issue the command:  ./lifeboat


Ram disk

     In the following paragraphs the amounts of ram mentioned can
vary widely from one Linux box to another.  You will have to
make a test run with LifeBoat before you get your LifeBoat ram
usage configured correctly.

     The LifeBoat system uses a ram disk file system.  This file
system is entirely located in memory.  So once boot has
finished, the rescue system runs entirely in memory.  It does
not need a CD or a hard disk to run.  But the ram disk does
take up a significant amount of memory.  The size of the ram
disk is set using the config parameter RAMDISK_SIZE.  The default
RAMDISK_SIZE is set to a deliberately too large 250M.  When you
run ./lifeboat it will tell you how much ram disk is actually
used and will also store the information in the audit
directory.  Then you should set RAMDISK_SIZE to 16M more than
is actually used and run ./lifeboat again.  You cannot reduce
RAMDISK_SIZE to the actual usage because that would set up a
"disk full" situation, i.e. you would not have any free working
space on the ram disk.  If you get "disk full", either while
running ./lifeboat or after booting the LifeBoat CD, then
increase RAMDISK_SIZE.  If you don't want to ruin a CD-R in a
trial run then leave the CD-ROM tray empty.Memory usage

     There is a trade off between the number of tools available to
repair your broken system and the size of the rescue system.  I
have tilted toward making the rescue system as complete a tool
kit as possible and therefore you may run into memory size
problems when trying to boot the LifeBoat CD.  You will need
enough ram for the ram disk, your kernel, room to run programs,
and cache space.  Altogather you will need approximately the
RAMDISK_SIZE plus about 10M.  If that is too large for your machine
then you can remove the man pages by setting the config
variable MANPAGES=no and then reduce the RAMDISK_SIZE by about
33M.  If you want to reduce the size of the LifeBoat CD system
even further then you will have to rework the DISTRO script and
throw out a lot of utility programs.  Rather than do that I
recommend that you take a look at tomsrbt.  Tom Oehser has
probably done as good a job as possible in creating a small
small generalized Linux system on a floppy.  tomsrtbt tilts heavily
toward being as small as possible:  http://www.toms.net/rb/

     Another way that you can save space is to compile your own
kernel.  The kernels provided by a distribution usually
includes every function that anybody might need.  You can
reduce the size of /lib/modules/* dramatically by compiling
your own kernel and only including the functions that you
actually need.  In my case I saved about 38M in by compiling my own
kernel.

Kernel requirements

     LifeBoat uses your kernel because there is probably an
excellent fit between your kernel configuration and your
hardware configuration, file systems, partition types, etc.

     LifeBoat does require that your kernel have loopback device
support and ramdisk support compiled into your kernel.  Most
distributions now have loopback device support and ramdisk
support in their default kernels, but if your kernel lacks
either of those features then LifeBoat will not work.  If you
compile your own kernel remember to include loopback device
support and ramdisk support.

     You tell LifeBoat the name of your kernel with the KERNEL=
parameter in the config file.  The default is:  KERNEL=/boot/vmlinuz
LifeBoat will rename the kernel on the CD system to linux.

     If you have more than one kernel then the KERNEL= parameter
must name the kernel that you are currently running on.  The
LifeBoat CD does not multi-boot.  If you want more than one
kernel then create a separate LifeBoat CD for each kernel.  You
will also have to boot your system into the proper kernel to
create each LifeBoat CD.

Addons

     You can add directories, programs, and other files to your
rescue CD by using the addons feature.  In the directory where
you installed LifeBoat you will find an executable file called
addons.  You enter commands into the addons file to create
directories and to copy files from your Linux system into the
ramdisk that LifeBoat is building on the bootable CD.  In your
addons commands you reference the ramdisk as ${RAMDISK}.  Your
addons commands will be executed after ./lifeboat has finished
building the standard rescue system so you can count on the
standard directories to be existing in ${RAMDISK} when addons
is run.  Lifeboat contains the utility programs to inspect and
repair partitions, ext2 file systems, and DOS file sytems.  If
you are using other file systems like ext3, or reiserfs, or
perhaps something like LVM or RAID, then you should include the
utilities to inspect and repair these things in the addons
file.

     For example:  Suppose that you want to use nano as your
LifeBoat command line editor.  Also suppose that you have a
program called bedbug which finds and destroys viruses embedded
in any of your Linux programs and you want to include bedbug on
the LifeBoat CD.  The bedbug program is located in /usr/local/bin.
bedbug has lists of virus signatures and control files in
/usr/bedbug.  ${RAMDISK} has /usr/local/bin but it does not have
/usr/bedbug.  So you would add the following code to the addons
file:
     # add bedbug     mkdir  ${RAMDISK}/usr/bedbug
     cp  /usr/local/bin/bedbug  ${RAMDISK}/usr/local/bin
     cp  /usr/bedbug/*  ${RAMDISK}/usr/bedbug  -R
     # add nano
     cp /usr/local/bin/nano  ${RAMDISK}/usr/local/bin

Editor

     There are several open source command line editors available.
Rather than take up a lot of space with half a dozen or so
editors LifeBoat comes with a single text editor called mp.  mp
was chosen because it is very intuitive to use.  Even if a
person has never used mp before they can quickly master it well
enough to repair a broken /etc/fstab file or startup script.
LifeBoat gives mp linked names of ed, edit, editor, emacs, nano,
pico, vi, and vim so that whatever editor name you try you will
get a usable text editor.  If you want to use some editor
other than mp then include your preferred editor in LifeBoat by
using the addons function.  If your preferred editor's name
is one of the mp alias names there is no conflict.  LifeBoat
will either overwrite the alias symbolic link with your editor or
your editor will appear earlier in the PATH than the link to mp.
See the "addons" section for an example of how to add the
nano editor to the LifeBoat CD.


mp

     mp is a command line editor written by Angel Ortega which is
released under the GPL.  A binary of mp version 3.2.9 is
included with LifeBoat in the mp directory.  You can get the
latest version of mp and the source code from:
http://www.triptico.com/software/mp.html

     mp contains a configuration file located in the LifeBoat
package at mp/.mprc.  You can change .mprc with a text editor.


CD support

     LifeBoat assumes that your CD recorder is located at /dev/hdb
and uses the kernel ide-scsi support.  If your CD recorder is
scsi, or if your CD recorder is on an IDE device other than
/dev/hdb, then set the IDESCSI variable in the config file.

     LifeBoat creates a rescue system on either CD-R or CD-RW.
LifeBoat tries to burn the CD-R or CD-RW at the fastest speed
that your CD recorder can burn that media type.  If you want
LifeBoat to do a slower speed burn then set the CDR_DEVICE
variable in the config file to the speed that you want to burn
at.

     LifeBoat assumes that your CD recorder is scsi device number
0,0,0.  If your CD recorder is located at a different address
then set the CDR_DEVICE variable in the config file to the
correct scsi device number.

Copying /dev

     LifeBoat copies your device information to the rescue cd so
that there is a high degree of compatibility between your Linux
system and your rescue CD.  /dev is hard to copy and a mistake in
copying /dev can potentially destroy your Linux system.
LifeBoat uses cpbk to safely and accurately copy your /dev
directory to the rescue CD.  cpbk is also included on the
LifeBoat CD for your use in backing up and restoring /dev if you
choose to do so.

cpbk

     cpbk is a backup program written by Kevin Lindsay and Yuuki
Ninomiya which is released under the GPL.  A binary of cpbk
version 4.1.0 and the cpbk man pages are included with
LifeBoat in the cpbk directory.  You can get the latest
version of cpbk and the source code from:
http://linux.sarang.net/~darchon/linux/cpbk/


Bootloader

     LifeBoat uses isolinux for the bootloader.  A binary of
isolinux version 1.63 is included with LifeBoat in the isolinux
directory.  You can find a copy of the isolinux.cfg that
LifeBoat created in the audit directory.

isolinux

     isolinux is a boot loader for CD written by H. Peter Anvin
which is released under the GPL.  isolinux is part of the
syslinux package.  Documentation for both isolinux and syslinux
can be found in the isolinux directory.  You can get the latest
version of isolinux and the source code from:

http://syslinux.zytor.com/iso.php


Updating the LifeBoat CD

     Whenever you make major changes to your Linux system I suggest
that you create a new rescue CD to maintain the utmost
compatibility between your main system and your LifeBoat
system.  But don't be in any hurry to throw away the previous
version of your LifeBoat CD.  Your upgraded system may have
problems and your latest rescue system will also contain the
problems.     I recommend that you always keep two generations of
your LifeBoat CD available and clearly mark which is which.
You can find the date that your latest LifeBoat CD was created
in the boot message and in the audit directory.

Booting the rescue CD

     You need to do the following things in order to boot your
rescue CD:

     Set up your bios boot sequence.  The recommended sequence is to
     boot floppy first, cdrom second, and hard disk third.

     Place your rescue CD in your cdrom.

     Boot.

     The following harmless warning message may appear when you boot
     the LifeBoat CD:  Bash: no job control in this shell

     Once you get the command prompt you do not need the CD any
     longer and you can remove it if you want.


Using the LifeBoat CD

     There is no login or password.  You are running as root.

     The documentation available on the LifeBoat CD includes your
man pages and /root/LifeBoat.txt.  You can read
/root/LifeBoat.txt with either mp or less.

     There are four empty directories available as mount points.
These are:

        /boat1
        /boat2
        /boat3
        /boat4


Shutting down the rescue system

     Do not simply boot or power down when you are finished with
your rescue system.  Instead remove the LifeBoat CD and then use
the shutdown command.  If you want to power down use:
shutdown -h now

If you want to boot into your Linux system use:  shutdown-r now

If you want to reboot the LifeBoat system, leave your LifeBoatCD in
your CD-ROM and use:  shutdown -r now

Security

     The LifeBoat CD has no security.  There is no login, no
password, and you run as root.  This lack of security is
deliberate.  It allows you to use LifeBoat to repair your Linux
box when security is broken and you cannot log in.

     The total lack of security also means that your LifeBoat CD is
potentially very dangerous in the wrong hands.  You should keep
your LifeBoat CD where your little brother cannot find it.


Changelog

     v 0.2  This is the first public release of LifeBoat.


Contributions

     No, I am not asking you for money.  I am asking you to make
LifeBoat     work on your distribution and then send the changes to
me.

     Different distributions have different file structures so
LifeBoat gives you a choice of DISTRO commands to copy your
files to the LifeBoat CD.  It is quite possible that none of
the DISTRO commands that come with LifeBoat will work well with
your distribution and you may have to rewrite the generic
distribution command to fit your distribution.  If you do so I
would very much appreciate your sending me your new DISTRO command
so that I can include it in future releases of LifeBoat.  Be
sure to include your distribution name and release number.

     One of my design goals is to make LifeBoat easy to use.  This
first public release is admittedly rough.  If you have
difficulties using LifeBoat, let me know, along with your ideas
on how to make it easier to use.


Bugs

     There are no known bugs in LifeBoat.  However I expect that
when people try it on a variety of hardware and distributions
some bugs will be discovered.  Please send me as complete a bug
report as possible keeping in mind that I need to know any
relevant information about your hardware and software setup.


Contact

     You can contact Steve Stites at:

     address@hidden


Attributions

     LifeBoat was created by Steve Stites

     cpbk was created by Kevin Lindsay and Yuuki Ninomiya

     isolinux was created by H. Peter Anvin

     mp was created by Angel Ortega


Return codes

     The ./lifeboat command return codes are:
       0 - normal exit
       1 - not running as root
       2 - kernel does not exist
       3 - terminated by external signal
       4 - MANPAGES variable is not yes or no
       5 - CD burn failed
       6 - DISTRO file does not exist
       7 - the loopback device does not work


Other Software Required:
Software Dependencies :


LifeBoat depends on cpbk, isolinux, and mp.  All three of the
programs are released under the GNU General Public License.
LifeBoat includes the binariesfor these three programs in the 
distribution tarball. The LifeBoat documentation properly
attributes the developers of all three programs and directs
the user to where the source and latest versions can be found.



Other Comments:

     This is my second submission for LifeBoat.  I have
corrected everything that Rudy objected to except one thing.
Rudy suggested that I place my documentation under the GFDL.
I read the GFDL and it says that the recipient cannot modify
the documentation.  I would hope that anyone who changes the
source code would also change the documentation.  So I don't
care for the GFDL as I understand it.  Actually I intended
the GPL reference in the documentation to refer to the
source code and not the documentation.  If you think I have
my documentation licensing legally scrambled I would be
willing to remove the copyleft clause in the documentation,
or make the documentation public domain, or whatever else
you consider reasonable as long as I don't make the
documentation unchangable.




_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]