Config.Sys Multi-OS Boot

Posted on 2005-04-22
Medium Priority
Last Modified: 2013-12-28
I am developing a boot menu for Win98 that will select between two separate items.

I am using the menu commands in Config.Sys to do this.

I am using menuitem, menucolor, and menudefault.

What I need to do is modify the menu title and possibly add a text description between the title and the first menu item.

How can I do this????

Question by:srodolff
  • 7
  • 4
  • 3
  • +2
LVL 13

Expert Comment

ID: 13844459
It would be helpful to include your existing code.

Author Comment

ID: 13844656
Here it is:




device=himem.sys /testmem:off
device=oakcdrom.sys /D:mscd001

device=himem.sys /testmem:off

LVL 20

Expert Comment

ID: 13844948
-..."What I need to do is modify the menu title and possibly add a text description between the title and the first menu item"

            It's just matter of wording you're going to use in [MENU] section of config.sys file !
You can just edit the line for the item you want to change and alter the words used in menuitem line pertaining to the configuration you want to alter.
for instance to change menuitem line :


to display  word CHANGED instead of SYSTEM , and  DESCRIPTION FOR CHANGED instead of SYSTEM SOFTWARE LOAD
just remove "SYSTEM,SYSTEM SOFTWARE LOAD"  and edit the line to read:


so on next reboot menu options  will display words "CHANGED"  for the bootconfiguration
and "DESCRIPTION FOR CHANGED" as an detailed information ( text description)  for users
*****NOTE !!! **************************************************************************
DONT FORGET TO CHANGE  [SYSTEM] section  to reflect the changes you made in menuitem line you edited e.g.:
[SYSTEM]   section of config.sys file should be reedited to
Of Course the word "changed" I used here is just an example; you can choose your word that better describes boot configuration option you're about to apply to your config.sys file.

good luck
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

LVL 13

Expert Comment

ID: 13844964
I cannot help you with the dual boot code, but I can give you an idea how to organize the existing statements.

Windows/dos expects the following as the first two statements:
device=C:\WINDOWS\himem.sys /testmem:off
STACKS= 9,256 NOT NEEDED  system default
Lastdrive = z  Should be the letter past your last drive letter.
Device = oakcdrom.sys /d:mscd001 Not needed

REMdevice=himem.sys /testmem:off
REMdevice=oakcdrom.sys /D:mscd001

REMdevice=himem.sys /testmem:off  Not needed

Here is a dual boot manager that I use for three master drives. Since I do not use partitions, I have not tried to use it on partitions. http://www.pcworld.com/downloads/file_download/0,fid,22524,fileidx,1,00.asp

LVL 39

Expert Comment

ID: 13850346
LVL 39

Expert Comment

ID: 13850412
To be perfectly honest, I don't really see the purpose of your new menu.

Option 1 = Don't test the reliability of the extended memory but load DOS CD-Driver which isn't needed in a Windows Environment anyway.

Option 2 = Don't test the reliability of the extended memory.

What exactly are you trying to achieve using the new menu options?
LVL 20

Expert Comment

ID: 13851229
(@ BillDL)
I was wondering too why would anybody use different memory configuration via config.sys tweaks .
I know it works perfectly well in MS-DOS ( up to ver. 6.22)
I've just tried to privide the answer to the question asked.
I analised option too and they seem to be unnecesary in Win98 environment . I understoon the config.sys sample just like that an EXAMPLE.
Client might want to do something in plain MS-DOS environment ( who knows).
Question was :HOW TO CHANGE THE "TITLE" AND OPTION DESCRIPTION  ("text description")
And I think my answer does do job.

good luck
LVL 39

Expert Comment

ID: 13852413
Yes, I agree.  Your details answer the question perfectly - and more.
I'm just curious about the configuration settings.  I reckon you are probably right about the alternative Full DOS boot option, given the question title "Config.Sys Multi-OS Boot".

Author Comment

ID: 13868993
Let me clarify.

The boot menu is designed to reload a Ghost image onto a laptop.
That is why I need the CDROM driver so that Ghost 8.0 in DOS mode can see the CD drive where the image is.

I turned of the testmem off because of speed of boot is preferred (I am booting from a bootable CD).

I am purely asking how to change the TITLE of the menu.
The default is "Microsoft Windows 98 Startup Menu"

As the final image is Win XP, I didn't want to confuse the non-techies with any mention of Win 98.

The Microsoft site contains the following page:

If you scroll down to the image, you will notice that the title reads "Brian's Emergency Repair Disk".

How is this done???

BTW, thanks for the helpful suggestions. Sorry I wasn't clear enough.

Author Comment

ID: 13869093
One more point.

I'm using a bootable DVD. As you may know, making a DVD bootable means copying a floppy image onto the boot sector.
Without the CDROM driver, you cannot access the DVD other than the boot sector (Drive A).

The plot thickens......

LVL 39

Expert Comment

ID: 13876500
Are you sure that you aren't referring to the Windows 98 Startup Menu that shows when you press the F8 Key early in the boot process?

If so, then this is the one that runs from the following places:

On a Win98 Boot Floppy:

menuitem=CD, Start computer with CD-ROM support.
menuitem=NOCD, Start computer without CD-ROM support.
menuitem=HELP, View the Help file.


IF "%config%"=="NOCD" GOTO QUIT
IF "%config%"=="HELP" GOTO HELP
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%

IO.SYS on the floppy shows the "Microsoft Windows 98 Startup Menu" title and config.sys loads the menu items.  Autoexec.bat is sent back the choice made from the config.sys menu, and jumps to the appropriate label in the batch file (QUIT, HELP, or just continues the flow) where different configuration settings are pre-set.

In the Windows 98 Boot Process

I am pretty sure that I am correct in saying the order that the system files are processed at boot is:
IO.SYS, WINBOOT.INI (if present), MSDOS.SYS, CONFIG.SYS, COMMAND.COM, AUTOEXEC.BAT, so any additional user-specified entries in msdos.sys will be processes before those in config.sys.

The file C:\IO.SYS (non-editable except in a Hex Editor) loads the "Microsoft Windows 98 Startup Menu" if the F8 key is pressed during boot, OR if the line "BootMenu=1" is detected in the file C:\MSDOS.SYS.  It also detects if any of the following instructions are in MSDOS.SYS, and responds accordingly:

BootMenuDelay=7 (seconds boot menu waits for user input before choosing default option 1)
Bootkeys=1 (show legend along bottom of screen and allow respective keyboard shortcuts)
Logo=0 (don't show Win98 splash logo)

1. Normal
2. Logged (\BOOTLOG.TXT)
3. Safe mode
4. Safe mode with network support
5. Step-by-step confirmation
6. Command prompt only
7. Safe mode command prompt only
8. Previous version of MS-DOS

Option 4 only appears if the line "Network=1" exists in the [Options] section of MSDOS.SYS.

BootKeys=1 Legend:

F5=Safe mode Shift+F5=Command prompt
Shift+F8=Step-by-step confirmation

Depending on the option selected from the Boot menu, the appropriate


So, to answer your question directly, the Menu Title "Microsoft Windows 98 Startup Menu" is contained in the file IO.SYS and you have to know how to use a Hex Editor to modify it.

It actually contains the lines:

Microsoft Windows 98 Startup Menu

Enter a Choice:

and the actual Menu ITEMS are created in between those lines depending on what you set in config.sys.

"Brian's Emergency Repair Disk"
"Microsoft Windows 98 Startup Menu"

Most pieces of advice you will encounter when creating Boot CD's is to avoid any fully-qualified paths to driver files.  In other words, you shouldn't state the drive letter in the path.  Instead you should make it a "relative" path by only specifying the file name relative to the file that is referencing it.

For instance, "Brian's" config.sys file is intended to create a boot FLOPPY, so it's OK (although unnecessary) to specify:

device=a:\bpcddrv.sys /d:bpcddrv$

This points it to the bpcddrv.sys CD-Rom Driver ONLY on the A:\ Drive.

His autoexec.bat specifies this using the path=a:\ line, so when any command is called, it will look at the A:\ drive if the command references a file quoted without a full path.

If you are really serious about creating a bootable CD/DVD, then I suggest that you have a read at the following detailed pages:

http://www.nu2.nu/bootcd/#cdromsi  <------- **

Perhaps THIS is exactly what you are looking for:

Bootable Ghost restore CD-Rom "ELGHOST"
LVL 39

Expert Comment

ID: 13876519
Also read this section:


"..limit Ghost's capabilities so that your users do not have full access to Ghost's features.
You can configure the Ghost edition that is stored on the CD ROM to enable only image file restoration, thus removing the possibility of the end users attempting to use the other functions of Ghost. Edit the license file (ghost.env) like this: ...."
LVL 39

Accepted Solution

BillDL earned 400 total points
ID: 13877635
Other good references:

Scroll down to the section headed "BEGIN FINDDRV.BAT" and then read just above it and then onwards for details on a batch filer that will return the drive letter of the CD-Rom.
Also here:
http://members.ozemail.com.au/~rossstew/drs/sec3.html#bk32 and


Here's a program that seems to be able to modify specific lines in binary files, specifically IO.SYS.
The process discussed on the page is for the creation of a modified boot floppy for forensic purposes, but the program file XCHANGE.EXE is used:


Scroll down to the batch file label  :modify and you will see some references to this.

The program file XChange.exe is included in the download:

Syntax for Xchange.exe:

XCHANGE [/i] fspec "[srchstrng][^[x]chr,][...]" ["[replstrng][^[x]chr,][...]"]

XCHANGE [/i] fspec @scriptfil   or   XCHANGE [/i] fspec "srchspec" @imagefil

Switch /i = ignore case (can be in any parameter position)

chr = ASCII.
Search and replace strings can be any combination of literals and ^-prefixed, comma-delimited ASCII codes (^0 through ^255 or ^x00 through ^xFF).  Double-up a literal ^ or , within a string. Quotes may be omitted if there are no spaces within strings.
Script file has quoted search and replace string specs on one line; script or image file 65,534 chars max; search string 4,095 chars max.
ZIP file embedded path change must include highest embedded directory level, and each altered ZIP file must be fixed with PKWare's PKZIPFIX before use.
For ZIP modification to work, the first zipped file must have the sought path.

Echoes "Changed" or "Not Changed" to visually indicate outcome.
Return errorlevels:
0 = changed,
1 = not changed
2 = unable to rewrite/del
3 = syntax or memory error
4 = file not found
5 = error during read/write
6 = insufficient disk space
7 = read-only file
8 = write-protected.

When wildcards are used, highest level for the file group is returned.

Phew, that's a mish-mash, so going back to the batch file detailed on the above page, here's the explanation by the author (edited in reference to io.sys only and showing respective command lines):

1. io.sys is copied to io.fbd

attrib -h -r -s io.sys
xcopy io.sys io.fbd

2. All incidences of "C:\" are changed to "A:\", instances of ".bin" and ".ini" are changed to ".xyz", and "Starting Windows 9x" is changed to "Booting Forensic OS":
Xchange /i  io.FBD C:\ A:\
Xchange /i  io.FBD .bin .xyz
Xchange %1:\io.FBD "Starting Windows 95" "Booting Forensic OS"

3. Test if modifications worked using the program file SEEK.EXE also included in the download:

seek io.FBD C:\
if errorlevel 1 echo *** modification did not work ***
seek io.FBD "Starting Windows 98"
if errorlevel 1 echo *** modification did not work ***

4. If successful, now overwrite io.sys with the modified file io.FBD using the program OCopy.exe (also included in the download.  This program overwrites the existing file using the same storage allocation rather than normal DOS COPY which deletes any existing file of the target name and re-creates the file in a new storage area):

ocopy io.FBD io.sys
:: Test for success
if errorlevel 1 echo *** file overwrite of io.sys failed ***

5. Cleanup

attrib +r +s +h io.sys
if exist io.FBD del io.FBD

OK, so I've just made a copy of my C:\IO.SYS file to a folder containing XCHANGE.EXE and OCOPY.EXE, and then run the following batch file from the same folder (In a DOS Window - not FULL DOS):

@echo off
attrib -h -r -s io.sys
xcopy io.sys io.fbd
Xchange io.FBD "  Microsoft Windows 98 Startup Menu" "  Microsoft Windows 98 Startup Menu"
ocopy io.FBD io.sys
attrib +r +s +h io.sys
if exist io.FBD del io.FBD

This has successfully changed the menu Title from "Microsoft Windows 98 Startup Menu" to "Microsuck Windows 98 Screwup Menu".

NOTE:  As this title appears in IO.SYS, it seems to have 2 leading blank spaces, so I have included them in the text strings above.

I have deliberately matched the number of characters because I fear that changing this MIGHT alter the file and corrupt it.

Here goes, wish me luck :-)

Author Comment

ID: 13877883


IO.SYS is the answer that I was looking for. I changed 98 to XP (not as creative as you....lol) and it worked like a charm.


And Boy! You worked overtime of this one........double points for you!!

LVL 20

Expert Comment

ID: 13877969
Congrats , BillDL!
I've been messing arround with my WIn98 laptop to figure it out where "Microsoft Windows 98 Startup Menu" string is located and where is it called from .
You gave us a good lesson about bootstrap process in WIn98.
Nice job!
Thank you!

LVL 39

Expert Comment

ID: 13878318
Thank you, srodolff and nedvis.

**** WARNING ****

I edited my IO.SYS on a friend's Windows 98se boot floppy a long while ago for a laugh (new colours, and a filthy greeting), but I now recall that there was one problem that I encountered while doing this in a hex editor.

I've just been messing with my C:\IO.SYS file (not recommended but I made a backup I was easily able to reistate from DOS again) and the same old problem reared its head.

IF you make the Menu Title with any more or any less characters than the original "Microsoft Windows 98 Startup Menu", IO.SYS will NOT load.

More characters and you get a strange dark red screen with a large border.
Less characters and it freezes at the cursor with no other screen output.

I've just decided to leave mine with:
"Microspoof Windows 98 SE Options:"
rather than reboot to DOS for the 10th time  :-)


Expert Comment

ID: 13903545
I like to watch.

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever visit a website where you spotted a really cool looking Font, yet couldn't figure out which font family it belonged to, or how to get a copy of it for your own use? This article explains the process of doing exactly that, as well as showing how…
IF you are either unfamiliar with rootkits, or want to know more about them, read on ....
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…
Suggested Courses

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question