How to Configure Multiple Hard Drives
Published: February 29, 2012
Updated: May 31, 2012
Applies To: Windows 8, Windows Server 2012
If you are deploying Windows to a computer that has multiple hard drives, you can verify that the image is applied to a specific hard drive by using hardware-specific identifiers such as the location path or the hardware interrupt value.
The location path is a string that specifies the physical location that each drive is connected to the computer, for example: PCIROOT(0)#PCI(0100)#ATA(C00T00L00). When manufacturing a computer, use a consistent physical location when connecting your drives, and then use the location path string to identify each hard drive.
For BIOS-based computers or a computer that is running Virtual Disk Service (VDS), you can use the SELECT DISK=SYSTEM and SELECT DISK=NEXT commands to select the appropriate hard drive.
In this topic:
-
Identifying a Disk Location Path
-
Selecting the System Drive
-
Selecting Non-System Drives
-
Identifying the System Drive After a Reboot
-
Formatting Non-System Drives
-
Use the DiskPart commands: list disk and select disk <disk number> (Example: select disk 1) to navigate between the drives on your computer.
To show the location path of a selected drive, use the DiskPart command
detail disk.In the following example, the location path of the selected drive is PCIROOT(0)#PCI(0100)#ATA(C00T00L00).
DISKPART> detail disk HITACHI HTS722016K9SA00 Disk ID: 5E27161A Type : ATA Bus : 0 Target : 0 LUN ID : 0 Location Path : PCIROOT(0)#PCI(0100)#ATA(C00T00L00) Read-only : No Boot Disk : Yes PagefileDisk : Yes Hibernation File Disk : No CrashdumpDisk : Yes Clustered Disk : No Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 1 C NTFS Partition 149 GB Healthy System DISKPART>
-
BIOS-based computers: Use the command SELECT DISK=SYSTEM to select the default system drive.
This command selects the drive that has an interrupt 13h value of 80h. If the value 80h is assigned to a USB flash drive, this command selects a hard drive that has a value of 81h. For more information, visit the following Microsoft Developer Network (MSDN) website:
Converting Drive Letters to MS-DOS INT 13H Disk Drive Numbers
-
UEFI-based computers: To select a drive, use the DiskPart command SELECT DISK=<location path>.
Note Do not use the SELECT DISK=SYSTEM command or the GetSystemDiskNTPath API on Unified Extensible Firmware Interface (UEFI)-based computers to select the system drive. The SELECT DISK=SYSTEM command and the GetSystemDiskNTPath API identify the drive that the operating system was booted from as the system drive. If you boot from Windows® PE, this command selects the Windows PE drive as the system drive. If you boot from a system that has multiple drives that include an EFI system partition (ESP), this command may select the wrong drive.
-
Select the drive by location path. To select a drive, use the DiskPart command SELECT DISK=<location path>, where <location path> is the location path of your drive. This command helps specify a drive by location.
Example:
SELECT DISK=PCIROOT(0)#PCI(0100)#ATA(C00T00L00)
-
Select the drive by using the "NEXT" drive. Use the DiskPart command SELECT DISK=NEXT. This command helps specify any remaining hard drives, regardless of location. To select more drives, repeat the SELECT DISK=NEXT command to select each drive in order. If there are no more drives to select, DiskPart returns an error.
Note The computer maintains the context for the SELECT DISK=NEXT command as long as DiskPart continues running. If DISKPART exits, the computer loses this context. UEFI-based example:
SELECT DISK=PCIROOT(0)#PCI(0100)#ATA(C00T00L00) clean convert gpt create partition primary size=300 format quick fs=ntfs label="Windows RE Tools" set id=27 assign letter=t create partition primary size=100 format quick fs=ntfs label="System" assign letter=s active create partition msr size=128 create partition primary shrink minimum=15000 format quick fs=ntfs label="Windows" assign letter=w format quick fs=ntfs label="Recovery image" attributes volume set nodefaultdriveletter assign letter="R" SELECT DISK=NEXT clean convert gpt create partition msr size=128 create partition primary format quick fs=ntfs label="Data" assign letter=z
After you reboot, drive lettering may change. You can use the following example script to select the system drive and then reassign letters to the ESP, recovery, and Windows partitions.
SELECT DISK=PCIROOT(0)#PCI(0100)#ATA(C01T01L00) select partition=1 assign letter=s select partition=2 assign letter=t select partition=3 assign letter=w
This example script selects the system drive and then skips past the drive without modifying the contents of the drive. The script then selects two non-system drives and creates a single, formatted, empty partition on each drive. The partitions do not receive an image, so it is not necessary to specifically identify them.
UEFI-based example:
SELECT DISK=PCIROOT(0)#PCI(0100)#ATA(C01T01L00) SELECT DISK=NEXT clean convert gpt create partition msr size=128 create partition primary format quick fs=ntfs label="DataDrive1" SELECT DISK=NEXT clean convert gpt create partition msr size=128 create partition primary format quick fs=ntfs label="DataDrive2"
See Also
