You are on page 1of 18

Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.

html

FREE THOUGHT — FREE SOFTWARE — FREE WORLD

« Fetch Feed Subscribers from Google Reader with CURLSkeleton .htaccess file for Powweb Hosting »

Custom Boot Menu in Windows XP


One of the first things that I do upon receiving a new Windows computer is I create my own custom boot menu that shows up every
time I boot my machine.

This is especially handy when you suspect a virus or a failed installation that corrupted your registry; you can reboot into safe mode and
scan for it. It is easy to create a custom boot menu for yourself, and it is so worth it.
Jump ahead: 1, 2, 3, 4, 5, 6, 7, 8, 9

Some handy links to help you navigate this page:


≈ 8-17-09 Update
≈ Install Recovery Console as boot menu option
≈ Configure Automatic Administrator Logon for Recovery Console
≈ Create Custom Boot Menu
≈ Example boot.ini (mine)
≈ Using the BOOTCFG command
≈ My bootcfg results
≈ Accessing the safe mode advanced boot menu
≈ If you can’t boot windows or recovery console after you edit the boot.ini
≈ How to Hide Boot.ini Entries from Displaying
≈ Additional Info and Links
≈ Boot.ini Switches

8-17-09 Update
Here’s a useful windows batch script that removes the non-editable attributes, creates a backup copy, opens notepad to edit boot.ini,
and when notepad is closed it re-attribs the data.

Save it in path like eboot.bat

@ECHO OFF && mode CON COLS=150 LINES=60 && color 0F && cls && setlocal
if NOT DEFINED USERNAME exit /B && if /i NOT "%USERNAME%" == "life" ( if NOT "%USERNAME%" == "administrator" exit

set BF=%SYSTEMDRIVE%\boot.ini
title Editing Boot.ini
attrib -H -R -S -A "%BF%"
attrib -H -R -A "%BF%.bak" && type "%BF%" >> "%BF%.bak" && attrib +H +R +A "%BF%.bak"
start /b /wait notepad "%BF%"
attrib +H +R +S +A "%BF%"

1 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

Windows NT has found only %dK of low memory. 512k of low memory
is required to run Windows NT. You may need to upgrade your
computer or run a configuration program provided by the manufacturer.
Windows NT has not found enough extended memory. 7Mb of extended
memory is required to run Windows NT. You may need to upgrade your
computer or run a configuration program provided by the manufacturer.
Memory Map:
%lx - %lx
NTLDR is corrupt. The system cannot boot.
NTLDR is corrupt. The system cannot boot.
ax:%x dx:%x cx:%x bx:%x es:%x
TRAP %lx
DEBUG TRAP
================== DOUBLE FAULT ================================
===== STACK SEGMENT OVERRUN or NOT PRESENT FAULT ===============
============== GENERAL PROTECTION FAULT ========================
=================== PAGE FAULT =================================
** At linear address %lx
===================== EXCEPTION ================================
tr=%x cr0=%lx cr2=%lx cr3=%lx
gdt limit=%x base=%lx idt limit=%x base=%lx
cs:eip=%x:%lx ss:esp=%x:%lx errcode=%x
eax=%lx ebx=%lx ecx=%lx edx=%lx
ds=%x es=%x
edi=%lx esi=%lx ebp=%lx cr0=%lx
fs=%x gs=%x
flags=%lx
IntDis
TrapEn
TrapDis
Link %x
Esp0 %x
SS0 %x
Esp1 %lx
Cr3 %lx
Eip %lx
Eflg %lx
Eax %lx
Ebx %lx
Ecx %lx
Edx %lx
Esp %lx
Ebp %lx
Esi %lx
Edi %lx
ES %x
CS %x
SS %x
DS %x
FS %x
GS %x
Ldt %x
!This program cannot be run in DOS mode.
`PAGELK
`.rdata
PAGEDATA
PAGECONS
INITCONS

NOLEGACY
\ntdetect.com
ntdetect.com
\i386\ntdetect.com
InitializeMemory failed %lx
multi(0)disk(0)rdisk(0)partition(1)
multi(0)disk(0)rdisk(0)partition(%u)
Rebooting in 5 seconds...
Couldn't initialize I/O
Couldn't initialize memory
Couldn't allocate memory for TSS
Couldn't allocate memory for PCR
multi(0)disk(0)rdisk(0)partition(0)
multi(0)disk(0)cdrom(%u)
ramdisk(0)
multi(0)disk(0)fdisk(0)
*** Assertion failed %s in %s line %d
LoaderMemoryData descriptor!
ERROR - FwAllocateHeapPermanent couldn't find the
Out of permanent heap!
Out of temporary heap!
GDT - %lx (%x) IDT - %lx (%x)
ERROR - GDT and IDT are not contiguous!
ERROR - MempSetupPaging(%lx, %lx) failed
MempSetDescriptorRegion failed %lx

2 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

Install Recovery Console as boot menu option

(http://uploads.askapache.com/2007/08/boot-menu-recovery-console.png) You
definately should install the Recovery Console as a boot option in case you experience any problems later. The Recovery Console
lets you repair a damaged or non-booting windows installation.

Log in as administrator, insert the Windows XP Setup CD into your CD-ROM drive.
Go to Start->Run->
Type D:\i386\winnt32.exe /cmdcons where D:\ is CD-ROM drive
Reboot.

Configure Automatic Administrator Logon for Recovery Console

Complete the following steps while logged on with administrative credentials:

Go to Start->Run->
Type %SystemRoot%\system32\secpol.msc /s
Click Local Policies, and then click Security Options.
Double-click the Recovery Console: Allow automatic administrative logon policy, and set it to Enabled.
From now on when you start Recovery Console, you are not prompted for a password!

To see the commands available on the Recovery Console, type help from within the Recovery Console. If your computer will not
start, you can run the Recovery Console from the Setup CD.

Make Recovery Console more Powerful:(http://support.microsoft.com/kb/310497/) – How to add more power to Recovery Console by
using Group Policy in Windows XP Professional

NOTE: Now we are ready to create our custom boot menu configuration file.. Be very cautious when editing your boot.ini file as a
mistake can disable your computer from booting!

Create Custom Boot Menu

First we allow access to the file that controls the boot menu using attrib , then we create a backup of the original boot.ini , next
we edit the boot.ini file, and finally we reset the access on the file.

Go to Start->Run->
Type %COMSPEC% /K "cd %SYSTEMDRIVE%\"
Type attrib -H -S -A -R boot.ini
Type copy boot.ini boot-orig.ini
Type notepad boot.ini and edit the file, be sure to change the timeout from 30 to anything else.
When finished editing, close notepad and return to the command shell.
Type attrib +S +H +A +R boot.ini to return the boot.ini file attributes to normal.
Type bootcfg /Query to check your boot.ini file for errors.
Reboot and check out your new custom boot menu!

Example boot.ini (mine)

3 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

[boot loader]
timeout=24
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Pro Normal" /fastdetect /noexecute=optin /numproc=2
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Mode" /safeboot:minimal /sos /bootlog /noguiboot
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Mode Networking" /safeboot:network /sos /bootlog /noguiboot
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Mode CMD Prompt" /safeboot:minimal(alternateshell) /sos /bootlog
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Pro Debug" /debug /sos /basevideo /noguiboot /bootlog
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons

Description of boot.ini
The timeout variable specifies how long Windows waits before choosing the default operating system.
The default variable specifies the default operating system.
The term scsi(0) means that the primary controller (that is frequently the only controller) is responsible for the device. If there are two
SCSI controllers, and the disk is associated with the second controller, the controller is named scsi(1). If the system uses IDE,
enhanced IDE (EIDE), or Enhanced Small Device Interface (ESDI) drives, or if the system uses a SCSI adapter that does not have a
built-in BIOS, replace scsi with multi.

The term disk(0) refers to the SCSI logical unit (LUN) to use. This may be a separate disk, but most SCSI setups have only one LUN
for each SCSI ID.
The term rdisk(0) refers to physical disk 1.
The term partition(1) is the partition on the first drive in the computer. If there are two partitions, partition C is partition(1) and partition D
is partition(2).
A multi-boot parameter calls for checking the Winnt folder to start from a specified SCSI controller’s disk and partition.
/NODEBUG specifies that no debugging information is being monitored. Debugging information is useful only for developers.
You can add the /SOS option to display driver names while the drivers are being loaded. By default, the OS Loader screen only shows
progress dots.
Previous Operating System on C:\ implies that the previous operating system is MS-DOS, because C:\ is an MS-DOS path.

Available switch options for the boot.ini file


/basevideo
/baudrate=number
/crashdebug
/debug
/debugport=comnumber
/maxmem=number
/noguiboot
/nodebug
/numproc=number
/pcilock
/fastdetect:comnumber
/sos
/PAE
/HAL=filename
/kernel=filename
/bootlog
/burnmemory=number
/3GB
/safeboot:
/NoSerialMice
/userva
/redirect
/channel
NOTE: More detailed info on page 2

Using the BOOTCFG command

This command line tool can be used to configure, query, change or delete the boot entry settings in the BOOT.INI file.

4 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

BOOTCFG /parameter [arguments] –

Parameter List
/Copy Makes a copy of an existing boot entry [operating systems] section for which you can add OS options to.
/Delete Deletes an existing boot entry in the [operating systems] section of the BOOT.INI file. You must specify the entry# to delete.
/Query Displays the current boot entries and their settings.
/Raw Allows the user to specify any switch options to be added for a specified boot entry.
/Timeout Allows the user to change the Timeout value.
/Default Allows the user to change the Default boot entry.
/EMS Allows the user to configure the /redirect switch for headless support for a boot entry.
/Debug Allows the user to specify the port and baudrate for remote debugging for a specified boot entry.
/Addsw Allows the user to add predefined switches for a specific boot entry.
/Rmsw Allows the user to remove predefined switches for a specific boot entry.
/Dbg1394 Allows the user to configure 1394 port debugging for a specified boot entry.
/? Displays this help/usage.

Examples

BOOTCFG /Copy /?
BOOTCFG /Delete /?
BOOTCFG /Query /?
BOOTCFG /Raw /?
BOOTCFG /Timeout /?
BOOTCFG /EMS /?
BOOTCFG /Debug /?
BOOTCFG /Addsw /?
BOOTCFG /Rmsw /?
BOOTCFG /Dbg1394 /?
BOOTCFG /Default /?
BOOTCFG /?

BOOTCFG parameters
/s Computer Specifies the name or IP address of a remote computer (do not use backslashes). The default is the local computer.
/u Domain\User Runs the command with the account permissions of the user specified by User or Domain\User. The default is the
permissions of the current logged on user on the computer issuing the command.
/p Password Specifies the password of the user account that is specified in the /u parameter.
/id OSEntryLineNum Specifies the operating system entry line number in the [operating systems] section of the Boot.ini file to which
the operating system load options are added. The first line after the [operating systems] section header is 1.

My bootcfg results

5 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

C:\>bootcfg /Query

Boot Loader Settings


--------------------
timeout: 24
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
------------
Boot entry ID: 1
Friendly Name: "XP Pro Normal"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /noexecute=optin /numproc=2

Boot entry ID: 2


Friendly Name: "Safe Mode"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /safeboot:minimal /sos /bootlog /noguiboot

Boot entry ID: 3


Friendly Name: "Safe Mode Networking"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /safeboot:network /sos /bootlog /noguiboot

Boot entry ID: 4


Friendly Name: "Safe Mode CMD Prompt"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /safeboot:minimal(alternateshell) /sos /bootlog /noguiboot

Boot entry ID: 5


Friendly Name: "XP Pro Debug"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /debug /sos /basevideo /noguiboot /bootlog

Boot entry ID: 6


Friendly Name: "Microsoft Windows Recovery Console"
Path: C:\CMDCONS\BOOTSECT.DAT
OS Load Options: /cmdcons

Accessing the safe mode advanced boot menu

(http://uploads.askapache.com/2007/08/boot-menu-1.jpg)

Remove all floppy disks and CDs from your computer, and restart your computer.

Press F8 when prompted.

6 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

(http://uploads.askapache.com/2007/08/boot-xp-startup.jpg) NOTE: If Windows XP


Professional starts without displaying the menu shown above, restart your computer. Press F8 after the firmware POST process
completes but before Windows XP displays graphical output like the image on the right.

If you can’t boot windows or recovery console after you edit the boot.ini

Start the computer from the Windows XP CD, start the Recovery Console, and then use the Bootcfg.exe tool to rebuild the Boot.ini file.
To do this, follow these steps:

Configure the computers bios to boot from the CD-ROM or DVD-ROM drive.
Insert the Windows XP CD-ROM into your CD-ROM or DVD-ROM drive, and then restart your computer.
When you receive the “Press any key to boot from CD” message, press a key to start your computer from the Windows XP CD-ROM.
When you receive the “Welcome to Setup” message, press R to start the Recovery Console.
If you have a dual-boot or multiple-boot computer, select the installation that you have to use from the Recovery Console.
When you are prompted, type the administrator password, and then press ENTER.
At the command prompt, type bootcfg /list, and then press ENTER. The entries in your current Boot.ini file appear on the screen.
At the command prompt, type bootcfg /rebuild, and then press ENTER. This command scans the hard disks of the computer for
Windows XP, Microsoft Windows 2000, or Microsoft Windows NT installations, and then displays the results. Follow the instructions that
appear on the screen to add the Windows installations to the Boot.ini file. For example, follow these steps to add a Windows XP
installation to the Boot.ini file:
When you receive a message that is similar to the following message, press Y:

Total Identified Windows Installs: 1

[1] C:\Windows
Add installation to boot list? (Yes/No/All)

You receive a message that is similar to the following message: Enter Load Identifier
This is the name of the operating system. When you receive this message, type the name of your operating system, and then press
ENTER. This is either Microsoft Windows XP Professional or Microsoft Windows XP Home Edition.
You receive a message that is similar to the following:
Enter OS Load options
When you receive this message, type /fastdetect, and then press ENTER.
NOTE: The instructions that appear on your screen may be different, depending on the configuration of your computer.

Type exit, and then press ENTER to quit Recovery Console. Your computer restarts, and the updated boot list appears when you
receive the “Please select the operating system to start” message.

How to Hide Boot.ini Entries from Displaying

You can hide additional installations of Windows from being displayed in the boot menu, but still gain access to them when you need to.

To hide menu items from the Boot.ini file, so they will not be accessible:

Remove the read-only attribute from the Boot.ini file.


Use an editor to edit the Boot.ini file.
Place the following entry above the lines you want hidden:

[any text].
This will hide all entries below the [any text] heading.

7 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

To restore the entry and make it accessible again, remove the [any text] line.
Save the file and reapply the read-only attribute.
Restart your computer.

For example, the 3 bottom entries below will not be displayed or accessible the next time the system is restarted. Simply remove [any
text] to gain access to this installation.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\NT351SVR
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\NT351SVR="NT Server 3.51"
multi(0)disk(0)rdisk(0)partition(1)\NT351SVR="NT Server 3.51 [VGA mode]" /basevideo /sos
[any text]
multi(0)disk(0)rdisk(0)partition(1)\WINNT35="NT Wks 3.51"
multi(0)disk(0)rdisk(0)partition(1)\WINNT35="NT Wks 3.51 [VGA mode]" /basevideo /sos
C:\="MS-DOS"

Additional Info and Links

Troubleshooting the Startup Process(http://technet.microsoft.com/en-us/library/bb457123.aspx)


Download Debugging Tools for Windows – Overview(http://www.microsoft.com/whdc/devtools/debugging/default.mspx)
How to set up a remote debug session using a null modem cable(http://support.microsoft.com/kb/151981/?FR=1)
Set Up Remote Debugging on Windows XP with SP2(http://msdn2.microsoft.com/en-us/library/ms997643.aspx)
HOW TO: Edit the Boot.ini file in Windows 2000(http://support.microsoft.com/kb/311578/)
Available switch options for the Boot.ini file(http://support.microsoft.com/default.aspx?scid=kb;en-us;833722&FR=1&PA=1&SD=HSCH)
Safe-Mode boot switches for Windows Boot.ini file(http://support.microsoft.com/kb/239780/)
Information on application use of 4GT RAM tuning(http://support.microsoft.com/kb/171793/)
XGEN: Exchange 2000 requires /3GB switch with more than 1 gigabyte of physical ram(http://support.microsoft.com/kb/266096/)
Purpose of the Boot.ini file in Windows 2000 or Windows NT(http://support.microsoft.com/kb/99743/)
How to disable detection of devices on serial ports(http://support.microsoft.com/kb/131976/)
MAXMEM option in Windows NT Boot.ini file(http://support.microsoft.com/kb/108393/)
Setting up for remote debugging(http://support.microsoft.com/kb/121543/)
How to set up a remote debug session using a modem(http://support.microsoft.com/kb/148954/)
How to set up a remote debug session using a null modem cable(http://support.microsoft.com/kb/151981/)
Boot.ini and ARC path naming conventions and usage(http://support.microsoft.com/kb/102873/)

Boot.ini Switches
You can add many different switches to the Boot.ini file that will modify the way that Microsoft Windows starts.

/basevideo The /basevideo switch forces the system into standard 640×480 16-color VGA mode by using a video driver that is
compatible with any video adapter. This switch permits the system to load if you select the wrong video resolution or the wrong refresh
rate. Use this switch in conjunction with the /sos switch. If you install a new video driver, and it does not work correctly, you can select
the Windows 2000 entry with this switch to start the computer and to change to a different driver.
/baudrate=number This switch sets the baud rate of the debug port that is used for kernel debugging. The default baud rate is 9600
kilobits per second (Kbps) if a modem is attached. The default baud rate is 19200 Kbps for a null-modem cable. 9,600 is the normal rate
for remote debugging over a modem. For example, type /baudrate=9600 to specify a baud rate of 9600. If this switch is in the Boot.ini
file, the /debug switch is automatically enabled.
/crashdebug This switch turns on the COM port for debugging when Windows 2000 crashes. /crashdebug is useful if you experience
random kernel errors. With this switch, you can use the COM port for normal operations while Windows is running. If Windows crashes,
the switch converts the port to a debug port. (This action turns on remote debugging.)
/debug This switch turns on the kernel debugger when you start Windows. The switch can be activated at any time by a host debugger
that is connected to the computer, if you want to turn on live remote debugging of a Windows system through the COM ports. Unlike the
/crashdebug switch, /debug uses the COM port whether you are debugging or not. Use this switch when you are debugging problems
that are reproducible.
/debugport=comnumber This switch specifies the communications port to use for the debug port, where number is the
communications port, such as COM1, that you want to use. For example, type /debugport=com1, where the com port is COM1. By
default, /debugport uses COM2 if it exists. Otherwise, the switch uses COM1. If you include this switch in the Boot.ini file, the /debug
switch becomes active.
/maxmem=number This switch specifies the maximum amount of RAM that Windows can use. Do not make this setting less than 12.
Use this parameter to confirm whether a memory chip is faulty.
/nodebug This switch turns off debugging. This switch can cause a Stop error if a program has a debug hardcoded breakpoint in its
software.
/numproc=number This switch sets the number of processors that Windows will run at startup. With this switch, you can force a

8 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

multiprocessor system to use only the quantity of processors (number) that you specify. This switch can help you troubleshoot
performance problems and defective CPUs.
/pcilock For x86-based systems, this switch stops the operating system from dynamically assigning hardware input, hardware output,
and interrupt request resources to Peripheral Connect Interface (PCI) devices. With this switch, the BIOS configures the devices.
NOTE: In earlier versions of Windows, including Windows NT 4.0, this switch was named /noserialmice.
/fastdetect:comnumber This switch turns off serial and bus mouse detection in the Ntdetect.com file for the specified port. Use this
switch if you have a component other than a mouse that is attached to a serial port during the startup process. For example, type
/fastdetect:comnumber, where number is the number of the serial port. Ports may be separated with commas to turn off more than one
port. If you use /fastdetect, and you do not specify a communications port, serial mouse detection is turned off on all communications
ports.
This switch is also used with uninterruptible power supplies (UPS), such as those supplies from American Power Conversion brand
(APC), that connect to a serial port. If this switch is not available when Windows starts, and Windows tries to detect a mouse on this
port, the UPS incorrectly starts its shutdown mode. NOTE: In earlier versions of Windows, including Windows NT 4.0, this switch was
named /noserialmice.
/sos The /sos switch displays the device driver names while they are being loaded. By default, the Windows Loader screen only
echoes progress dots. Use this switch with the /basevideo switch to determine the driver that is triggering a failure.
/PAE Use the /PAE switch with the corresponding entry in Boot.ini to permit a computer that supports physical address extension (PAE)
mode to start normally. In Safe Mode, the computer starts by using normal kernels, even if the /PAE switch is specified.
/HAL=filename With this switch, you can define the actual hardware abstraction layer (HAL) that is loaded at startup. For example,
type /HAL=halmps.dll to load the Halmps.dll in the System32 folder. This switch is useful to try out a different HAL before you rename
the file to Hal.dll. This switch is also useful when you want to try to switch between starting in multiprocessor mode and starting in single
processor mode. To do this, use this switch with the /kernel switch.
/kernel=filename With this switch, you can define the actual kernel that is loaded at startup. For example, type
/kernel=ntkrnlmp.exe to load the Ntkrnlmp.exe file in the System32 folder. With this switch, you can switch between a debug-enabled
kernel that is full of debugging code and a regular kernel.
/bootlog This switch turns on boot logging to a file that is named systemroot\Ntbtlog.txt. For more information about boot logging, see
Windows Help.
/burnmemory=number This switch specifies the amount of memory, in megabytes, that Windows cannot use. Use this parameter to
confirm a performance problem or other problems that are related to RAM depletion. For example, type /burnmemory=128 to reduce the
physical memory that is available to Windows by 128 MB.
/3GB With this switch, user mode programs can access 3 GB of memory instead of the usual 2 GB that Windows allocates to user
mode programs. The switch moves the starting point of kernel memory to 3 GB. This switch is used only with Windows 2000 Server
Enterprise Edition. Some configurations of Microsoft Exchange Server 2000 and Microsoft Windows 2000 Advanced Server may require
this switch.
/safeboot: This switch causes Windows to start in Safe Mode. This switch uses the following parameters:
/safeboot:minimal/sos/bootlog/noguiboot This switch starts Windows in Safe Mode.
/safeboot:network/sos/bootlog/noguiboot This switch starts Windows in Safe Mode with networking.
/safeboot:minimal(alternateshell)/sos/bootlog/noguiboot This switch starts Windows in Safe Mode with a command
prompt.
/safeboot:dsrepair/sos On domain controllers only, this switch starts Windows in Directory Services Restore Mode.
NOTE: The /sos,/bootlog, and/noguiboot switches are not required with any one of these settings, but the switches can help with
troubleshooting. These switches are included if you press F8 and then select one of the modes.
/userva Use this switch to customize the amount of memory that is allocated to processes when you use the /3GB switch. This switch
permits more page table entry (PTE) kernel memory but still maintains almost 3 GB of process memory space. NOTE: Microsoft Product
Support Services strongly recommends using a range of memory for the /USERVA switch that lies within the range of 2900-3030. This
range is wide enough to provide a large enough pool of system page table entries for all currently observed issues. Usually a setting of
/userva=2900 will provide close to the maximum available number of system page table entries possible.
/redirect Use this switch to turn on Emergency Management Services (EMS) on a Windows Server 2003, Enterprise Edition-based
computer. For additional information about EMS, search on “Emergency Management Services” in Windows Help and Support.

BOOTCFG addsw

Adds operating system load options for a specified operating system entry.

BOOTCFG /addsw [/s Computer [/u Domain\User /p Password]] [/mm MaximumRAM] [/bv] [/so] [/ng] /id
OSEntryLineNum

Parameters

/mm MaximumRAM Adds the /maxmem switch to the specified OSEntryLineNum and sets the maximum amount of RAM that the
operating system can use.
/bv Adds the /basevideo switch to the specified OSEntryLineNum, directing the operating system to use standard VGA mode for the
installed video driver.
/so Adds the /sos switch to the specified OSEntryLineNum, directing the operating system to display device driver names while they
are being loaded.
/ng Adds the /noguiboot switch to the specified OSEntryLineNum, disabling the Windows XP Professional progress bar that appears

9 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

before the CTRL+ALT+DEL logon prompt.

Examples

BOOTCFG /addsw /mm 64 /id 2


BOOTCFG /addsw /so /id 3
BOOTCFG /addsw /so /ng /s srvmain /u hiropln /id 2
BOOTCFG /addsw /ng /id 2
BOOTCFG /addsw /mm 96 /ng /s srvmain /u maindom\hiropln /p p@ssW23 /id 2

BOOTCFG copy

Makes another operating system instance copy, for which switches can be added.

Syntax

BOOTCFG /copy [/s Computer [/u Domain\User /p Password]] [/d Description] [/id OSEntryLineNum]

Parameters

/d Description Specifies the description for the new operating system entry.

Examples

BOOTCFG /copy /d "\ABC Server\" /id 1


BOOTCFG /copy /s srvmain /u maindom\hiropln /p p@ssW23 /d "Windows XP" /id 2
BOOTCFG /copy /u hiropln /p p@ssW23 /d "AB Ver 1.001" /id 2

BOOTCFG dbg1394

Configures 1394 port debugging for a specified operating system entry.

Syntax

BOOTCFG /dbg1394 {ON|OFF|EDIT} [/s Computer [/u Domain\User /p Password]] [/ch channel] /id
OSEntryLineNum

Parameters

ON|OFF|EDIT Specifies the value for 1394 port debugging. Value Description
ON Enables remote debugging support by adding the /dbg1394 switch to the specified OSEntryLineNum.
OFF Disables remote debugging support by removing the /dbg1394 switch from the specified OSEntryLineNum.
EDIT Allows changes to port and baud rate settings by changing the channel values associated with the /dbg1394 switch for the
specified OSEntryLineNum.
/ch channel Specifies the channel to use for debugging. Valid values are integers between 1 and 64. Do not use the /ch channel
parameter if 1394 port debugging is being disabled.

Examples

10 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

BOOTCFG /dbg1394 /id 2


BOOTCFG /dbg1394 on /ch 1 /id 3
BOOTCFG /dbg1394 edit /ch 8 /id 2
BOOTCFG /s srvmain /u maindom\hiropln /p p@ssW23 /dbg1394 off /id 2

BOOTCFG debug

Adds or changes the debug settings for a specified operating system entry.

Syntax

BOOTCFG /debug {ON|OFF|EDIT} [/s Computer [/u Domain\User /p Password]] [/port


{COM1|COM2|COM3|COM4}] [/baud {9600|19200|38400|57600|115200}] [/id OSEntryLineNum]

Parameters

ON|OFF|EDIT Specifies the value for debugging. Value Description


ON Enables remote debugging support by adding the /debug switch to the specified OSEntryLineNum.
OFF Disables remote debugging support by removing the /debug switch from the specified OSEntryLineNum.
EDIT Allows changes to port and baud rate settings by changing the values associated with the /debug switch for the specified
OSEntryLineNum.
/port {COM1|COM2|COM3|COM4} Specifies the COM port to be used for debugging. Do not use the /port parameter if debugging is
being disabled.
/baud {9600|19200|38400|57600|115200} Specifies the baud rate to be used for debugging. Do not use the /baud parameter if
debugging is being disabled.

NOTE: If 1394 port debugging is required, use BOOTCFG /dbg1394.

Examples

BOOTCFG /debug on /port com1 /id 2


BOOTCFG /debug edit /port com2 /baud 19200 /id 2
BOOTCFG /s srvmain /u maindom\hiropln /p p@ssW23 /debug off /id 2

BOOTCFG default

Specifies the operating system entry to designate as the default.

Syntax

BOOTCFG /default [/s Computer [/u Domain\User /p Password]] [/id OSEntryLineNum]

Examples

BOOTCFG /default /id 2


BOOTCFG /default /s srvmain /u maindom\hiropln /p p@ssW23 /id 2

BOOTCFG delete

Deletes an operating system entry in the [operating systems] section of the Boot.ini file.

11 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

Syntax

BOOTCFG /delete [/s Computer [/u Domain\User /p Password]] [/id OSEntryLineNum]

Examples

BOOTCFG /delete /id 1


BOOTCFG /delete /s srvmain /u maindom\hiropln /p p@ssW23 /id 3

BOOTCFG ems

Enables the user to add or change the settings for redirection of the EMS console to a remote computer. By enabling EMS, you add a
“redirect=Port#” line to the [boot loader] section of the Boot.ini file and a /redirect switch to the specified operating system entry line.
The EMS feature is enabled only on servers.

Syntax

BOOTCFG /ems {ON|OFF|EDIT} [/s Computer [/u Domain\User /p Password]] [/port


{COM1|COM2|COM3|COM4|BIOSSET}] [/baud {9600|19200|38400|57600|115200}] [/id OSEntryLineNum]

Parameters

ON|OFF|EDIT Specifies the value for EMS redirection. Value Description


ON Enables remote output for the specified OSEntryLineNum. Adds a /redirect switch to the specified OSEntryLineNum and a
redirect=comX setting to the [boot loader] section. The value of comX is set by the /port parameter.
OFF Disables output to a remote computer. Removes the /redirect switch from the specified OSEntryLineNum and the redirect=comX
setting from the [boot loader] section.
EDIT Allows changes to port settings by changing the redirect=comX setting in the [boot loader] section. The value of comX is reset to
the value specified by the /port parameter.
/port {COM1|COM2|COM3|COM4|BIOSSET} Specifies the COM port to be used for redirection. BIOSSET directs EMS to get the
BIOS settings to determine which port should be used for redirection. Do not use the /port parameter if remotely administered output is
being disabled.
/baud {9600|19200|38400|57600|115200} Specifies the baud rate to be used for redirection. Do not use the /baud parameter if
remotely administered output is being disabled.

NOTE: For more information on the Emergency Management Services (EMS), see Help and Support Center.

Examples

BOOTCFG /ems on /port com1 /baud 19200 /id 2


BOOTCFG /ems on /port biosset /id 3
BOOTCFG /s srvmain /ems off /id 2
BOOTCFG /ems edit /port com2 /baud 115200
BOOTCFG /s srvmain /u maindom\hiropln /p p@ssW23 /ems off /id 2

BOOTCFG query

Queries and displays the [boot loader] and [operating systems] section entries from Boot.ini.

Syntax

BOOTCFG /query [/s Computer [/u Domain\User /p Password]]

12 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

NOTE: The following is a sample of BOOTCFG /query output:

Boot Loader Settings


--------------------
timeout: 30
default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
------------
Boot entry ID: 1
Friendly Name: "Microsoft Windows XP Professional"
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /fastdetect /debug /debugport=com1:

The Boot Loader Settings portion of the BOOTCFG query output displays each entry in the [boot loader] section of Boot.ini.
The Boot Entries portion of the BOOTCFG query output displays the following detail for each operating system entry in the [operating
systems] section of Boot.ini: Boot entry ID, Friendly Name, Path, and OS Load Options.

Examples

BOOTCFG /query
BOOTCFG /query /s srvmain /u maindom\hiropln /p p@ssW23
BOOTCFG /query /u hiropln /p p@ssW23

BOOTCFG raw

Adds operating system load options specified as a string to an operating system entry in the [operating systems] section of the Boot.ini
file.

Syntax

BOOTCFG [/s Computer [/u Domain\User /p Password]] /raw OSLoadOptionsString [/id OSEntryLineNum]

NOTE: Bootcfg raw is used to add text to the end of an operating system entry, overwriting any existing operating system entry options.
This text should contain valid OS Load Options such as /debug, /fastdetect, /nodebug, /baudrate, /crashdebug, and /sos. For example,
the following command adds “/debug /fastdetect” to the end of the first operating system entry, replacing any previous operating system
entry options:
BOOTCFG /raw “/debug /fastdetect” /id 1

Examples

BOOTCFG /raw "/debug /sos" /id 2


BOOTCFG /raw /s srvmain /u maindom\hiropln /p p@ssW23 "/crashdebug " /id 2

BOOTCFG rmsw

Removes operating system load options for a specified operating system entry.

Syntax

BOOTCFG /rmsw [/s Computer [/u Domain\User /p Password]] [/mm] [/bv] [/so] [/ng] /id
OSEntryLineNum

Parameters

13 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

/mm Removes the /maxmem switch and its associated maximum memory value from the specified OSEntryLineNum. The /maxmem
switch specifies the maximum amount of RAM that the operating system can use.
/bv Removes the /basevideo switch from the specified OSEntryLineNum. The /basevideo switch directs the operating system to use
standard VGA mode for the installed video driver.
/so Removes the /sos switch from the specified OSEntryLineNum. The /sos switch directs the operating system to display device driver
names while they are being loaded.
/ng Removes the /noguiboot switch from the specified OSEntryLineNum. The /noguiboot switch disables the Windows XP Professional
progress bar that appears before the CTRL+ALT+DEL logon prompt.

Examples

BOOTCFG /rmsw /mm 64 /id 2


BOOTCFG /rmsw /so /id 3
BOOTCFG /rmsw /so /ng /s srvmain /u hiropln /id 2
BOOTCFG /rmsw /ng /id 2
BOOTCFG /rmsw /mm 96 /ng /s srvmain /u maindom\hiropln /p p@ssW23 /id 2

BOOTCFG timeout

Changes the operating system time-out value.

Syntax

BOOTCFG /timeout TimeOutValue [/s Computer [/u Domain\User /p Password]]

Parameters

TimeOutValue Specifies the timeout value in the [boot loader] section. The value is the number of seconds the user has to select an
operating system from the boot loader screen before NTLDR loads the default. If the value is 0, then NTLDR immediately starts the
default operating system without displaying the boot loader screen.

Examples

BOOTCFG /timeout 30
BOOTCFG /s srvmain /u maindom\hiropln /p p@ssW23 /timeout 50

« Fetch Feed Subscribers from Google Reader with CURL


Skeleton .htaccess file for Powweb Hosting »

Leave your own comment

Reader Comments

john holland ~
can you add the ability to boot to the CD drive and/or to a USB drive ?

Very good page btw

Thanks

Askar Benedict ~

14 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

HIZ
I have installed XP, Vista, Ubuntu.
When I am switch on the system the first boot option is ubuntu and other os,
When I select the Other os then only I can view the XP and Vista optionZ
Now I need the option on boot up as
-> Windows XP
-> Windows Vista
-> UbuntuZ

So please tell me how to change the option and where I have to change

Astutebilal ~
Hi Friend, i got a Problem, i hope you could solve it out for me, since you appear to be very good with DOS and all that.

I have a Windows XP Pro SP2 installed in Drive C:


and i want to have an option to boot in “MS DOS Prompt” from Boot Menu (by editing Boot.INI )
I have read that i have to install DOS first, then XP in order to do that.

But i can’t do that, i have XP already installed, with lots of Customizations, and it will take me months to regenerate those.

So i was wondering, could you please tell me, how to add an entry to Boot.INI file and make settings, so that i can have an option
of booting from MS DOS.

And Please reply me as sooner as possible, before i become hopeless for that.

Thanks

AskApache ~
@ zach

No idea zach sorry. You can always do this in linux.. and on a dual-boot you could load linux and run anti-virus on a mounted NTFS
partition.

zach ~
Hi. I have a simple question. IS there a way to get XP to boot to command line only without ANY of the GUI or higher functions going? I
want to run programs that run from command line and that do not require any of the higher GUI and other things, just basic disk access
and memory management type stuff. System utilities like disk optimizers and anti-virus scanners, malware scanners, etc. If so, how do
you force this? Please helpZ

Many thanks!

Jim Lindbloom ~
After a custom build and XP install I added the Recovery Console. However Z. NOW I see a 3rd line entry in the boot menu that says
(default) and if you do not move it off that and up to XP Home or the Recovery Console it just crashes Z that is, it continues after the
timeout and comes up with an error message and halts loading. How this 3rd line got there I have NO CLUE! When I edit the boot.ini
there IS NO 3RD Line!! So I have NO idea how it gets there .. I’m clueless. So if you add to your great article please put in a fix for this
Z hint hint!!

Domain Registrar ~
Thanks for this great information. I was needing some boot information to accompany my dual boot PC. I am dual booting Vista and XP
because Vista is simply not “ready” enough for me yet.

15 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

As a response to Frank, this is not bad information at all. Many times when people try to access their boot menu, they receive a
keyboard failure popup or with many factory PCs they don’t use F8 and you have to do a little research.

LKP ~
Good article indeed.

As said, “the way to do it” is something that is appreciated. And the most important thing is that is all in one page, I mean, all that content
you can find on the net, but commonly is spreaded in a several pages, so, one access point to all that info isn’t bad at all.

As for the flammers, well, I guess that you never try to use the regedit to change a feature/option just because you can do it with a few
clicks, so, you really doesn’t care much about computing related topics or even learn something from then, c’mon, there are alot of
places/forums/irc/chat where you can flame more properly :)

Regards

Josh ~
Good article, all the people with negative comments obviously are a$$holes. Well written article, I personally have had a custom boot
menu for quite a while, allowing me to boot between Windows XP, Windows 98, and Ubuntu (yes you can in fact use the WINDOZE
boot.ini to boot Ubuntu). Anyways I found this article helpful as it lists various attributes such as /sos which I found quite helpful. Thanks.

jez ~
good article, thanks for sharing!

AskApache ~
@ Dave

No clue buddy, sorry! I’m not going to run vista until I get a new work computer with at least 4GB RAM and 2 500GB HD. Vista looks
really good but its soooo slow. I’ll wait until I get my new computer, and a side-benefit is the longer I wait, the less bugs will be in vista,
and more programs and drivers/hardware will be supported.

Dave ~
Any thoughts how to do it with Windows Vista? :)

Lucas ~
I second zomg.
I found this after my bios stopped allowing me to load off a CD. So I couldn’t run the recovery console that was on my WinXP CD. I was
wondering to if you could add a boot CD to this menu?

Thank you and very informative especially the recovery console. You can’t do that with F8

zomg ~
C’mon people, play nice!

First of all, I DID find this article useful, not for the actual content but for the “way to do it” (for example the options like /noexecute:optin)

@frank & leftAce: about holding down the powerbutton to get to the safe mode. The author clearly states that this method can be used if
F8 is made unavailable! Please read before you flame.

@mjt: You complain about typos. Like you never make em. For example; what the hell are ‘isntructions’?

16 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

@lester: Do you also have constructive comment WHY ntldr files go missing?

The point of my post: This guy here tries to help other people by posting his insight. All you guys do is tell him how bad a job he did of it.
Now who’s doing the bad job here? Him, who wants to help people, or you for flaming him? Gee, what a difficult question -.-

Apart from the typos, A+ article!

Thanks!

mjt ~
as other’s have said, “what’s the point?” personally, i’m a Linux and OSx user and know enough, that with eXPensive, you do NOT turn
the computer off while it’s booting up! (shoudn’t do that with any OS). secondly, i recommend to the author that you have someone else
read your article BEFORE you post it – you have numerous grammatical, spelling, sentence structure errors, and erroneous
instructions.

for example, isntruction #4: Type attrib -S -H -R


you forgot the filename argument Z “attrib” doesnt know you want to turn off the SHR bits for the file “boot.ini”. another: “Z turn off
your computer by holding in the computer and then turn it back on again.” “by holding in the commputer”??? what the heck does that
mean?

response to “Steve”. have you heard of a “bootable CD” containing a core operating system, which also contains utility software such
as anti-virus? in the Linux world, we use these all the time to repair mucked-up hard drive installs. check:
http://www.ultimatebootcd.com/
http://www.darknet.org.uk/2006/03/10-best-security-live-cd-distros-pen-test-forensics-recovery/

if you prefer a bootable eXPensive, try Bart’s.

use this for other google results:


regards, michael

Steve ~
While I agree that you can use F8 I have to say after a customer got hit with a virus we found this topic a life saver. After the virus was
cleaned and the OS Repaired, (did not do a full reinstall because the customer wished to keep some programs they did not have disks
for anymore) there was one last problem. The boot.ini had links to 3 copies of XP that had been deleted and an entry titled “load
previous operating system” which was on the recovery drive to restore XP. We were able to remove the entries and rename the
misleading one. Thanks for the great article.

LeftyAce ~
Well, the first guy is right. PLEASE don’t shut the computer off cold while it’s booting in order to get to the special boot menu!! The risk
of the harddrive write head writing gibberish all over the boot area is too high. USE F8.

And good for you, you know my IP.

thatguyjim ~
Relax guys, it dosen’t make much difference what you do to the computer, because it’s the little people inside of them who decide
whether or not it will run better, or at all, so chill out.

Lester ~
I second Frank, this is an idiotic Tip.
Good luck with all your missing ntldr filesZ

17 of 18 6/21/2010 8:27 PM
Custom Boot Menu in Windows XP http://www.askapache.com/windows/custom-boot-menu-in-windows-xp.html

Andrew ~
Hi,

is there a way I can create custom boot menu in WinXP Pro, which will allow me to choose, wheather some programs will be loaded on
system startup or not ? If it is can I ask for a solution? I’ve got a single administrative user account. The reason is I want to choose
between relly fast startup and a version with all programs running from the beggining.

Frank ~
This is the most idiotic ‘tip’ I’ve ever read on the web since 1990.

Let me give you a clue: you can simply press F8 as soon as the windows boot process starts to access the boot menu, where you can
boot in many more modes.

I am curious as to how you manage to generate technological content, you must be copying and pasting from different sources.

Go for it!

Similar Reads
Install multiple OS Without Cds
Changing Any Password On XP
Debug apache log files from php
Windows Optimization – Intense Part II
Preloading .flv and .mp3 files with Flash
Preload flash .flv files into browser cache
Make Windows XP Blazingly Fast
Hacking VLAN switched networks
301 Redirect with mod_rewrite or RedirectMatch
Want to know how to really hack?
Firefox, Firebug, and yslow are REQUIRED
PortaPutty Auto-Reconnecting SSH Tunnels on an Encrypted TrueCrypt Portable USB Key w GPG
HTTP Packet Capturing to debug Apache
Feed for this Entry
Trackback
htaccess rewritecond
Tags: admin, Advanced, Apache, askapache, ASP, Backups, Boot, boot.ini, Cache, console, debugging, Examples, Flash, GET,
Networking, ntldr, pagefile, password, Performance, Perl, Port, post, Prompt, ram, Redirect, Redirection, Security, server, servers,
Sessions, Shell, SSI, stat, Username, Windows, Windows XP,

It's very simple - you read the protocol and write the code. -Bill Joy

HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C | RSS | XHTML 1.1 | CSS 2.1

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The
ASF is licensed. "Apache" is a trademark of The ASF. NCSA HTTPd.
UNIX ® is a registered Trademark of The Open Group. POSIX ® is a registered Trademark of The IEEE.

Site Map | Contact Webmaster | Glossary | License and Disclaimer | Terms of Service

18 of 18 6/21/2010 8:27 PM

You might also like