The Windows Vista boot process has changed from previous versions of Windows, both in the way that boot entries are stored, and the way that those boot entries are managed. This impacts support agents by changing the toolset used for resolving low level startup issues. Objectives Discuss boot process changes in Windows Vista compared with Windows XP. Demonstrate techniques for resolving low level boot issues in Windows Vista.
Windows Vista Boot Process Overview The Windows Vista boot process differs from Windows XP in the way that operating system is located and initialized. Startup begins with the BIOS loading the Master Boot Record (MBR) on the bootable disk, as defined by the boot order configured in the BIOS. The MBR in turn loads the Partition Boot Record (PBR) on the active partition. So far Windows Vista remains relatively unchanged. Windows Vista is different from XP starting by the fact that the PBR code written by Windows Vista no longer looks for NTLDR. The new boot loader in Windows Vista is BOOTMGR. This is the component which loads the Boot Configuration Database (BCD), which, in turn, loads the OS loader boot application, Winload.exe. Finally, Winload.exe initializes the Windows Vista kernel. This is illustrated below. [Photo] Illustration of the Boot Process You can think of this change in two elements: Two key actions performed by NTLDR in previous Windows versions have been divided between two components: Bootmgr: Reads the boot configuration, including device and path locations. WindowsSystem32Winload.exe: Initializes the kernel. The boot configuration stored by Boot.ini in previous Windows versions is now stored in a registry-based database in the following location: BootBCD: The Boot Configuration Database (BCD) Change Consequences These changes are significant because of the impact they have: The boot process can be extended to support other applications, such as other operating systems, or other versions of the OS. Only non-version-specific components are stored in the root of the active partition. This means that theoretically Windows Vista could be installed on a machine running some future Windows version with the same boot structure, and it would not break the boot process for that future version. With legacy Windows, installing an older Windows version last causes the newer version to fail on startup. This is due to version-specific code improvements in NTLDR. Tool-oriented boot entries are now supported which offer maintenance options on boot. In the past Windows supported an F8 menu provided by a target operating system. This new structure makes tools available earlier in the boot process, which means that they are available even in the event that all OS-specific boot entries are damaged. The Windows Memory Diagnostic tool is provided in the boot menu in this way by default, though this menu can be used by OEMs to reference their recovery tools. What is the Boot Configuration Database? The Boot Configuration Database (BCD), which is also referred to as the BCD store, contains boot configuration parameters and controls how the operating system is started in Windows Vista. These parameters were previously stored in the Boot.ini file at the root of the active partition for BIOS-based PCs or in the nonvolatile RAM (NVRAM) for EFI based PCs, such as PCs based on the Itanium 64-bit processor. The BCD is a database used by Bootmgr. It contains the functions of boot.ini and is located in the boot folder on the active partition. The BCDEDIT.exe command line tool is provided to manage the entries in the BCD store, and is located in the WindowsSystem32 directory of the Windows Vista partition.
Directory of C:Boot
08/10/2006 02:56 PM
s of BCD that bootcfg.exe didn’t expose for manipulating boot.ini. BCDEdit.exe is designed to run from within down-level operating systems and recovery environments, though it cannot be used to manage the boot.ini used by those previous versions of Windows.
Potential Issues User receives an “Access Denied” error when running BCDEdit Issue I have working copy Windows XP on a different partition and the Windows Vista bootloader did not recognize it and add it as a boot option. I tried BCDEdit logged in as a user in the Administrators group, but it gives me an “Access Denied” error when I run bcdedit /create. Resolution You will need to run BCDEDIT from an elevated command prompt in Windows Vista. How can I repair the BCD store? It is strongly recommended that you create a backup of the BCD store prior to making any changes. It is possible for the BCD store to become corrupt which may cause Windows Vista to be unable to boot. The BOOTREC.EXE command is provided for use in WinRE to repair the MBR, Boot Sector and BCD store Bootrec.exe can be run from a command prompt in WinRE and has the following commands: /FIXMBR: Writes a master boot record to the system partition Bootrec.exe /FIXMBR /FIXBOOT: Writes a new boot sector onto the system partition Bootrec.exe /FIXBOOT /SCANOS: Scans all disks for Windows installation and displays entries currently not in the BCD store Bootrec.exe /SCANOS /REBUILDBCD: Scans all disks for Windows installations and allows users to choose which entries to add to the BCD store. Bootrec.exe /REBUILDBCD Most troubleshooting for boot issues will be done by the startup repair option of WinRE. However if the startup repair option doesn’t work, the bootrec.exe tool might prove useful. Manually rebuilding entries in the BCD store will require that you run BCDEDIT multiple times, once for each element in the boot entry. In the example below, we provide the steps for manually adding an existing installation of Windows XP to the BCD store. This may be necessary if the user chose to install Windows XP after they installed Windows Vista. Prior to running these commands, it will be necessary to run the command “Bootsect /nt60 ALL” to repopulate the Windows Vista boot sector. This first command creates the boot entry: bcdedit /create {ntldr} /d “Windows XP Professional” This command adds that boot entry to the display order for the boot menu: bcdedit /displayorder {ntldr} /addlast The new entry still lacks the pointer to the loader file for the down-level operating system. The partition pointer is set with this command: Bcdedit /set {ntldr} device partition=c: Finally, this next command sets the path to the legacy boot loader on the partition identified above: Bcdedit /set {ntldr} path ntldr How do I remove a legacy boot entry? Issue I upgraded from Windows XP to Windows Vista and I see an option in the boot menu for “Earlier version of Windows”. How do I remove this? Resolution The steps listed below describe the process for removing the “Earlier version of Windows” option from the boot menu. After making this change, the user’s PC should boot straight into Windows Vista without displaying the boot menu since there will now be just one entry. Open an elevated command prompt. Type the following command and press enter. Be sure to include the “curly braces” style brackets around “{ntldr}”. Bcdedit /delete {ntldr} –f This will remove the old Windows XP ntldr entry and the machine will boot directly into Vista. User is unable to boot to Windows Vista after installing a previous version of Windows. Issue Windows Vista no longer starts after I installed an earlier version of the Windows operating system in a dual-boot configuration. Resolution For More Information, see the following article in the Microsoft Knowledge Base:Windows Vista no longer starts after you install an earlier version of the Windows operating system in a dual-boot configuration (919529) User receives the following error at boot – 0xC0000034 Issue On boot you may see the following error: File: BootBCD Status: 0xc0000034 Info: The Windows Boot Configuration Data file is missing required information Cause This error indicates that the BOOTMGR entry is not present in the BCD store. This can be resolved using the following command: Bcdedit /create {bootmgr} /d “Windows Boot Manager” This can also indicate that the actual BCD file is missing from the drive or has been moved. Resolution When this is the case we can do several things to resolve the issue: Boot the system into WinRE and choose the Startup Repair option, this will attempt to restore the file. Reboot the system after the command completes to verify that it worked. Verify that the BCD has not been moved from the Boot folder and the the Boot folder still exists. If available, restore the BCD from a backup copy. Use the BOOTREC.EXE /RebuildBCD command in WinRE. If BOOTREC is successful, it will present you with an installation path to a Windows directory. To add the entry type Yes. A confirmation should be presented stating that the entry successfully completed. User receives the following error at boot – 0xC0000098 Issue On boot you may see the following error: File: BootBCD Status: 0xc0000098 Info: The Windows Boot Configuration Data file is does not contain a valid OS entry Cause This error indicates that there are no OS entries in the BCD. Resolution This can be resolved using the following command: Bcdedit /displayorder {
nd has caused the partition/disk structure to change? Resolution This can be corrected by running these commands in the order shown: The following command is run, with E: changed to the drive where the Vista DVD us E:boot bootsect /nt60 ALL This next command changes sets the boot device for the boot entry. As with the above command, replace Z: in the command with the drive letter where the BOOT folder is located. bcdedit /set {GUID} device partition=Z: Note that if you added a new hard disk to your PC, you will need to ensure that the BIOS boot order was not changed, and that the system is not looking to the new hard disk for a boot sector. How can I change the default operating system when dual booting? Issue This scenario describes the necessary steps for defining which operating system will start by default when in a dual boot configuration. In most cases, the OS that was installed last will be the OS that starts unless another OS is chosen in the boot menu. Resolution To change the default OS to point to a previous version of Windows use one of the resolutions listed below. Resolution 1: (Using Startup and Recovery Options) Boot the system to Windows Vista Click Start, right-click on Computer, and choose properties. Click the Advanced system settings option on the left. Select the Advanced tab. Click the Settings button under Startup and Recovery Under System Startup, set the Default operating system to the desired operating system and click OK. Note: For a dual-boot system with Windows XP and Windows Vista the option will be titled “Earlier version of Windows”. Resolution 2: (Using BCDedit.exe) Boot the system to Windows Vista Launch an elevated command prompt. Type the following command and press enter (be sure to include the “curly-braces” style brackets around ntldr) bcdedit /default {ntldr} Using MSConfig to Edit Boot Entries The System Configuration Utility (MSConfig) in Windows Vista can be accessed using the following methods. Click Start and type MSCONFIG in the Search box, then hit Enter. Click Start, All Programs, Accessories, System Tools, System Configuration. Press “Window Key” + R to open the Run dialog, and type MSConfig there. When compared to BCDEDIT, MSConfig does not have the same level of functionality, but it can be far easier to use when working with a customer. With MSConfig you can change the default boot operating system, delete a boot menu item, or change the timeout display period for the boot menu. Troubleshooting This section provides general troubleshooting recommendation for BCD and startup in Windows Vista. Use MSDT when applicable You can use the Microsoft Support Diagnostics Tool (MSDT) to obtain both a copy of the customers BCD store, as well as the output of the command BCDEDIT when run from their PC. Use the setup troubleshooting mode of MSDT to gather this information. Backup and Restore the BCD Before making changes to BCD with BCDEDIT, it is recommended that you make a backup of the current BCD. This backup can be used to return to the current state later, in the event any problems are encountered. Export the BCD Store To export the current BCD store, using the following command: bcdedit /export C:BCD_Backup Import a Backup BCD Store The following command restores the backup previously created backup: bcdedit /import C:BCD_Backup Note: Importing a backup BCD store replaces the contents of the current store. As a result, entries added after the backup was created will be removed. How can I recover from the accidental deletion of a BCD entry? For example, if the Windows Vista installation is deleted using the following command: Bcdedit /delete {
rder This command sets the display order of boot menu items for example: bcdedit.exe /displayorder {ntldr} {current} Bcdedit /timeout This command changes the default 30 second time-out of the boot menu. To change the timeout to 15 seconds, use the following command: bcdedit /timeout 15 Appendix Sample BCDEDIT output Output of a BCDEDIT /ENUM ALL command is provided below. This is the first command you should run on BCD issues to provide detail on everything that currently resides in the store. From the store output below it is apparent that two operating systems are installed on this system; also visible are the memory tester, EFI partition information (when needed), etc. Windows Boot Manager ——————– Identifier: {9af34534-9454-11da-a9c3-c88b61128f93} Type: 10100002 Device: partition=D: Path: EFIMicrosoftBootbootmgfw.efi Description: Windows Boot Manager Locale: en-US Inherit options: {globalsettings} Boot debugger: No Default: {cbd971bf-b7b8-4885-951a-fa03044f5d71} Timeout: 30 Windows Boot Manager ——————– Identifier: {bootmgr} Type: 10100002 Device: partition=D: Description: Windows Boot Manager Locale: en-US Inherit options: {globalsettings} Boot debugger: No Default: {current} Display order: {ntldr} {current} Timeout: 30 Windows Boot Loader ——————- Identifier: {current} Type: 10200003 Device: partition=C: Path: Windowssystem32winload.exe Description: Microsoft Windows Locale: en-US Inherit options: {bootloadersettings} Boot debugger: No Windows device: partition=C: Windows root: Windows Resume application: {9af34538-9454-11da-a9c3-c88b61128f93}
No Execute policy: OptIn Kernel debugger: No EMS enabled in OS: No Resume from Hibernate ——————— Identifier: {9af34538-9454-11da-a9c3-c88b61128f93} Type: 10200004 Device: partition=C: Path: Windowssystem32winresume.exe Description: Windows Resume Application Locale: en-US Inherit options: {resumeloadersettings} Boot debugger: No Hibernate data path: hiberfil.sys Windows Memory Tester ——————— Identifier: {9af34535-9454-11da-a9c3-c88b61128f93} Type: 10200005 Device: partition=D: Path: bootmemtest.exe Description: Windows Memory Diagnostic Locale: en-US Inherit options: {globalsettings} Bad RAM access: Yes Boot debugger: No Windows Memory Tester ——————— Identifier: {memdiag} Type: 10200005 Device: partition=D: Path: bootmemtest.exe Description: Windows Memory Diagnostic Locale: en-US Inherit options: {globalsettings} Bad RAM access: Yes Boot debugger: No Windows Legacy OS Loader ———————— Identifier: {ntldr} Type: 10300006 Device: partition=D: Path: ntldr Description: Legacy (pre-Longhorn) Microsoft Windows Operating System Boot debugger: No Windows Legacy OS Loader ———————— Identifier: {9af34536-9454-11da-a9c3-c88b61128f93} Type: 10300006 Device: partition=D: Path: ntldr Description: Legacy (pre-Longhorn) Microsoft Windows Operating System Boot debugger: No EMS Settings Group —————— Identifier: {emssettings} Type: 20100000 Pre-boot EMS Enabled: Yes Kernel Debugger Settings Group —————————— Identifier: {dbgsettings} Type: 20100000 Debugger type: Serial Debugger port number: 1 Debugger baudrate: 115200 RAM Defect Group —————- Identifier: {badmemory} Type: 20100000 Global Settings Group ——————— Identifier: {globalsettings} Type: 20100000 Inherit options: {dbgsettings} {emssettings} {badmemory} Boot Loader Settings Group ————————– Identifier: {bootloadersettings} Type: 20200003 Inherit options: {globalsettings} Resume Loader Settings Group —————————- Identifier: {resumeloadersettings} Type: 20200004 Inherit options: {globalsettings}
It is also important to know the information that BCD is currently trying to use to boot the system. This information can be gathered with the BCDEDIT /V command. In the example below, we can see that two operating systems are installed on this system, due to the fact that two boot entries are present in the BCD. The Windows Legacy OS Loader indicates that a down-level Windows OS is currently installed to D: and is using the NTLDR file to boot. The Windows Boot Loader section shows that Windows Vista is installed to C: and is using the WINLOAD.EXE file to boot. : Windows Boot Manager ——————– Identifier: {9dea862c-5cdd-4e70-acc1-f32b344d4795} Type: 10100002 Device: partition=D: Description: Windows Boot Manager Locale: en-US Inherit options: {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e} Boot debugger: No Default: {9af34537-9454-11da-a9c3-c88b61128f93} Display order: {466f5a88-0af2-4f76-9038-095b170dc21c} {9af34537-9454-11da-a9c3-c88b61128f93} Timeout: 30 Windows Legacy OS Loader ———————— Identifier: {466f5a88-0af2-4f76-9038-095b170dc21c} Type: 10300006 Device: partition=D: Path: ntldr Description: Legacy (pre-Longhorn) Microsoft Windows Operating System Boot debugger: No Windows Boot Loader ——————- Identifier: {9af34537-9454-11da-a9c3-c88b61128f93} Type: 10200003 Device: partition=C: Path: Windowssystem32winload.exe Description: Microsoft Windows Locale: en-US Inherit options: {6efb52bf-1766-41db-a6b3-0ee5eff72bd7} Boot debugger: No Windows device: partition=C: Windows root: Windows Resume application: {9af34538-9454-11da-a9c3-c88b61128f93} No Execute policy: OptIn Kernel debugger: No EMS enabled in OS: No
Labels: AD, OS, Setting, Windows Vista by Koolvisutjit, Sam 3/22/07 Delete
1 – 25 of 50 Older ›
More from my site
The post The Windows Vista boot process appeared first on ModSNOTE.