Σάββατο, Απριλίου 25, 2009

Using BOOT.INI Startup Switches (Windows NT/2000/XP) Popular

Windows NT, 2000 and XP use a configuration file called BOOT.INI to control how the operating system is booted and any startup options. By modifying the startup switches you can manage the boot process including booting Windows in Safe mode, creating a log file, or disabling the splash screen.

Open you the root partition of your hard drive (normally C:\) and find the file called "BOOT.INI". You may need to enable hidden files under Folder > Options.

Right-click on the file, select Properties and uncheck "Read-only" then click OK. You may like to make a backup of the file at this point to allow you to restore if you experience problems.

Open the file in Notepad and under the [operating systems] section you will find a list of all the installed operating systems. For example:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect

To enable or disable startup options simply change or add any of the switches listed below to the default command-line. For example you could add "/SOS" to the command-line above to display the splash screen and view the drivers being loaded.

# /3GB - New to Service Pack 3. This causes the split between user and system portions of the Windows NT map to become 3GB for user applications, 1GB for System. To take advantage of this the system must be part of the NT Enterprise suite and the application must be flagged as a 3GB aware application.

# /BASEVIDEO - The computer starts up using the standard VGA video driver. Use this if you have installed a graphics driver that is not working.

# /BAUDRATE - Specifies the baud rate to be used for debugging. If you do not set the baud rate, the default baud rate is 9600 if a modem is attached, and 19200 for a null-modem cable.

# /BOOTLOG - Makes 2000 write a log of the boot to the file %SystemRoot%\NTBTLOG.TXT Windows 2000/XP Only.

# /BURNMEMORY=x - Makes NT forget about the given amount of memory in MB. If /burnmemory=64 was given then 64MB of memory would be unavailable.

# /CRASHDEBUG - The debugger is loaded when you start Windows NT, but remains inactive unless a Kernel error occurs. This mode is useful if you are experiencing random, unpredictable Kernel errors.

# /DEBUG - The debugger is loaded when you start Windows NT, and can be activated at any time by a host debugger connected to the computer. This is the mode to use when you are debugging problems that are regularly reproducible.

# /DEBUGPORT=comx - Specifies the com port to use for debugging, where x is the communications port that you want to use.

# /FASTDETECT - Specifying FASTDETECT causes NTDETECT to skip parallel and serial device enumeration for a boot into Win2K, whereas omitting the switch has NTDETECT perform enumeration for a boot into NT 4.0. Win2K setup automatically recognizes dual-boot configurations and sets this switch for BOOT.INI lines that specify a Win2K boot. Windows 2000/XP Only.

# /HAL= - Allows you to override the HAL used, for example using a checked version.

# /INTAFFINITY - Sets the multiprocessor HAL (HALMPS.DLL) to set interrupt affinities such that only the highest numbered processor in an SMP will receive interrupts. Without the switch the HAL defaults to its normal behavior of letting all processors receive interrupts. Windows 2000/XP Only.

# /KERNEL= - Same as above but for the kernel.

# /MAXMEM:n - Specifies the maximum amount of RAM that Windows NT can use. This switch is useful if you suspect a memory chip is bad.

# /NODEBUG - No debugging information is being used.

# /NOGUIBOOT - When this option is specified the VGA video driver responsible for presenting bit mapped graphics during Win2K's boot process is not initialized. The driver is used to display boot progress information, as well as to print the Blue Screen crash screen, so disabling it will disable Win2K's ability to do those things as well. Windows 2000/XP only.

# /NOSERIALMICE=[COMx | COMx,y,z...] - Disables serial mouse detection of the specified COM port(s). Use this switch if you have a component other than a mouse attached to a serial port during the startup sequence. If you use /NOSERIALMICE without specifying a COM port, serial mouse detection is disabled on all COM ports.

# /NUMPROC=n - Only enables the first n processors on a multiple processor system.

# /ONECPU - Only use the first CPU in a multiple processor system.

# /PCILOCK - Stops Windows NT from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured by the BIOS.

# /SAFEBOOT - This is an automatic switch which NTLDR should complete for you when you use the F8 menu to perform a safe boot. Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support. The safe boot is a boot where Windows 2000/XP only loads drivers and services that are specified by name or group in the Minimal or Network Registry keys under HKLM\System\CurrentControlSet\Control\SafeBoot. The DSREPAIR (Directory Services Repair) switch causes NT to boot into a mode where it restores the Active Directory from a backup medium you present. An additional option that you can append is "(ALTERNATESHELL)". This tells NT to use the program specified by HKLM\System\CurrentControlSet\SafeBoot\AlternateShell as the graphical shell, rather than to use the default which is Explorer. Windows 2000/XP only.

# /SOS - Displays the driver names while they are being loaded. Use this switch if Windows NT won’t start up and you think a driver is missing. This option is configured by default on the [VGA] option on the boot menu.

# /WIN95 - This switch is only pertinent on a triple-boot system that has DOS, Win9x and Windows NT installed. Specifying the /WIN95 switch directs NTLDR to boot the Win9x boot sector stored in BOOTSECT.W40. See Microsoft KB Article Q157992 for more information.

# /WIN95DOS - This switch is only pertinent on a triple-boot system that has DOS, Win9x and Windows NT installed. Specifying the /WIN95DOS switch directs NTLDR to boot the DOS boot sector stored in BOOTSECT.DOS. See Microsoft KB Article Q157992 for more information.

# /YEAR= - Specifying this value causes NT/Windows 2000 core time function to ignore the year that the computer's real-time clock reports and instead use the one indicated. Thus, the year used in the switch affects every piece of software on the system, including the NT kernel. Example: /YEAR=2005. Note: this option is only available on NT 4.0 Service Pack 4 and Windows 2000/XP.

Save the file and restart Windows for the change to take effect.

Boot INI Options Reference

Introduction

There are number of BOOT.INI switches that are useful for driver developers that wish to test their drivers under a variety of different system configurations without having to have a separate machine for every one. For example, limiting the amount of memory NT sees can be useful for stressing memory loads, and limiting the number of processors for testing scalability. I've compiled a complete list of the options that BOOT.INI currently supports. This list is reproduced in the Startup, Shutdown and Crashes chapter of Windows Internals, where you'll find more information about the boot process.

Note: to see what options a system has booted with examine HKLM\System\CurrentControlSet\Control\SystemStartOptions.

* /3GB
Increases the size of the user process address space from 2 GB to 3 GB (and therefore reduces the size of system space from 2 GB to 1 GB). Giving virtual-memory- intensive applications such as database servers a larger address space can improve their performance. For an application to take advantage of this feature, however, two additional conditions must be met: the system must be running Windows XP, Windows Server 2003, Windows NT 4 Enterprise Edition, Windows 2000 Advanced Server or Datacenter Server and the application .exe must be flagged as a 3-GB-aware application. Applies to 32-bit systems only.
* /BASEVIDEO
Causes Windows to use the standard VGA display driver for GUI-mode operations.
* /BAUDRATE=
Enables kernel-mode debugging and specifies an override for the default baud rate (19200) at which a remote kernel debugger host will connect. Example: /BAUDRATE=115200.
* /BOOTLOG
Causes Windows to write a log of the boot to the file %SystemRoot%\Ntbtlog.txt.
* /BOOTLOGO
Use this switch to have Windows XP or Windows Server 2003 display an installable splash screen instead of the standard splash screen. First, create a 16-color (any 16 colors) 640x480 bitmap and save it in the Windows directory with the name Boot.bmp. Then add "/bootlogo /noguiboot" to the boot.ini selection.
* /BREAK
Causes the hardware abstraction layer (HAL) to stop at a breakpoint at HAL initialization. The first thing the Windows kernel does when it initializes is to initialize the HAL, so this breakpoint is the earliest one possible. The HAL will wait indefinitely at the breakpoint until a kernel-debugger connection is made. If the switch is used without the /DEBUG switch, the system will Blue Screen with a STOP code of 0x00000078 (PHASE0_ EXCEPTION).
* /BURNMEMORY=
Specifies an amount of memory Windows can't use (similar to the /MAXMEM switch). The value is specified in megabytes. Example: /BURNMEMORY=128 would indicate that Windows can't use 128 MB of the total physical memory on the machine.
* /CHANNEL=
Used on conjunction with /DEBUGPORT=1394 to specify the IEEE 1394 channel through which kernel debugging communications will flow. This can be any number between 0 and 62 and defaults to 0 if not set.
* /CLKLVL
Causes the standard x86 multiprocessor HAL (Halmps.dll) to configure itself for a level-sensitive system clock rather then an edge-triggered clock. Level-sensitive and edge-triggered are terms used to describe hardware interrupt types.
* /CMDCONS
Passed when booting with into the Recovery Console (described later in this chapter).
* /CRASHDEBUG
Causes the kernel debugger to be loaded when the system boots, but to remain inactive unless a crash occurs. This allows the serial port that the kernel debugger would use to be available for use by the system until the system crashes (vs. /DEBUG, which causes the kernel debugger to use the serial port for the life of the system session).
* /DEBUG
Enables kernel-mode debugging.
* /DEBUGPORT=
Enables kernel-mode debugging and specifies an override for the default serial (usually COM2 on systems with at least two serial ports) to which a remote kernel-debugger host is connected. Windows XP and Windows Server 2003 also support debugging through accept IEEE 1394 ports. Examples: /DEBUGPORT=COM2, /DEBUGPORT=1394.
* /EXECUTE
This option disables no-execute protection. See the /NOEXECUTE switch for more information.
* /FASTDETECT
Default boot option for Windows. Replaces the Windows NT 4 switch /NOSERIALMICE. The reason the qualifier exists (vs. just having NTDETECT perform this operation by default) is so that NTDETECT can support booting Windows NT 4. Windows Plug and Play device drivers perform detection of parallel and serial devices, but Windows NT 4 expects NTDETECT to perform the detection. Thus, specifying /FASTDETECT causes NTDETECT to skip parallel and serial device enumeration (actions that are not required when booting Windows), whereas omitting the switch causes NTDETECT to perform this enumeration (which is required for booting Windows NT 4).
* /INTAFFINITY
Directs the standard x86 multiprocessor HAL (Halmps.dll) to set interrupt affinities such that only the highest numbered processor will receive interrupts. Without the switch, the HAL defaults to its normal behavior of letting all processors receive interrupts.
* /KERNEL=/HAL=
Enable you to override Ntldr's default filename for the kernel image (Ntoskrnl.exe) and/or the HAL (Hal.dll). These options are useful for alternating between a checked kernel environment and a free (retail) kernel environment or even to manually select a different HAL. If you want to boot a checked environment that consists solely of the checked kernel and HAL, which is typically all that is needed to test drivers, follow these steps on a system installed with the free build:

1. Copy the checked versions of the kernel images from the checked build CD to your \Windows\System32 directory, giving the images different names than the default. For example, if you're on a uniprocessor, copy Ntoskrnl.exe to Ntoschk.exe and Ntkrnlpa.exe to Ntoschkpa.exe. If you're on a multiprocessor, copy Ntkrnlmp.exe to Ntoschk.exe and Ntkrpamp.exe to Ntoschkpa.exe. The kernel filename must be an 8.3-style short name.
2. Copy the checked version of the appropriate HAL needed for your system from \I386\Driver.cab on the checked build CD to your \Windows\System32 directory, naming it Halchk.dll. To determine which HAL to copy, open \Windows\Repair\Setup.log and search for Hal.dll; you'll find a line like \WINDOWS\system32\ hal.dll="halacpi.dll","1d8a1". The name immediately to the right of the equals sign is the name of the HAL you should copy. The HAL filename must be an 8.3-style short name.
3. Make a copy of the default line in the system's Boot.ini file.
4. In the string description of the boot selection, add something that indicates that the new selection will be for a checked build environment (for example, "Windows XP Professional Checked").
5. Add the following to the end of the new selection's line: /KERNEL=NTOSCHK.EXE /HAL= HALCHK.DLL
6. Now when the selection menu appears during the boot process you can select the new entry to boot a checked environment or select the entry you were using to boot the free build.

* /LASTKNOWNGOOD
Causes the system to boot as if the LastKnownGood boot option was selected.
* /MAXMEM=
Limits Windows to ignore (not use) physical memory beyond the amount indicated. The number is interpreted in megabytes. Example: /MAXMEM=32 would limit the system to using the first 32 MB of physical memory even if more were present.
* /MAXPROCSPERCLUSTER=
For the standard x86 multiprocessor HAL (Halmps.dll), forces cluster-mode Advanced Programmable Interrupt Controller (APIC) addressing (not supported on systems with an 82489DX external APIC interrupt controller).
* /MININT
This option is used by Windows PE (Preinstallation Environment) and causes the Configuration Manager to load the Registry SYSTEM hive as a volatile hive such that changes made to it in memory are not saved back to the hive image.
* /NODEBUG
Prevents kernel-mode debugging from being initialized. Overrides the specification of any of the three debug-related switches, /DEBUG, /DEBUGPORT, and /BAUDRATE.
* /NOEXECUTE
This option is only available on 32-bit versions of Windows when running on processors supporting no-execute protection. It enables no-execute protection (also known as Data Execution Protection - DEP), which results in the Memory Manager marking pages containing data as no-execute so that they cannot be executed as code. This can be useful for preventing malicious code from exploiting buffer overflow bugs with unexpected program input in order to execute arbitrary code. No-execute protection is always enabled on 64-bit versions of Windows on processors that support no-execute protection. There are several options you can specify with this switch:
o /NOEXECUTE=OPTIN Enables DEP for core system images and those specified in the DEP configuration dialog.
o /NOEXECUTE=OPTOUT Enables DEP for all images except those specified in the DEP configuration dialog.
o /NOEXECUTE=ALWAYSON Enables DEP on all images.
o /NOEXECUTE=ALWAYSOFF Disables DEP.
* /NOGUIBOOT
Instructs Windows not to initialize the VGA video driver responsible for presenting bitmapped graphics during the boot process. The driver is used to display boot progress information, so disabling it will disable the ability of Windows to show this information.
* /NOLOWMEM
Requires that the /PAE switch be present and that the system have more than 4 GB of physical memory. If these conditions are met, the PAE-enabled version of the Windows kernel, Ntkrnlpa.exe, won't use the first 4 GB of physical memory. Instead, it will load all applications and device drivers, and allocate all memory pools, from above that boundary. This switch is useful only to test device driver compatibility with large memory systems.
* /NOPAE
Forces Ntldr to load the non-Physical Address Extension (PAE) version of the Windows kernel, even if the system is detected as supporting x86 PAEs and has more than 4 GB of physical memory.
* /NOSERIALMICE=[COMx | COMx,y,z...]
Obsolete Windows NT 4 qualifier-replaced by the absence of the /FASTDETECT switch. Disables serial mouse detection of the specified COM ports. This switch was used if you had a device other than a mouse attached to a serial port during the startup sequence. Using /NOSERIALMICE without specifying a COM port disables serial mouse detection on all COM ports. See Microsoft Knowledge Base article Q131976 for more information.
* /NUMPROC=
Specifies the number of CPUs that can be used on a multiprocessor system. Example: /NUMPROC=2 on a four-way system will prevent Windows from using two of the four processors.
* /ONECPU
Causes Windows to use only one CPU on a multiprocessor system.
* /PAE
Causes Ntldr to load Ntkrnlpa.exe, which is the version of the x86 kernel that is able to take advantage of x86 PAEs. The PAE version of the kernel presents 64-bit physical addresses to device drivers, so this switch is helpful for testing device driver support for large memory systems.
* /PCILOCK
Stops Windows from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured by the BIOS. See Microsoft Knowledge Base article Q148501 for more information.
* /RDPATH=
Specifies the path to a System Disk Image (SDI) file, which can be on the network, that the system will use to boot from. Often used in conjunction with the /RDIMAGEOFFSET= flag to indicate to NTLDR where in the file the system image starts.
* /REDIRECT
Introduced with Windows XP. Used to cause Windows to enable Emergency Management Services (EMS) that reports boot information and accepts system management commands through a serial port. Specify serial port and baudrate used in conjunction with EMS with redirect= and redirectbaudrate= lines in the [boot loader] section of the Boot.ini file.
* /SAFEBOOT:
Specifies options for a safe boot. You should never have to specify this option manually, since Ntldr specifies it for you when you use the F8 menu to perform a safe boot. (A safe boot is a boot in which Windows only loads drivers and services that are specified by name or group under the Minimal or Network registry keys under HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot.) Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support, respectively. The DSREPAIR (Directory Services Repair) switch causes Windows to boot into a mode in which it restores the Active Directory directory service from a backup medium you present. An additional option you can append is (ALTERNATESHELL), which tells Windows to use the program specified by the HKLM\SYSTEM\CurrentControlSet\ SafeBoot\AlternateShell value as the graphical shell rather than to use the default, which is Windows Explorer.
* /SDIBOOT=
Used in Windows XP Embedded systems to have Windows boot from a RAM disk image stored in the specified System Disk Image (SDI) file.
* /SOS
Causes Windows to list the device drivers marked to load at boot time and then to display the system version number (including the build number), amount of physical memory, and number of processors.
* /TIMERES=
Sets the resolution of the system timer on the standard x86 multiprocessor HAL (Halmps.dll). The argument is a number interpreted in hundreds of nanoseconds, but the rate is set to the closest resolution the HAL supports that isn't larger than the one requested. The HAL supports the following resolutions: Hundreds of nanoseconds Milliseconds (ms) 9766 0.98 19532 2.00 39063 3.90 78125 7.80 The default resolution is 7.8 ms. The system timer resolution affects the resolution of waitable timers. Example: /TIMERES=21000 would set the timer to a resolution of 2.0 ms.
* /USERVA=
This switch is only supported on Windows XP and Windows Server 2003. Like the /3GB switch, this switch gives applications a larger address space. Specify the amount in MB between 2048 and 3072. This switch has the same application requirements as the /3GB switch and requires that the /3GB switch be present. Applies to 32-bit systems only.
* /WIN95
Directs Ntldr to boot the Consumer Windows boot sector stored in Bootsect.w40. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.
* /WIN95DOS
Directs Ntldr to boot the MS-DOS boot sector stored in Bootsect.dos. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.
* /YEAR=
Instructs the Windows core time function to ignore the year that the computer's real-time clock reports and instead use the one indicated. Thus, the year used in the switch affects every piece of software on the system, including the Windows kernel. Example: /YEAR=2001. (This switch was created to assist in Y2K testing.)

Purpose of the BOOT.INI File

* Categories
* Submit your tips

* Admin Tips
o Windows Server 2008/2003/2000/XP/NT Administrator Knowledge Base
+ Windows NT
# Admin Tips
* Booting
o Purpose of the BOOT.INI File

* Section(s): Booting
* Published on Apr 20, 2004.
* Last Modified on Apr 20, 2004.
* Last Modified by Wayne Maples.
* Rated 4 out of 5 based on 57 votes.

* 1
* 2
* 3
* 4
* 5

AddThis
BOOT.INI and ARC Path Naming Conventions and Usage : Q99743

Some people get an error message in the Event log from source Serial stating Not enough resources for the driver. NT is probing the serial ports for a serial mouse, and finding that there is no resource usable for this purpose. You can ignore the message, its informational, or to eliminate it (assumes you DO have a ps/2 mouse), use the /NoSerialMice parameter, which suppressed this test at boot.

sample boot.ini

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" /NoSerialMice
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos /NoSerialMice

[any text]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" /NoSerialMice
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos /NoSerialMice
C:\="MS-DOS"

The above example, the [any text] section hides the bottom 3 selections. You can use the [any text] header to keep boot options but make them unavailable at boot.

The pathing portion which defines where NT is to boot from, uses the ARC convention:

default=scsi(0)disk(0)rdisk(0)partition(1)\winnt

where the above is a standard example. Your paths will have either scsi or multi.

multi() is used for IDE and also for SCSI drives when int13 is used to find and load the NT kernel file, ntoskrnl.exe. multi(), when used, is normally set to 0 because BIOS can only indentify a single INT 13 controller at a time.

multi() and disk() are not applicable to IDE and are always 0.

If the controller is SCSI and int13 is not enabled, then scsi and drive tell NT which SCSI controller (0=first controller, 1=second) and drive has the active partition. The partition portion specifies which partition is active (1=first partition, 2=second partition).

disk() is set to 0 when using multi() because the disk info is provided through INT 13 and doesn't need to be enumerated.

rdisk() is the ordinal number of the disk on the adapter. With EIDE controllers, this varies from 0 to 3 with the primary boot drive being 0.

Partition() is the partition number which follows the same numbering convention as multi()'s partition numbering.

In both multi() and scsi() the final parm is the pathname to the system files, normally, winnt.

Study Q102873, which has the definitive discussion of the ARC convention and how to interpret it. For more information on int13 and its limitations, see Int 13 x86 boot limitation and C partition

If your need to set the default operating system to boot, the easiest and safest approach is to click

Start : Control Panel : System icon : Startup/Shutdown dropdown : Select default

There is a minor gotcha! if partitions have changed or you edited the boot.ini and the line defining the default is invalid, you will get the existings options and an option labelled default. Fix the defective "default" line and the extra "bad" option will disappear. It something you can't ignore because NT will boot using the info in the defective "default" line until the error is corrected.

Don't mistake the complexity of boot.ini. Microsoft's multi-boot support is very elementary. It can not handle more than one non-NT/W2K operating system, potentially a severe defect, and it is limited to 10 entries in the menu, not a biggie. Want to test the 10 entries limitation. Copy one of the entries and change the label. You will only see the 1st 10 entries displayed.:

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #2" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #3" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #4" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #5" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #6" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #7" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #8" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #9" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #10" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #11" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="W2K #12" /fastdetect
Reboot and you should only see the 1st 10 entries displayed. Any entry beyond 10 will not display.

Mark Russinovich has a good writeup covering all the switches in boot.ini at www.sysinternals.com/bootini.htm. They include :
/NOSERIALMICE ( NOSERIALMICE : disables serial mouse detection),
/PCILOCK ( PCILOCK : lets BIOS configure PCI devices),
/WIN95DOS ( WIN95DOS : directs NTLDR to boot the DOS boot sector stored in BOOTSECT.DOS),
/WIN95 ( WIN95 : directs NTLDR to boot the Win9x boot sector stored in BOOTSECT.W40),
/3GB ( 3G : give applications more memory),
/KERNEL and/or /HAL= (specify kernel and/or hal image file),
/BREAK ( BREAK : stop at breakpoint in HAL),
/BAUDRATE= and /DEBUGPORT= (used in remote kernel debugger),
/CRASHDEBUG ( CRASHDEBUG: kernel debugger is loaded),
/NODEBUG ( NODEBUG overrides /baudrate and /debugport),
/BASEVIDEO ( BASEVIDEO : use standard vga),
/SOS ( SOS : show drivers being loaded),
/NUMPROC= (NUMPROC : only use set number of processors),
/ONECPU ( ONECPU : only use 1 processor),
/BURNMEMORY (don't use x amount of memory - BURNMEMORY),
/MAXMEM= (use as maxmem),
/USE8254 ( use8254 timer chip as its base timer),
/CLKLVL ( CLKLVL : use level-sensitive system clock),
/YEAR= (use year specified as system year),
/TIMERES= (TIMERES : sets the resolution of the system timer),
/MAXPROCSPERCLUSTER= ( MAXPROCSPERCLUSTER : max cpus to use in cluster),
/INTAFFINITY ( INTAFFINITY : sets interrupt affinity),
/BOOTLOG ( BOOTLOG : writes boot log to %SystemRoot%\NTBTLOG.TXT),
/FASTDETECT ( FASTDETECT : causes NTDETECT to skip parallel and serial device enumeration)

Vista has Replaced The Boot.INI With BCD

From: http://windowsitpro.com/articles/articleid/101168/Bcdedit_Basics.ht...

Executive Summary:

Windows Server 2008 and Windows Vista have changed the way you control Windows' boot loader. With this change comes a new tool—Bcdedit—that every systems administrator must master.

Anyone who uses Windows Server 2008 or Windows Vista knows that these latest Windows versions have brought some significant changes to Microsoft's OSs. One of these changes is the way you control Windows' boot loader, the software that supports storing more than one OS on a drive and that lets you configure the way Windows boots. With this change comes a new tool—Bcdedit—that anyone who administers Server 2008 or Vista systems must master.

Prior to Vista, we controlled boot order and boot options by modifying the boot.ini text file at the root of the C drive. To change the boot-loader behavior of pre-Vista systems, we needed nothing more complex than Notepad and the knowledge of how to un-set boot.ini's "read only" component. Now, Microsoft has replaced boot.ini with a binary file called BCD, which resides in a hidden/system folder called \boot on whatever drive you boot your system from. Bcdedit is the tool you'll use to control BCD.

Boot Alterations

The BCD boot-loader structure introduces some new terminology. Whereas a boot.ini file might have several sections that let you boot a particular OS with specific options, Bcdedit has boot entries. A new Server 2008 or Vista installation has just one boot entry, but if you add an OS—for example, if you install both Server 2008 and Vista on the same system, or if you have only one OS on your system but want the option to boot that OS with different startup or debugging settings—you'd have more than one boot entry. You can see your boot entries by opening an elevated command prompt and typing

bcdedit /v


The top section of the output that Figure 1 shows—labeled Windows Boot Manager—contains global information: which boot entry boots by default, how long users have to choose a non-default boot entry, and so on.

Below that, Bcdedit displays two boot entries labeled Windows Boot Loader. The first boots a copy of Server 2008 (as you can see in the description line), and the second boots Vista.

Notice that Bcdedit /v shows a lot of long hexadecimal strings enclosed in brackets—items that you probably recognize as globally unique identifiers (GUIDs). You can safely ignore most of these GUIDs, but pay special attention to the first one in each boot entry, labeled identifier. You need these GUIDs when you inform Bcdedit which boot entry to make the default, what order to display the boot entries, which boot entries to copy, and so on. If you're like me, you'll find yourself feeling thankful that you can mark text and put it into the clipboard.

To tell BCD which boot entry to load by default, you use the Bcdedit /default command. For example, to tell my system to boot the Server 2008 boot entry, I would type

bcdedit /default {6443870f-3c0c-11dd-835a-c0389998b4ec}


If you can't imagine typing or even copying those GUIDs, you'll be glad to know that Bcdedit recognizes two well-known GUIDs: The {current} value is the boot entry that the OS is currently running, and the {default} value is whatever boot entry BCD currently knows about.

If I were to delete the \Windows folder from my Server 2008 system's E drive, I would essentially uninstall Server 2008 from my system—but BCD wouldn't know that. So, every time I booted my system, I'd see a useless option to boot Server 2008. To configure BCD to no longer show the Server 2008 option, I could use the Bcdedit /delete command:

bcdedit /delete {6443870f-3c0c-11dd-835a-c0389998b4ec}


If you're thinking about trying some of these commands, I recommend creating an extra boot entry to play with. Believe me, you don't want to accidentally delete your main OS's boot entry! To make a copy of your boot entry for test purposes, you can use the Bcdedit /copy command:

bcdedit /copy {current} /d "Test entry"


Note that I've made use of the {current} well-known GUID and added the /d option (mandatory with the /copy switch), which let me give the option a name for the new OS boot entry.

Whenever I set up a Windows NT 3.1 or later system, I find boot.ini's default 30-second wait to be excessive, unacceptably slowing down my boot times. So, I always like to modify the "timeout=30" value to 5 seconds. To do the equivalent in Bcdedit, I type

bcdedit /timeout 5


Familiarize Yourself
I miss boot.ini's simplicity, but BCD and Bcdedit are here to stay, so I recommend spending a little time getting familiar with Bcdedit. I'll cover more in-depth options next time.

Can I add XP after Vista (dual boot)?

This is a short copy of instructions I created for a friend to use as I have a dual boot system that works great. You can also do this with a current XP cd. These just refer to an old one for thats the cd he had. This will work if you do it right. You will need a program called easyBCD 1.6 (there are others that will work but this is what i used). http://neosmart.net/dl.php?id=1 this link is where you get it when you need it. the instructions will tell you where.

Dual Boot

*NOTES*
1. These instructions are using the XP edition without Service Pack 2.
2. To use the Vista that comes with the computer first install it and then make a copy of it using some backup partitioning software. Finally, when it is time to install Vista just restore that copy to the C: drive.


1. Use the XP CD to clear the hard drive.
2. Use the XP CD to create 2 partitions. Make C: 50GB and give D: the rest (about 78 GB).
3. Install XP in the D: drive (Partition 2).
4. When asked about how the computer is connected to the internet choose: DSL-NEXT- No, this computer is always connected to the internet.-NEXT- Obtain IP automatically/ Obtain DNS automatically.-NEXT- No, Remind me every few days.-FINISH.
5. Put all drivers on XP to update it. also copy boot.ini (its in the D partition and not in any folders or anything like that.) save this copy on a cd or such
6. Install Vista in the C: drive (Partition 1).
7. When in Vista make a copy of the D: drive which is XP using some backup partitioning software.
8. Delete the D: drive. So now there should only be Vista and unallocated space.
9. Use Vista’s Disk Management to extend the C: drive to 150GB. This should leave about 148GB left in unallocated space.
10. Use the backup partitioning software to restore the D: drive. Restore it to the 148GB of unallocated space.
11. Now when in Vista go to Disk Management and make sure Vista is your System drive, it is the C: drive, and it is the first drive listed. Also, check to see that XP is on the D: drive, is a primary partition, and is the second drive listed. Make sure both say they are healthy.
12. Go to Tools (Can be found in classic menu)/ Folder Options/ View and click Show Hidden Folders and unclick Hide Protected Operating System Files.
13. Copy NTLDR (Found on XP CD in I386 folder) and NTDETECT (Found on XP CD in I386 folder) to the XP Partition (Just on the D: drive and not in any folders).
14. Then go to the CD and right click on boot.ini and select edit. Make sure it reads
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Professional" /noexecute=optin /fastdetect
if it doesn’t then edit it so it does. (Last 2 lines are 1 line)
15. Then copy boot.ini to the XP Partition in the same place as NTLDR and NTDETECT.
16. Now copy NTLDR, NTDETECT, and boot.ini to the Vista Partition (Just on the C: drive and not in any folders).
17. Install EasyBCD 1.6 Then open EasyBCD (do not worry about the error message that comes up. Just make sure it says C: and click continue).
18. Go to Add/ Remove Entries and add Windows XP using the C: drive.
19. Go to Configure Boot and edit the names to Windows Vista and Windows XP. Or whatever you choose of names

Can I add XP after Vista (dual boot)?

There are several ways but they tend to be unreliable, and in some instances depend on your particular environment. Thie was one I experimented with, originally on rtm. There is no reason why it should not work with thretail version. I have Vista as my primary OS on C: and XP on D: (This is Microsoft's solution)

Note You can run the commands in the following procedure by using the command prompt. If you run these commands in Windows Vista, run them at a command prompt that has elevated user rights. To do this, click Start, click Accessories, right-click the command-prompt shortcut, and then click Run as Administrator.1. Use Bootsect.exe to restore the Windows Vista MBR and the boot code that transfers control to the Windows Boot Manager program. To do this, type the following command at a command prompt: Drive:\boot\ Bootsect.exe –NT60 All

In this command, Drive is the drive where the Windows Vista installation media is located.
2. Use Bcdedit.exe to manually create an entry in the BCD Boot.ini file for the earlier version of the Windows operating system. To do this, type the following commands at a command prompt.

Note In these commands, Drive is the drive where Windows Vista is installed. • Drive:\Windows\system32\Bcdedit –create {ntldr} –d “Description for earlier Windows version”

Note In this command, Description for earlier Windows version can be any text that you want. For example, Description for earlier Windows version can be "Windows XP” or “Windows Server 2003."
• Drive:\Windows\system32\Bcdedit –set {ntldr} device partition=x:

Note In this command, x: is the drive letter for the active partition.
• Drive:\Windows\system32\Bcdedit –set {ntldr} path \ntldr
• Drive:\Windows\system32\Bcdedit –displayorder {ntldr} –addlast

3. Restart the computer.