The other day we ran into an interesting customer issue.  The customer had 4 identical drives on the system and had previously used Windows 7 Backup to create a system image of his system and boot partitions. He then ran into a problem where Windows was no longer bootable and he needed to restore from an image.  We had him boot into Windows Recovery Environment (WinRE) using his system repair disc (the original Win7 media could also have been used).

Once in WinRE, we chose System Image Recovery and let it select the latest available system image which had been backed up to his F: drive on one of the hard disks.  To be thorough, we then chose the option to "Format and repartition disks" and then clicked on the "Exclude disks…" option.  This is where things became interesting as we were presented with the following possible disks to exclude:

ST3500418AS (Disk 0)    465.76 GB
ST3500418AS (Disk 1)    465.76 GB
ST3500418AS (Disk 2)    465.76 GB

Disk 3 was already excluded as it contained the system image to be restored.  As the customer wanted to restore the image to the same drive that previously had Windows on it, he wanted to know which disk he should select to repartition and format.  He did not want to touch his other 2 drives as they had a bunch of data on it.  Based on KB937251 (http://support.microsoft.com/?kbid=937251), we knew that we could not trust Disk 0 being the same disk that previously had Windows on it and was connected to SATA 0 on the motherboard.  Thus, we needed a workaround to ensure that we did not format and repartition the wrong disk.

The solution was to use Diskpart.exe while still in the WinRE to dump out the details of each disk to find the one we wanted to use.  We used SHIFT+F10 to open a command window, ran Diskpart.exe and followed the steps below:

Microsoft DiskPart version 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: MININT-CM30U4C

DISKPART> LIST DISK

Disk ###  Status         Size     Free     Dyn  Gpt
--------  -------------  -------  -------  ---  ---
Disk 0    Online          465 GB      0 B        
Disk 1    Online          465 GB  1024 KB        
Disk 2    Online          465 GB  1024 KB        
Disk 3    Online          465 GB  1024 KB        

DISKPART> SELECT DISK 0

Disk 0 is now the selected disk.

DISKPART> DETAIL DISK

Disk ID: 27A4D86D
Type   : SATA
Status : Online
Path   : 0
Target : 0
LUN ID : 0
Location Path : PCIROOT(0)#PCI(1F02)#ATA(C00T00L00)
Current Read-only State : No
Read-only  : No
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
----------  ---  -----------  -----  ----------  -------  ---------  --------
Volume 1     C   System Rese  NTFS   Partition    100 MB  Healthy            
Volume 2     G   OS           NTFS   Partition    465 GB  Healthy
           

Using the DETAIL DISK command in Diskpart.exe we were able to see the volume label as well as partition information which allowed us to choose the correct disk to format and repartition before restoring our image.