This is originally posted to minix/main board at Nikkei-mix, commercial
BBS, in Japan.  I'll post here under the permission of the original author
and authority of mix.  Translation is made by nemossan@uitec.ac.jp

============================================================================
How to use MXboot's menu and comparison of boot-strap loaders

								k.h@mix

MXboot system, devised by takamiti@mix, provides following four-menus,

	a)	selection of partition to boot on the First Hard-Disk-Drive
	b)	selection of partition to boot on the Second HDD
	c)	selection of boot-image file
	d)	system menu of the minix system (tools/menu)

Followings are the introduction of our (k.h@mix,saeko@mix == Kouichi & Saeko
HIRABASHI) experiences why these menu are necessary.


1)  to boot-up from the Second Hard Disk Drive
    We have  Toshiba Desk-top machine,  J3300 80386-machine, and  we  placed
minix-1.5.10 on the Second Hard-Disk Drive on the third and fouth partition,
/dev/hd8 and /dev/hd9  respectively,  and  the fourth partition  is the root
file system.   In the IBM-PC compatible machines,  booting may be restricted
only from the first drive,  and if we try to boot up from the  Second Drive,
sytem  gives  the  message   "You can boot-up  only  from the  First Drive".
This is the same for all OSs  including  MS-DOS and UX/386  (Toshiba's  Unix
implementation on J3300). Thus we had to boot minix-1.5.10 from floppy-disk.
Today, we can boot-up minix from second HDD, by the following procedure;

	At the time of power-ON or system-reset by <Ctrl>+<Alt>+<Del>,
	press <Shift>-key to show boot-menu, and select "0"-partition,
	which means the selection of the Second-HDD.   Then select "4"
	to boot-up minix-1.5.10, which means  /dev/hd9  is selected as
	root file system.  Of course, /dev/hd9 has been written MXboot
	and /sysstem/minix.sys.


2)  Boot up the system which has only External-SCSI-HDD
    My minix386  works  on the  J3100-SGT-101 (386-based laptop)  and  J3300
without any modification.   This J3100SGT101 has  no free space  on internal
HDD,   because  it  contains  several OSs  including  _normal_ minix-1.5.10.
Before adopting MXboot,  I  had to boot-up minix386  from  floppy-disk,  and
then size of boot-image of minix386 amounts several hundreds of KBytes, thus
it took long time for booting.  After MXboot, we can boot-up from HDD as the
following process;

	Minix386,  which uses  external SCSI-disk  is booted from  the
	File system of minix-1.5.10, put on the internal disk, I mean,
	both boot-images  for  minix-1.5.10 (minix.sys)  and  minix386
	(mx386.sys) are put on the same partition of the internal-HDD.

	And, at the start-up,  pressing <shift>-key, we can select the
	partition number for minix-1.5.10, then press <Shift>+<Return>
	to  input  the  file-name  of  the  core-image.   And  specify
	mx386.sys, then  we'll see  "Booting .." message on the top of
	the screen,then press <Shift> to show minix-menu (tools/menu).

	Then we can select root-partition of the external SCSI-disk in
	this menu, and press <=>,  which is the same process as booted
	from  foloppy.  Thus,  all processes  can be  done on  HDD  to
	boot-up minix386.At the time of making core-image of minix386,
	don't forget to specify  -DINTEL_32BITS  in  makefile.  I have
	forgotten to specify this definition, and I've bug-reported to
	takamiti@mix by this mistake.  :-o

    In my machine,  external-disk  also contains  several versions of minix,
so I use every time to select them through /tools/menu,  but  if you want to
fixed one version,  it may be better  to fix  that  partition  modifying the
menu-program.

    And, further,  this system  can boot-up  other OSs through minix'es file
sytetem,I mean, minix is the main OS and via minix we can boot-up other OSs.



3)  Booting other OSs directly
    Both machines,  J3100SGT101-laptop and  J3300-desktop, can be used under
UX/386 Toshiba's implementation of Unix OS.  This  UX/386 can be boot-up via
MXboot-package (assitIPL) pressing <Shift> key  at the boot-time, and speci-
fying the partition for UX/386.

    Toshiba's recommendation to select OSs is as follows;
	To switch from MS-DOS to UX/386:
	    Hdisk.exe  on MS-DOS   should  be  used  to specify  boot-
	    indicater to UX/386
	To switch from UX/386 to MS-DOS:
	    Start fdisk on  Ux/386 and modify boot-indicater to MS-DOS
    and re-booting the machine is always required  after modifying the
    boot-indicator.

While this program, MXboot, can select boot-partion at the time of booting.



    According to my opinion, this boot-strap-loader should become the world-
wide starndard.  There were  several methods how to boot-up minix from Hard-
disk.
    The followings are the simplified explanation of them;
	a)	Prepare a partition to be used only for boot-strapping.
	b)	Core-image of the boot-diskette will be placed onto the
		minix-partition.
	c)	implement boot-program in the BOOT-sector of the minix-
		file-sytem.
    a) is  a method  to put  a shorter boot-strap-loader  and core-image  of
kernel is put on the specific partition,  and the simplest method,  which is
used by
------------------------------------------------------------------------
>	From: jmp@sobeco.com (j.pigeon)
>	Subject: Small Boot Package from Rigid Disk
>	Summary: This is a package to setup a booting hard_disk.
>	Keywords: IBM_PC, Hard Disk Boot
>	Message-ID: <1991May7.013515.14634@sobeco.com>
>	Date: 7 May 91 01:35:15 GMT
------------------------------------------------------------------------

This  is  convenient  because  boot-indicator  of the partition table of HDD
and original IPLoader  can be used, which is available in IBM-PCs.  But this
method sarifices one precious partiton for booting.


    b) specifies some area of a file system  where wini.c cannot access, and
put  core-image  of  the  kernel  at that place,  and  use it  at boot-time.
Historically,  this method  may be the first one appeared,  may be  affected
from the traditional "boot-diskette".  There are some systems which utilizes
this method,  including past  NEC-PC9801-system.   This  method  wastes less
partition table comparing with the method-a), but independency of the system
is low, and lacks flexibility.


    c)  places  the boot-strap-code  in  the reserved (1kB) area  of  minix,
namely Boot-block,  and  this is traditional method  in UNIX.  Usually  this
program  reads  the core-image of the kernel,  and  pass the control  to it,
and  usaualy file-name of the core-image-file  is  easily  changed  to test/
exchange  the  kernel-core-image file.   This program  requires  file-system
knowledgements.

    The last (c) method  is very flexible one  but  rather difficult  to  be
realized.   First implementation of this method is made by "shoelace".   But
shoelace gave up to limits its code size within 1-kB, and boot-up the system
by two-steps.  These are as follows;

	A) WiniBoot:
		This corresponds to the assistIPL of MXboot, and reads
		top of the HD-sector  into  the  address 0x7c00 of the
		memory, then executes.  After start of the program, it
		waits  15-seconds  to  input  boot-partition,  and  if
		no-keyin, it reads first-sector of the partition where
		boot-indicator-flag is set and loads it to the address
		0x7c00 of the memory and control passes there.
	B) BootLace
		This bootlace  and the following shoelace  corresponds
		to the MXboot in this system.   In case of the MXboot,
		all-codes  are made up  within 1-kB,  but  in shoelace
		this is divided into two part. BootLace is placed onto
		the Boot block  of  the file system,   and  will  find
		ShoeLace file as a normal minix file,  and loads it to
		the address 0x10000, and pass the control there.
	C) ShoeLace
		This is the main body  of boot-strap, and this has the
		function to load the core-image of the kernel, dynamic
		kernel configuration via /etc/config file,  as well as
		it can execute   cat, ls, fsck and command-interpreter
		for bootstrapping, etc etc....  in short, this is very
		big system.

Moreover,  ShoeLace system  has data base of  /etc/disktab, LaceUp parameter
setup program.   This  provides  complete document and full functions,  thus
it made worldwide fan.  Dynamic kernel configuration  is the best feature of
the shoelace,  and it utilizes the function of  tools/build at the execution
time.
