Microsoft KB Archive/300415

= A Description of the Diskpart Command-Line Utility =

Article ID: 300415

Article Last Modified on 12/1/2007

-

APPLIES TO


 * Microsoft Windows XP Home Edition
 * Microsoft Windows XP Professional
 * Microsoft Windows XP Professional x64 Edition

-



This article was previously published under Q300415



SUMMARY
This article describes the Diskpart utility. You can use this utility to enable storage configuration from a script, a remote session, or another command prompt. Diskpart enhances the Disk Administrator graphical user interface (GUI).



MORE INFORMATION
Diskpart differs from many command-line utilities because it does not operate in a single-line mode. Instead, after you start the utility, the commands are read from standard input/output (I/O). You can direct these commands to any disk, partition, or volume.

Comparison with Disk Management
Diskpart enables a superset of the actions that are supported by the Disk Management snap-in. The Disk Management snap-in prohibits you from inadvertently performing actions that may result in data loss. It is recommended that you use the Diskpart utility cautiously because Diskpart enables explicit control of partitions and volumes.

You can use Diskpart to convert a basic disk to a dynamic disk. The basic disk can either be empty or contain either primary partitions or logical drives. The basic disk can be a data disk or system or boot drive. The basic disk cannot have fault-tolerant disk driver (FtDisk) sets such as stripes or mirrors. To convert basic disks that have FtDisk driver sets, use Disk Management on Windows 2000 or convert the disk before you upgrade to Windows XP.

You can use Diskpart to convert a dynamic disk to a basic disk. You must delete any dynamic volumes before the conversion process. It is not recommended that you delete partitions on a dynamic disk except in emergency situations. It is recommended that you delete all volumes on the drive, and then convert the disk to basic. You must delete all dynamic data partitions. Also, never mix the basic primary and dynamic partitions on the same drive. If you do so, the computer may be unable to restart.

You can use Diskpart to create a partition at an explicit disk offset. The Disk Management snap-in places the partition at the end of any occupied area or on the first sufficiently large area. On master boot record (MBR) disks, the partition offset and the size are rounded to preserve the required cylinder alignment. Offsets are rounded to the closest valid value, and the size is always rounded up to the next valid value. Diskpart does not assign a drive letter to a newly created partition. Use the assign command to assign either a mount point or a drive letter.

Diskpart follows the same policy as the snap-in. Dynamic disks can only be created on fixed disks. You cannot convert removable disks, such as 1394 or universal serial bus (USB) drives, to dynamic disks.

Diskpart permits certain partition deletion operations that are blocked by the snap-in. For example, you can use Diskpart to delete MBR OEM partitions. However, these partitions often contain files that are important to the platform operation. Diskpart blocks the deletion of the current system, boot, or paging volumes and partitions. Also, Diskpart blocks deletion of the partitions that underlie dynamic disks.

You cannot use Diskpart to create a partition on removable media. Windows supports at most one MBR partition on removable media. If the media is manufactured with an MBR, that MBR cannot be altered, but the MBR is followed even if multiple partitions or logical drives are configured. If the media is manufactured without an MBR, the media is treated as a &quot;superfloppy&quot; and no partition structure is written to the media.

The drive letter for a removable drive is associated with the drive, and not with the media. You can use Diskpart to change the drive letter.

Diskpart causes disk signatures, GUID partition table (GPT) disk globally unique identifiers (GUIDs), and GPT partition GUIDs to be generated. You cannot explicitly set these items by using Diskpart.

The Diskpart utility (like the snap-in) includes support for the new Itanium disk partition scheme called GPT. You cannot use GPT disks on any x86-based Windows XP-based or Windows 2000-based computers. Diskpart enables the conversion of GPT partitioning to MBR partitioning only for empty disks.

You can use Diskpart to delete missing dynamic disks. Dynamic disks contain a shared database; all of the dynamic disks on a computer have knowledge of all other dynamic disks on that computer. When dynamic disks are moved, the original computer considers theses disks as &quot;missing&quot;.

Drive letters are not automatically assigned when you use Diskpart. To ensure that a given partition or volume has a drive letter, you must explicitly assign a drive letter. You can either assign the drive letter or allow the next available drive letter to be allocated.

Setting Focus
Most Diskpart commands operate on a specific target disk, partition, or volume. The targeted object has &quot;focus.&quot; Focus simplifies the common configuration task in which you create multiple partitions on the same disk. An object is put into focus by the select command. All Commands except for list, help, rem, exit, or help require focus.

Use the select command to explicitly change the focus. To implicitly change the focus, use a command such as create. You must set the disk focus before you manage a basic disk. On basic disks, the partition focus and volume focus are the same. If you change the focus on one item, you change the focus on the other. On dynamic volumes, only the volume focus is important because the previous partition focus is always lost and the disk focus is only important for simple volumes.

Consider the following examples of a computer that has two disks:
 * Each disk contains two primary partitions. The first disk contains the C and D partitions; the second disk contains the E and F partitions. You must set the disk focus to disk 1 before you set the partition focus to either the C or D partitions. You can set the volume focus to either the C, D, E, or F partitions at any time. In this example, if you set the volume focus to the C or D partition, the disk focus does not change; however, if you set the volume focus to the E or F partitions, the disk focus may be moved to the other disk.
 * Each disk is dynamic and contains a simple volume and free space. The first disk contains the C partition, and the second disk contains the E partitions. You must set the disk focus before you add a simple volume to the first disk. To extend the C partition, you need to set only the volume focus. Similarly, to add a mirror to the E partition, you need to set only the volume focus to the E partition. If you create a simple volume or extend an existing volume onto the same disk, you do not change the disk focus. If you add a mirror, create a stripe set, or extend an existing volume onto a different disk, you can cause the disk focus to be lost.

Scripting
Diskpart supports scripted operations. To initiate a Diskpart script, use the diskpart /s script.txt command. You can script Diskpart on Windows XP, Windows 2000, Remote Installation Services (RIS) unattended install environments, or on the Windows Preinstall Environment (PE) for OEMs.

By default, Diskpart can quit command processing and return an error code if there is a problem in the script. To continue to run a script in this scenario, include the noerr parameter on the command. This parameter allows you to use a single script to delete all partitions on all data drives, regardless of the total number of drives. However, not all commands support the noerr parameter. Even if you use the noerr parameter, an error is always returned on command syntax errors.

The following list describes the error codes for Diskpart:
 * 0 - No error occurred. The entire script ran without failure.
 * 1 - A fatal exception occurred. There may be a serious problem.
 * 2 - The arguments specified on a Diskpart command line were incorrect.
 * 3 - Diskpart was unable to open the specified script or output file.
 * 4 - One of the services Diskpart uses returned a failure.
 * 5 - A command syntax error occurred. The script failed because an object was improperly selected or was invalid for use with that command.

After you run Diskpart, the Diskpart version and current computer name are displayed.

Commands to Set Focus
select

Use the select command to set the focus to the specified target. To obtain a list of focus types, leave the Type field blank. If you do not specify an identification (ID) number, the current focus object is displayed.

select disk[=n]

Use the select disk command to set the focus to the disk that has the specified Windows NT disk number. If you do not specify a disk number, the command displays the current in-focus disk.

select partition[=n/l]

Use the select partition command to set the focus to the specified partition. If you do not specify a partition, the current in-focus partition is displayed.

On basic disks, you can specify the partition by either index, drive letter, or mount point. You can only specify the partition by index on dynamic disks.

select volume[=n/l]

Use the select volume command to set the focus to the specified volume. If you do not specify a volume, the command displays the current in-focus volume.

You can specify the volume by either index, drive letter, or mount point path. On a basic disk, if you select a volume, the corresponding partition is put in focus.

Commands to Display Disk Configuration
Use the list command to display a summary. To display more information, set the focus, and then use the detail command.

detail disk

Use the detail disk command to obtain the detailed information about the current in-focus disk, for example: Diskpart> select disk 3 Disk 3 is now the selected disk. Diskpart> detail disk Maxtor 90432D2 Disk ID: F549D151 Type  : IDE Bus   : 0 Target : 0 LUN ID : 0 Volume ### Ltr  Label        Fs     Type              Size     Status     Info -- ---  ---  -    ---  -     Volume 0     F   My RAID Set  NTFS   RAID-5            4096 MB  Healthy Volume 1    G   FATSTRIPE    FAT32  Stripe            6144 MB  Healthy Volume 2    H   My Mirror    NTFS   Mirror            2048 MB  Healthy Volume 3    I   My Span      NTFS   Spanned              9 GB  Healthy detail partition

Use the detail partition command to obtain detailed information about the current in-focus partition; Diskpart> select disk 0

Disk 0 is now the selected disk.

Diskpart> select partition 1

Partition 1 is now the selected partition.

Diskpart> detail partition

Partition 0 Type : 07 Hidden: No Active: Yes

Volume ### Ltr  Label        Fs     Type        Size     Status     Info -- ---  ---  -  --  ---  -  detail volume
 * Volume 2   C                 NTFS   Partition   4110 MB  Healthy    System

Use the detail volume command to obtain the detailed information about the current in-focus volume, for example: Diskpart> select volume 1 Volume 1 is now the selected volume. Diskpart> detail volume Disk ### Status      Size     Free     Dyn  Gpt -- ---  ---  ---  ---   Disk 1    Online         8 GB      0 B   * Disk 2   Online         8 GB      0 B   * Disk 3   Online         8 GB      0 B   * list disk

Use the list disk command to obtain summary information about each disk in the computer. The disk with the asterisk (*) has the current focus. Only fixed disks (for example, integrated device electronics [IDE] or small computer system interface [SCSI]) or removable disk (for example, 1394 or USB) are listed. The removable drives are not displayed. Diskpart> select disk 3 Disk 3 is now the selected disk. Diskpart> list disk Disk ### Status      Size     Free     Dyn  Gpt -- ---  ---  ---  ---  Disk 0    Online      4118 MB      0 B  Disk 1    Online         8 GB  4002 MB   * Disk 2   Online         8 GB      0 B   * Disk M0  Missing        8 GB      0 B   * list partition
 * Disk 3   Online         8 GB      0 B   *

Use the list partition command to obtain information about each partition on the in-focus disk, for example: Diskpart> select disk 4 Disk 4 is now the selected disk. Diskpart> list partition Partition ### Type              Size     Offset -   ---  ---   Partition 1    Primary           4094 MB    31 KB   Partition 2    Extended          4581 MB  4094 MB   Partition 3    Logical           2047 MB  4094 MB   Partition 4    Logical           2533 MB  6142 MB All partitions (regardless of type) are displayed. list volume

Use the list volume command to obtain information about each volume in the computer, for example: Diskpart> list volume Volume ### Ltr  Label        Fs     Type              Size     Status      Info -- ---  ---  -    ---  --    Volume 0     F   My RAID Set  NTFS   RAID-5            4096 MB  Healthy Volume 1    G   FATSTRIPE    FAT32  Stripe            6144 MB  Failed Volume 2    H   My Mirror    NTFS   Mirror            2048 MB  Healthy Volume 3    I   My Span      NTFS   Spanned              9 GB  Healthy Volume 4    D                CDFS   CD-ROM                0 B  Volume 5     C                NTFS   Partition         2047 MB  Healthy     System Volume 6    E                NTFS   Partition         2063 MB  Healthy     Boot Volume 7    J   My Primary   NTFS   Partition         4095 MB  Healthy Volume 8    K   My Logical   NTFS   Partition         2047 MB  Healthy Volume 9    L   My Next Log  NTFS   Partition         2534 MB  Healthy

Commands to Manage Basic Disks
This section describes commands that you can use to create and delete partitions and to assign drive letters and mount points. The commands in this section apply only to basic disks. Refer to the following sections for commands that are valid on dynamic disks or for commands that you can use to convert basic disk to dynamic disks.

On all MBR disks, the size or offset parameters are rounded up to cylinder alignment. On GPT disks, the size or offset parameters are rounded to sector alignment. If an offset parameter is not specified, the partition is placed in the first unoccupied contiguous disk extent that is large enough. If a size parameter is not listed, the partition may be extended to occupy the determined disk extent up to the size of the entire disk.

After the new disks are first discovered, they are assumed to be MBR disks. You must explicitly convert a disk to GPT before you attempt to create a GPT partition. It is recommended that you create the MSR as the first partition on every data disk and the second partition (after the ESP) on any system or boot disk. After you convert from MBR to GPT, the MSR partition is automatically created on the disk.

After you create any new partition, the newly created partition gains the partition focus. After you delete any partition, the partition focus is lost. The disk focus remains unchanged in all cases.

active

Use the active command to set the current in-focus partition to &quot;active.&quot; This setting informs the firmware that the partition is a valid system partition. Diskpart does not validate the partition contents.

NOTE: If you use this command, the computer may be unable to restart.

assign letter=l]/[mount=path [noerr]

Use the assign command to assign a letter or mount point to the current in-focus partition. If you do not specify a drive letter, the next available drive letter is assigned. If the letter or mount point is already in use, an error is generated unless you use the noerr parameter.

You can use this command to change the drive letter that is associated with a removable drive.

The drive letter assignment is blocked on the system, boot, or paging volumes. This command cannot be used to assign a drive letter to an OEM partition or any GPT partition, other than the Msdata partition.

create partition primary [size=n] [offset=n] [id=byte/guid] [noerr]

Use the create partition primary command to create a primary partition of length size and a starting address offset on the current drive.

If an ID byte is not specified on an MBR disk, this command creates a partition with type &quot;0x6.&quot; You can use the ID parameter to specify the partition type. There is no validity or other checking of the ID byte.

If you do not specify an ID GUID on a GPT disk, this command creates an Msdata partition. You can use the ID parameter to specify any GUID. There is no validity, duplication, or other checking of the GUID. The partition instance GUID is automatically generated.

MBR and GPT partitions are created so that Windows does not automatically allocate drive letters. You must explicitly assign a drive letter.

create partition extended [size=n] [offset=n] [noerr]

Use the create partition extended command to create an extended partition of length size and starting address offset on the current drive. The drive must be an MBR disk.

After the partition is created, the new extended partition gains the focus. You can create only one extended partition. You can create logical drives only after you create an extended partition.

create partition logical [size=n] [offset=n] [noerr]

Use the create partition logical command to create a logical drive of length size and starting address offset in an existing extended partition on the current disk. The drive must be an MBR disk.

If an offset is not listed, the logical drive is placed in the first unoccupied contiguous disk extent in the extended partition that is large enough. If a size is not listed, the partition may be extended to occupy the entire extended partition.

After you create the partition, the logical drive gains the partition focus.

create partition msr [size=n] [offset=n] [noerr]

The create partition msr command is the equivalent of creating the partition with the MSR GUID E3C9E316-0B5C-4DB8-817D-F92DF00215AE.

create partition esp [size=n] [offset=n] [noerr]

The create partition esp command is the equivalent of creating the partition with ESP GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B.

delete partition [noerr] [override]

Use the delete partition command to delete the current in-focus partition.

Diskpart blocks the deletion of the current system, boot, or paging volume. To delete either an ESP, MSR, or a known OEM partition, you must specify the override parameter.

extend [size=n][noerr]

Use the extend command to cause the current in-focus volume to be extended into contiguous unallocated space. The unallocated space must follow (it must be of higher sector offset than) the in-focus partition. The intended use of this command is to grow an existing basic data partition into newly created space on an extended hardware Raid logical unit number (LUN).

If the partition had been previously formatted with the NTFS file system, the file system is automatically extended to occupy the larger partition, and data loss does not occur. If the partition had been previously formatted with any file system format other than NTFS, the command is unsuccessful and does not change the partition.

Diskpart blocks the extension of only the current system or boot partition.

remove letter=l]/[mount=path]/[all [noerr]

Use the remove command to remove a letter or mount point from the current in-focus partition. If you specify the all parameter, all of the current drive letters and mount points are removed. If you do not specify a letter or mount point, the drive letter is removed.

Use this command to change the drive letter that is associated with a removable drive.

The drive letter removal is blocked on the system, boot, or paging volumes. You cannot use this command to remove a drive letter to an OEM partition, any GPT partition with an unrecognized GUID, or any of the special non-data, GPT partitions, such as, the ESP partition.

Commands to Manage Dynamic Disks
You can use the commands that are described in this section to create and delete volumes, repair fault tolerant volumes, and import disks.

The size parameters are always rounded up to MB alignment. You cannot specify an explicit offset. The volume is always placed in the first unoccupied contiguous disk extent that is large enough. If a size is not listed, the largest possible volume is created.

After a volume is created, the volume focus is put on the newly created volume. The current disk focus is lost if the volume spans the disks. The volume focus is lost if a volume is deleted. If there had been a valid disk focus before you deleted the volume, that disk focus remains.

NOTE: Diskpart forces the creation of an MSR partition on any empty disk when that disk is converted to a dynamic or GPT disk.

active

Use the active command to set the current in-focus volume as &quot;active.&quot; This setting informs the firmware that the partition is a valid system partition. Diskpart verifies only that the volume is capable of containing an operating system bootable image, but the utility does not validate the partition contents. If you use this command, the computer may not be able to restart.

add disk=n [noerr]

Use the add command to add a mirror to the current in-focus volume on the specified disk. Only two mirror plexes are supported. The current in-focus volume must be a simple volume.

assign letter=l]/[mount=path [noerr]

Use the assign command to assign a letter or mount point to the current in-focus volume. If you do not specify a drive letter, the next available drive letter is assigned. If the letter or mount point is already in use, an error is generated unless you specify the noerr parameter.

The drive letter assignment is blocked on the system, boot, or paging volumes.

break disk=n [nokeep] [noerr]

Use the break command to break the current in-focus mirror.

By default, the contents of both mirror plexes are retained because both plexes become simple volumes. If you specify the nokeep parameter, only the specified plex is retained, the other plex is removed and converted to free space.

The original volume retains any and all drive letters or mount points. If the plex is not kept, the focus remains on the retained simple volume on the specified disk. Otherwise, the focus is changed to the specified retained plex on the specified disk. The plex becomes a simple volume; however, a drive letter is not assigned to the new volume.

create volume simple [size=n] [disk=n] [noerr]

Use the create volume simple command to create a simple volume of length size on the specified disk.

If you do not specify a size, the new volume can take up the remaining contiguous free space on the disk. If you do not specify a disk, the current in-focus disk is used.

After the volume is created, the disk focus is given to the targeted disk.

create volume stripe [size=n] disk=n[,n[,...]] [noerr]

Use the create volume stripe command to create a stripe set volume on the specified disks. The total size of the stripe volume is the size multiplied by (*) the number of disks.

If you do not specify a size, the largest possible stripe volume is created. The disk with the smallest available contiguous free space is determined. The size of that free space determines the size for the stripe volume. The same size is allocated on each disk.

create volume raid [size=n] disk=n[,n[,...]] [noerr]

Use the create volume raid command to create a Raid-5 set volume on the specified disks. An amount of space that is equal to &quot;size&quot; is allocated on each disk.

If you do not specify a size, the largest possible Raid 5 volume is created. The disk with the smallest available contiguous free space is determined. The size of that free space determines the size for the Raid 5 volume and the same size is allocated from each disk. The actual usable size of the volume is less than the size multiplied by the number of disks, because some of the space is used for the parity.

delete disk [noerr][override]

Use the delete disk command to delete a missing dynamic disk from the disk list.

If you do not specify the override parameter, all of the simple volumes that are contained on the disk are deleted and any mirror plexes are removed. If the disk contributes to a Raid 5 volume, the command is unsuccessful.

delete partition [noerr] [override]

Use the delete partition command to delete the current in-focus partition.

Diskpart blocks the deletion of any partitions that are used to contain existing online dynamic volumes. Those volumes must be deleted and the disk converted to basic. To delete an ESP, MSR, or known OEM partition, specify the override parameter.

You can delete partitions from dynamic disks, but you cannot create them. For example, you can delete an unrecognized GPT partition on a dynamic GPT disk. If you delete a partition, the free space does not become available. You can use this command to reclaim the space on a corrupted offline dynamic disk in an emergency situation in which you cannot use the clean command.

delete volume [noerr]

Use the delete volume command to delete the current in-focus volume. After you use this command, all data is lost.

extend disk=n [size=n] [noerr]

Use the extend command to extend the current simple or the extended volume onto the specified disk. The extend command only works with NTFS volumes.

If you do not specify a size, the volume can occupy all of the free space on the specified disk. Any existing disk focus is lost.

import [noerr]

Use the import command to import all of the disks from a foreign disk group.

If you set the focus on any disk in the foreign disk group, you can import all disks in the group. After you run this command, any existing volume or disk focus is lost.

online [noerr]

Use the online command to bring a disk or volume that had previously been taken offline back online. A change in focus does not occur if you use this command.

remove letter=l]/[mount=path]/[all [noerr]

Use the remove command to remove a letter or mount point from the current in-focus volume. If you use the all parameter, all of the current drive letters and mount points are removed. If you do not specify a letter or mount point, the path that is encountered first is removed.

The drive letter removal is blocked on the system, boot, or paging volumes.

retain

Use the retain command to prepare a dynamic simple volume to be used as a boot or system volume.

If you use the retain command on an x86-based computer, an MBR partition on the dynamic simple volume is created with focus. To create an MBR partition, the dynamic simple volume must start at a cylinder aligned offset and be an integral number of cylinders in size.

If you use the retain command on an Itanium-based computer, the retain command creates a GPT partition on the dynamic simple volume with focus.

Commands to Convert Disks
convert mbr [noerr]

Use the convert mbr command to set the partitioning style of the current disk to MBR. The disk may be a basic disk or a dynamic disk but the disk must not contain any valid data partitions or volumes.

convert gpt [noerr]

Use the convert gpt command to set the partitioning style of the current disk to GPT. The disk may be a basic or a dynamic disk but it must not contain any valid data partitions or volumes. This command is valid only on Itanium-based computers; it may be unsuccessful on x-86-based computers.

convert dynamic [noerr]

Use the convert dynamic command to change a basic disk into a dynamic disk. The disk may contain valid data partitions.

convert basic [noerr]

Use the convert basic command to change an empty dynamic disk to basic.

Miscellaneous Commands
exit

Use the exit command to stop Diskpart and return control to the operating system.

clean [all]

Use the clean command to remove partition or volume formatting from the current in-focus disk by zeroing sectors. By default, only the MBR or GPT partitioning information and any hidden sector information on MBR disks is overwritten. If you specify the all parameter, each and every sector can be zeroed, and all data that is contained on the drive can be deleted.

rem [...]

The rem command does nothing, and you can use it to comment script files.

rescan

Use the rescan command to rescan all I/O buses and cause any new disks that have been added to the computer to be discovered.

Help Commands
help

Use the help command to display a list of all commands.

For additional information on the Diskpart utility, search on Diskpart in the Help and Support Center in Windows XP.

Keywords: kbproductlink kbenv kbui kbinfo KB300415

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.