Configure Multiple Hard Drives
Applies To: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2
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
Identifying a Disk Location Path
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>
Selecting Drives
Selecting the System Drive
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.
Selecting Non-System Drives
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
Identifying the System Drive After a Reboot
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
Formatting Non-System Drives
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
Concepts
Hard Disk Location Path Format