Support for Windows Vista Service Pack 1 (SP1) ended on July 12, 2011. To continue receiving security updates for Windows Vista, make sure that you're running Windows Vista with Service Pack 2 (SP2). For more information, refer to this Microsoft webpage: Support is ending for some versions of Windows.

Symptoms

Consider the following scenario:

You have a computer that's running one of the following operating systems:

Windows Server 2012 R2

Windows Server 2012

Windows Server 2008 R2

Windows Server 2008

Windows 8

Windows 7

Windows Vista

You add two Serial Advanced Technology Attachment (SATA) or RAID hard disks to the computer.

The SATA or RAID hard disks are attached to channels 0 and 1.

In this scenario, Disk 0 may not be assigned to the hard disk on channel 0, and Disk 1 may not be assigned to the hard disk on channel 1. You expect the disk assignment numbers to match the corresponding SATA or RAID channel numbers.

Note You may experience this problem if you configure the operating system during installation or if you perform a recovery process that was provided by the computer manufacturer. This problem may also occur during regular computer startup. Therefore, hard disks may have different disk numbers across multiple system startups. Also, drives may enumerate in different orders if the operating mode of the hard disk controller is changed in the BIOS (for example, RAID mode versus non-RAID mode).

Cause

The disk-assignment numbers may not necessarily match the corresponding SATA or RAID channel numbers.

The BIOS may or may not enumerate disks in a specific order. There is no direct relationship between the BIOS order, and the order in which Windows numbers the disks. During startup, Windows switches from using the BIOS INT13 support to native Windows drivers to access disks. Windows waits for several seconds for the system disk to enumerate through Plug and Play. When there is a match within the time-out period, normal startup will proceed. Otherwise, the system will trigger a bug check with Stop error code of 0x7B. Windows uses other mechanisms to differentiate disks, as Windows has no control over the disk-numbering process before startup. Windows has no information about any changes to hardware when the computer is turned off. Therefore, Windows initiates its own query for device enumeration.

The disk numbers that are assigned by Windows after it switches to native Windows storage controller drivers during startup are dependent solely on the order in which the disks are enumerated and processed by Plug and Play. Windows will enumerate available fixed disks, followed by removable disks, assuming that the correct native Windows drivers are already present and installed on the system. Various uncontrollable timing factors may affect the enumeration order. For example, most IDE controllers are designed to specifically enumerate the Master channel, wait two seconds, and then enumerate the Slave channel. This has the effect of providing an apparently consistent enumeration order, but it is actually a side effect of the hardware implementation. SATA controllers have a different behavior and do not experience this same side effect.

Devices are presented in the order in which they are enumerated. Therefore, the disk assignment numbers may change between startups. For example, assume that you run Windows or Windows Server Setup on a computer that has two unformatted SATA or RAID hard disks. In this situation, Windows may present the second hard disk as Disk 0 when you are prompted for the disk on which to install the operating system. The enumeration order may change over time between system boots, depending on timing factors such as aging hard disks taking slightly longer to spin up.

Resolution

When you set up any of the operating systems that are listed in the "Symptoms" section on a computer that has multiple SATA or RAID hard disks, check the disk information to verify the drive on which you will set up the system. For example, on the screen that lets you select the drive for the setup destination, verify the volume name and the available space.

To see the assigned disk numbers, use any of the following methods:

Run the Disk Management console. To do this, click Start, type diskmgmt.msc in the Start Search box, and then click diskmgmt.msc in the Programs list.

Use the Diskpart.exe command-line utility to run the list disk command.

During Windows or Windows Server Setup, the assigned disk numbers are listed when you are prompted to select a drive and a partition for the installation.

Note Under certain circumstances, it may be difficult to notice that the disk numbering does not match the corresponding SATA or RAID channel numbers. For example, if both the SATA or RAID hard disk sizes are identical, it may be difficult to determine the identity of the disks by using these methods.

More Information

When you set up one of the operating systems that are listed in the "Symptoms" section on a computer that has multiple hard disks, you expect the disk assignment numbers to match the corresponding SATA or RAID channel numbers. If you experience mismatched channel assignments, you may set up the operating system on the wrong drive, or you may try to format the incorrect drive partition. Therefore, you may lose important data.

Additionally, when you install Windows Server 2012, Windows Server 2008 R2, Windows 8, or Windows 7, the installation creates a system partition alongside the Windows partition by default. The system partition is created to accommodate a BitLocker requirement. BitLocker requires that the boot files and Windows files are located on separate partitions. If the preselected default hard disk is not changed, the system partition is created on the disk that is detected as Disk 0.

Microsoft has confirmed that this problem occurs because of design limitations in the Microsoft products that are listed in the "Applies to" section. This problem occurs because drives are enumerated in the order in which they are presented to the operating system through Plug and Play. Any apparent consistency in disk numbering is coincidental and/or a side effect of the equipment and drivers used.

References

For more information about a related issue, click the following article number to view the article in the Microsoft Knowledge Base:

937252 Volume numbers in the "Volume ###" column may change every time that you run the "List Volume" command in the Diskpart.exe utility in Windows

For more information about PnP enumeration and hard disk drive letter assignments in Windows Server 2003 and Windows XP, click the following article number to view the article in the Microsoft Knowledge Base: