gwr@linus.UUCP (Gordon W. Ross) (02/06/90)
I have recently completed a package that allows boot-time selection of the boot partition. Included also are: an improved "fdisk" clone and some patches for Sys.V/386 to eliminate an unnecessary restriction. I would like to send this package to some interested alpha-testers before I post. Please send mail if you'd like to volunteer. A brief description of the package follows: pfdisk - "Partition Fixed DISK" is a replacement for the "fdisk" program (supplied with DOS and UNIX) providing some new, very useful features: it runs on DOS and UNIX; it can replace the boot program, create any type of partition, does some consistency checking, can save and restore using text or binary format, and can handle large cylinder numbers correctly (unlike the DOS and UNIX fdisk programs). boot-hdp - "BOOT Hard Disk Partition" is a replacement boot program for use in the hard disk primary boot sector. This program allows boot-time selection of the boot partition. The accompanying "pfdisk" program can install this program without modifying the existing partition table. When "boot-hdp" is started (by the BIOS) it prints a message: Booting HD0, and then searches for an active partition. If no partition is marked as active then a menu of partitions is presented. If an active partition was found then a short (2 second) delay ensues during which the user may strike any key to interrupt the boot process and select from the boot menu. If no key is struck before the delay expires then the active partition is used. (This allows for unattended re-boots.) patches for Sys.V/386: I discovered that ESIX (and probably other Sys.V/386 versions) require that the UNIX partition be marked as "active" and don't obey the normal procedures for finding their own partition. This prevented me from setting up my boot-hdp program the way I wanted to, so I patched the second-stage boot sector for UNIX to make it obey the normal procedure for finding its own partition. These "normal procedures" are documented in the boot-hdp source code. patches for MS-DOS 3.3: As many have probably heard, DOS doesn't work correctly with disks having more than 1024 cylinders. This patch makes "IO.SYS" limit the "number-of-cylinders entry in the disk parameter vectors (int 0x41, 0x46 on an AT) to be less than 1024. My current patch will only work on a system having a parameter-override feature in the disk controller BIOS (such as the Adaptec and Western Digital controllers) that puts these parameters somewhere in writable RAM. (This patch is not necessary on most systems.) With all of the above installed, you have the following options: (1) Mark any partition you wish as active and it will be booted from by default (and without any lengthy, user-confusing comments). You can still interrupt the first-stage boot and select a different partition. (2) You can cause the boot menu to always appear by not marking any partition as active (but of course unattended reboot won't work). The source for this stuff comes to about 20 KB total. The "pfdisk" program is in C, using UNIX or DOS (MSC or TC). The "boot-hdp" program is in macro assembler (DOS). An already assembled version (uuencoded) is included for those who lack MASM. Send E-mail to the below address if you're interested in this package. -- Gordon W. Ross / The MITRE Corporation / Bedford, MA 01730 (U.S.A.) internet: gwr@linus.mitre.org uucp: {decvax,philabs}!linus!gwr