





			       Choose-OS 
			      
			      
			 
			      
	   Version 0.84, Copyright (c) Tuomo Valkonen 1996-1998.



Choose-OS is free software distributed on as-is basis and comes absolutely 
with no warranty. Therefore shall the author in no way be responsible for any 
kind of damage possibly caused by the use or abuse of the program or mistakes
in the documentation or samples. The author shall in no way be liable for
possible infringements on copyrights, trade secrets or any patents by any part
of the program. As the program is free software, you are allowed and even 
encouraged to copy and distribute it to your friends and everyone else as long 
as they're not paying for the software itself. You are allowed to use the 
sources but if you do so, the resulting software and sources must be available
for free and the original author must be given the appropriate credits. 
Batteries not included. Some assembly may be required. Keep away from small 
children.


WHAT IS CHOOSE-OS ?
-------------------

 Choose-OS, or briefly chos, is a boot loader for Linux/x86 -
 a program that is loaded by the bios before any operating system and
 allows you to choose the operating system to boot and enter
 parameters to it. It is IMHO a nicer replacement for the usual
 simplyish boot loader, LILO.


FEATURES
--------

 Choose-OS is intended to be highly configurable and that is one
 reason why it will be highly modular. 0.8x series, yet, only implement
 operating system loaders as modules.  Some day chos (version 0.9 or
 whatever the version will be...) will also implement user interfaces as
 well as operating system loaders as modules on both, the loader and
 installer side. It and can therefore be easily extended to support many
 different kinds of user interfaces (normal, vga, liloish, etc.) and
 operating systems.
 It can currently load the linux kernel (vmlinuz) and bootsectors of
 other operating systems. Linux loader module features include bzImage,
 initrd and, of course, command line. Bootsector loader features
 MBR rewrite (useful for hiding dos from win95/98) and more.
 Other useful features include what I call "single-shot autoboot",
 a feature that allows a program to tell chos what operating system
 to boot on the next boot. Rebooter is one such program.
 If you don't always have the hard disk, on which chos data files are
 located on, plugged in you may find the "emergency boot sector"
 feature handy.
 When the feature is enabled and chos can't load its data, it can load
 a specified "emergency" boot sector.
 For those of you who, for any reason, don't want to edit
 configuration files, there is a nice graphical configuration
 utility, Visual CHOS, by Andreas Blome.


HOW CAN I INSTALL IT ?
----------------------

 1. Make a boot recovery disk unless you already have one ;)

 2. Run ./Install (as root) to copy chos binaries and stuff to their
    appropriate locations.

 3. Create yourself /etc/chos.conf configuration file. See below
    for more information.
    (If you've been running chos 0.7 or newer before, you may skip
     this part. Just change 'fastboot' to 'autoboot').

 4. Run 'chos' (as root of course). (Add -v on command line for verbose mode)

 5. Last chance to make a boot recovery disk!

 6. Reboot your system.

 7. Now you should see a nice bootup menu and be able to
    start the OS you want to by choosing from the menu =-)
       or
    Chos has failed and you gotta use your boot recovery disk :-(


CREATING A CONFIGURATION FILE
-----------------------------

 In the ./samples directory your can find some sample configurations.
 If you have never used chos before, you might want to
 use ./samples/simple.conf as a template and later, when you have
 gotten chos up and running, move on to nicer configurations.

 For more information and a QuickStart guide refer to the HTML
 documentation in ./docs 


CONFIGURATION FILE
------------------

 '#' denotes a comment.
	   
 Each non-comment/non-blank line begings with a keyword followed by 
 options. Choose-OS currently recognizes the following keywords:

 *
 * This list is only a short description of the options.
 * Once again, see the HTML docs for more complete information.
 *

 GENERAL:
	
	delay=<xx>
 		Set the delay to wait before bootin' the first image.

	autoboot=<no|pressed|not_pressed>
		Sets autoboot policy.
	
	install=<device>
		Tells chos the device to install its bootsector on.
		Required!

	emergency=<device>
		Sets emergency bootsector.

	defaul=<img>
		Sets default image number.
	
	password=<passwd>
		Set password.

	mapdrive=<bios_number>,<device>
		Tells chos to assign device <device> bios device
		number <bios_number>.

 LOOK:

	banner=<banner>
		Sets the banner to display on top of the menu.
		(not displayed if background image set).
		Default: Chos blaah blaah BootUp Menu.

	infoline=<on|off>
		Show copyright and other stuff on the bottom of
		the screen?

	color=<color>
		Specify color used for normal text.
		
	selection=<color>
		Highlight color of selected image. It can only
		be one of the 8 first colors.

	background=<type>:<file>
		Use background image <file> of type <type>
		(ascii,cp437 or dump).

	menupos=<col>,<row>
		Place the menu at <col>,<row>
		Also moves timer position, if it is not set.
		
	timerpos=<col>,<row>
		Place timer at <col>,<row>
		Setting this will cause the string 
		"Time left: " not to be printed.

 FILES:
	*
	* These will be overridden by the ones given on the
	* command line, if any are...
	*
		
	bindir=<directory>
		Search for loaders and stuff in <directory>
		Default is /boot
		
	bgfile=<file>
		Save background in <file>.
		Default is /boot/chos.background.
		
	mapfile=<file>
		Use <file> as map file.
		Default is /boot/chos.map


 IMAGE CONFIGURATION:

	<image_type> "<name>" {
		options_and_stuff
	}

	Where: 	<image_type> can be  one of these:
		"linux"		for normal linux kernel
		"big_linux"	for bzImages
		"bootfile"
		"bootsect"	these two are exactly the same thing, but
				may have different options in the 
				future. They are used to boot a bootsector
				of an other operating system.
				
		<name> is the name shown in the menu.
	       
	Common "options_and_stuff":
	       		
		color=<color>
	 		Use <color> for the image.
	       		
	       	image=<file>
	       		The file/device name of the bootable.
	       	
	       	hotkey=<key>[,hidden]
			Sets hotkey for this image.
	       		
	       	position=<x>,<y>
	       		The position of the choice on screen.
	       				
	       	loader=<loader>
	       		Use OS-specific loader <loader> instead
	       		of default.
	       	
		password=<yes|no|restricted|cmdline>
			How to handle this image when password
			set.
		
		rebooter.*
			Rebooter options. Ignored.

	Linux-specific (linux and big_linux):
	       		
		cmdline=<command_line>
			Set linux command line.
		       		
		initrd=<file>[,address]
			Set initrd. If <address> is set, the initrd
			will be loaded at that address, otherwise on
			top of memory.

	Bootsector-specific:

	    	THESE ARE ALL UNTESTED OR OTHERWISE DANGEROUS FEATURES !
	    	YOU'RE USING THESE AT YOUR OWN RISK ! 
	    	PLEASE BACKUP ALL MATTER-OF-LIFE-AND-DEATH DATA ON 
	    	YOUR HARDDISKS BEFORE TRYING THESE !
	    	YOU MUST JOE MAKEFILE TO COMPILE THESE FEATURES IN !
		       		
	       	dos4boot=yes|no
	       		tell dos4+ to boot off hdb
		       			
	       	rewrite=<yes|device>
			Configures MBR rewrite feature.
			See './docs/rewrite.html' for step-by-step
			how-to-use information
		       					       	
		     	DO NOT USE IF YOU DON'T KNOW WHAT YOU'RE DOING !!!
		     	
		[THESE TWO DON'T WORK]

		swapfd=yes|no
			Swap floppies fd0/fd1
		       		
		swaphd=yes|no
		       	Swap harddisks hda/hdb
		  

	
COLOR NAMES
-----------

 Colors are specified in the following format:
		
	<foreground>[,<background>]
		
 Foreground can be any of the following and background (optional)
 one of the eight first:
	
	black		blue		green		cyan
	red		magenta		brown		lightgray
		
	darkgray	lightblue	lightgreen	lightcyan
	lightred	lightmagenta	yellow		white
		

COMMAND LINE:
-------------

 Choose-OS accepts the following command line options:
	
	-h
		Show version,copyright 'n usage.
			
	-v
		verbose

	-c <config_file>
		Uses <config_file> as configuration file.
		Default is /etc/chos.conf.
		
	-t	
		Test. Specifying this option will not cause map
		file or boot sector to be written on disk.
			
	-view
		View the resulting menu. Will not install anything
		and can even be run as non-root.
		You can also use 'showscreen background [map]' to
		later view the menu.
		
	-y	
		Answer yes to all questions.
		
	*
	* The following will override the ones specified in the 
	* configuration file.
	*
		
	-b <bindir>
		Search for loader and stuff in <bindir>
		Default is /boot.
			
	-m <map_file>
		Uses <map_file> as boot image map file.
		Default is /boot/chos.map.

	-i <background_file>
		Use <background_file> as a file to store background
		"image" in.


LINUX COMMAND LINE:
-------------------

 This section describes the syntax of Linux command line.

 The command line is simply a string of parameters to transfer to Linux.
 Valid parameters are for example:
	ro		Mount root device read-only.
	rw		Mount root device read-write.
	root=<device>	Tells Linux to use <device> as root device.
			This can be a hexadecimal number or a path 
			name. Overrides the one hard-coded to kernel.
		
	There are lotsa others too depending on what drivers you have 
	but it's not the purpose of this document to describe 'em.
	
 Choose-OS interpretes "vga=<mode>" parameter itself. 
 The valid values for <mode> are:
	NORMAL		normal 80x25
	ASK		Tell Linux to ask for the mode
	EXTENDED	EGA 80x43 / VGA 80x50
	0x<????> 	where <????> is a hexadecimal number for the 
			mode.

 The default command line given in the configuration file can be
 overridden by pressing space,not enter, at the bootup menu and typing 
 another one.

RECOMPILING:
------------

 If you need to recompile Choose-OS (e.g. want a not-compiled-in-by-
 default feature in use), change to the ./sources directory,
 'joe Makefile' to configure it for your needs, 'make depend', and finally
 'make'. The resulting binaries (chos,chos.loader,chos.bsect) will
 be placed in ./bin (and ./utils).


MORE INFORMATION:
-----------------

 ./docs contains loads of information ;)


CREDITS:
--------

 The program was written by 
	Tuomo Valkonen <see: contacting the author>

 Bootsector rewriting feature and Visual Chos by
	Andreas Blome <flower@idbremen.de>

 Showscreen and other stuff by
 	Bernhard Ehlers <behlers@t-online.de>

 A few improvements by
	Don Mahurin <dmahurin@dma.org>

 (See ./docs for a more complete list)


THANKS:
-------

 I wanna thank all the people who have helped me to find bugs and
 who have come up with great improvement ideas. You're all helping me
 to make Choose-OS the ultimate boot loader =-) 


CONTACTING THE AUTHOR:
----------------------

 If you wanna tell me how great/what a piece of shit Choose-OS is
 you can send me some mail to the address below.
 When ya notice a __big bad bug__ or have a good suggestion on 
 improving Choose-OS you will of course send me some mail.
 If ya have made an improvement, good looking background ansi 
 graphics, etc. why don't ya mail it to me to be included in the
 next release so that everyone can benefit of it.

 The address is:

	tuv1@freenet.hut.fi

	(which is these days redirected to <v160370@students.cc.tut.fi>
	 but I think you'll prefer the first one for now until my username
	 is changed (I hope they do that soon ;)).

 One more thing:
	Before asking if Choose-OS is gonna support something, first check
	 sunsite.unc.edu/pub/Linux/system/boot/loaders 
	  (and /pub/Linux/Incoming)
	to see that you have the latest version - it might already support.

