Diskpart 命令行实用工具介绍

来源:互联网 发布:ubuntu修复grub引导 编辑:程序博客网 时间:2024/06/05 08:35

本文转载自:http://support.microsoft.com/kb/300415并加以修改

概要

本文介绍Diskpart实用工具。您可以使用此实用工具从脚本、远程会话或其他命令提示符处启用存储配置。Diskpart增强了磁盘管理器图形用户界面(GUI)

Diskpart与许多命令行实用工具不同,原因是它不以单行模式操作。相反,当您启动该实用工具后,命令是从标准输入/输出(I/O) 读取的。您可以将这些命令定向到任何磁盘、分区或卷。

与磁盘管理的比较

Diskpart启用“磁盘管理”管理单元所支持的操作的超集。“磁盘管理”管理单元禁止您无意中执行可能会导致数据丢失的操作。建议您应谨慎使用Diskpart 实用工具,因为Diskpart 支持显式控制分区和卷。

可以使用Diskpart将基本磁盘转换为动态磁盘。基本磁盘可以为空,也可以包含主分区或逻辑驱动器。基本磁盘可以是数据磁盘、系统驱动器或启动驱动器。基本磁盘不能包含容错磁盘驱动程序 (FtDisk)集,如带区或镜像等。要转换包含有 FtDisk驱动程序集的基本磁盘,请使用 Windows2000 上的“磁盘管理”,或者在升级到 WindowsXP 之前转换磁盘。

可以使用Diskpart将动态磁盘转换为基本磁盘。进行转换前,必须删除所有动态卷。除非遇到紧急情况,否则不建议您删除动态磁盘上的分区。建议您删除驱动器上的所有卷,然后再将磁盘转换为基本磁盘。必须删除所有动态数据分区。另外,切勿混淆同一驱动器上的基本主分区和动态分区。否则,计算机可能无法重新启动。

您可以使用Diskpart以显式磁盘偏移量创建一个分区。“磁盘管理”管理单元将此分区放在任何占用区域的末端,或放在第一个足够大的区域上。在主启动记录(MBR)磁盘上,分区偏移量和大小都经过四舍五入,以保持必要的柱面对齐。偏移量四舍五入为最靠近的有效值,大小则始终四舍五入为下一个有效值。Diskpart不为最近创建的分区分配驱动器号。使用 assign命令可分配装入点或驱动器号。

Diskpart
遵循与管理单元同样的策略。只能在固定磁盘上创建动态磁盘。不能将可移动磁盘(如1394 或通用串行总线(USB) 驱动器)转换为动态磁盘。

Diskpart
允许执行管理单元禁止的某些分区删除操作。例如,您可以使用Diskpart 删除 MBROEM 分区。但是,这些分区中往往含有平台操作所必需的文件。Diskpart禁止删除当前系统、启动或分页卷和分区。此外,Diskpart还禁止删除作为动态磁盘基础的分区。

不能使用Diskpart 在可移动媒体上创建分区。Windows支持可移动媒体上至多有一个 MBR分区。如果媒体在出厂时已带有一个 MBR,此MBR 是不能修改的;但是,即使配置了多个分区或逻辑驱动器,仍然遵循此MBR。如果媒体在出厂时不带MBR,此媒体被视为“超级软盘”并且其中未写入分区结构。

可移动驱动器的驱动器号与驱动器关联,但不与媒体关联。您可以使用Diskpart 更改此驱动器号。

Diskpart
导致产生了磁盘签名、GUID分区表 (GPT) 磁盘全局唯一标识符(GUID) GPT分区 GUID。不能使用Diskpart 来显式设置这些项。

同管理单元一样,Diskpart实用工具包括对新 Itanium磁盘分区方案的支持,该方案称为 GPTGPT磁盘不能用于任何基于 x86Windows XP 计算机或Windows 2000 计算机。Diskpart仅对空磁盘支持 GPT 分区向MBR 分区的转换。

您可以使用Diskpart删除缺失的动态磁盘。动态磁盘包含共享数据库,一台计算机上的所有动态磁盘都识别此计算机上的所有其他动态磁盘。移动动态磁盘时,原始计算机将这些磁盘视为“缺失的”。

使用 Diskpart时,驱动器号不能自动分配。要确保给定的分区或卷有驱动器号,必须显式地分配一个驱动器号。您可以分配此驱动器号,也可以允许分配下一个可用驱动器号。

设置焦点

大多数 Diskpart命令适用于特定目标磁盘、分区或卷。目标对象具有“焦点”。焦点简化了在同一磁盘上创建多个分区的常见配置任务。通过select 命令为对象设置焦点。除了listhelpremexithelp命令之外,其他所有命令都需要有焦点。

使用select 命令可显式更改焦点。要隐式更改焦点,请使用像create这样的命令。管理基本磁盘前,必须设置磁盘焦点。在基本磁盘上,分区焦点和卷焦点相同。如果更改某一项上的焦点,也将更改其他项的焦点。在动态卷上,由于上一级的分区焦点总是丢失,因此只需要卷焦点,而且只有简单卷才需要磁盘焦点。

考虑下面计算机包含两个磁盘的示例:

  1. 每个磁盘均包含两个主分区。第一个磁盘包含C D分区,第二个磁盘包含 EF 分区。在将分区焦点设置给C D分区之前,必须先将磁盘焦点设置给磁盘1。可以在任何时候将卷焦点设置给CDEF 分区。在本例中,如果将卷焦点设置给C D分区,磁盘焦点不变;但是,如果将卷焦点设置给E F分区,磁盘焦点就可能转移到其他磁盘。

  2. 每个磁盘都是动态的,并且都包含简单卷和空闲空间。第一个磁盘包含 C分区,第二个磁盘包含 E分区。向第一个磁盘添加简单卷之前,必须先设置磁盘焦点。要扩展C 分区,只需设置卷焦点即可。同样,要在E 分区中添加镜像,只需将卷焦点设置给E分区。如果创建简单卷或在同一磁盘上扩展现有卷,不会更改磁盘焦点。如果添加镜像、创建带区集或者将现有卷扩展到不同的磁盘上,就可能会导致磁盘焦点丢失。

脚本撰写

Diskpart 支持使用脚本的操作。要启动Diskpart 脚本,需使用“diskpart/s script.txt”命令。您可以在 WindowsXPWindows 2000、远程安装服务(RIS) 无人参与安装环境上,或者在用于OEM Windows预安装环境 (PE) 上撰写Diskpart脚本。

默认情况下,如果脚本中存在问题,Diskpart可以退出命令处理并返回错误代码。要在这种情况下继续运行脚本,需在命令中包含noerr参数。此参数允许您使用单个脚本删除所有数据驱动器上的所有分区,而与驱动器的总数无关。不过,并非所有命令都支持noerr 参数。即使使用noerr参数,也始终会返回关于命令语法错误的错误。

下面的列表描述了Diskpart 的错误代码:

  • 0- 未发生错误。整个脚本正常运行。

  • 1- 发生致命例外。可能存在严重问题。

  • 2- Diskpart 命令行上指定的参数不正确。

  • 3- Diskpart 无法打开指定脚本或输出文件。

  • 4- Diskpart 使用的服务之一返回错误。

  • 5 -发生命令语法错误。由于选择对象不当或对象不适用于此命令而导致脚本失败。

运行 Diskpart后,将显示 Diskpart版本及当前计算机名称。

命令摘要

设置焦点的命令

select

使用select命令可将焦点设置给指定目标。要获取焦点类型列表,请将类型字段保留为空。如果未指定标识(ID) 号,则显示当前处于焦点的对象。

selectdisk[=n]

使用 selectdisk 命令可将焦点设置给具有指定 WindowsNT 磁盘号的磁盘。如果未指定磁盘号,该命令将显示当前处于焦点的磁盘。

selectpartition[=n/l]

使用 selectpartition命令可将焦点设置给指定分区。如果未指定分区,则显示当前处于焦点的分区。

在基本磁盘上,您可以按索引、驱动器号或装入点指定分区。在动态磁盘上,只能按索引指定分区。

selectvolume[=n/l]

使用 selectvolume命令可将焦点设置给指定卷。如果未指定卷,该命令将显示当前处于焦点的卷。

您可以按索引、驱动器号或装入点路径指定卷。在基本磁盘上,如果选择了卷,则相应分区也具有焦点。

显示磁盘配置的命令

使用 list命令可显示摘要。要显示更多信息,请先设置焦点,然后使用detail 命令。

detaildisk

使用 detaildisk 命令可获得有关当前处于焦点的磁盘的详细信息,例如:

Diskpart> select disk 3 
Disk 3 is now the selected disk.

Diskpart> detail disk

Maxtor 90432D2Disk ID:F549D151Type :IDEBus : 0Target : 0LUN 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 HealthyVolume 3 I My Span NTFS Spanned 9 GB Healthy

detail partition

使用detail 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
---------- --- ----------- ----- ---------- ------- --------- --------* Volume 2 C NTFS Partition 4110 MB Healthy System

detail volume


使用detail volume命令可获得有关当前处于焦点的卷的详细信息,例如:

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

使用list disk命令可获得有关计算机中每个磁盘的摘要信息。带有星号(*) 的磁盘具有当前焦点。此命令只列出固定磁盘(例如,集成设备电路[IDE] 或小型计算机系统接口[SCSI])或者可移动磁盘(例如,1394USB)。不显示可移动驱动器。

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 3 Online 8 GB 0 B * Disk M0 Missing 8 GB 0 B *

list partition

使用list partition命令可获得有关处于焦点的磁盘上每个分区的信息,例如:

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

使用list volume命令可获得有关计算机中每个卷的信息,例如:

Diskpart> list volume 
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------------- ------- ---------- --------Volume 0 F My RAID Set NTFS RAID-5 4096 MB HealthyVolume 1 G FATSTRIPE FAT32 Stripe 6144 MB FailedVolume 2 H My Mirror NTFS Mirror 2048 MB HealthyVolume 3 I My Span NTFS Spanned 9 GB HealthyVolume 4 D CDFS CD-ROM 0 BVolume 5 C NTFS Partition 2047 MB Healthy SystemVolume 6 E NTFS Partition 2063 MB Healthy BootVolume 7 J My Primary NTFS Partition 4095 MB HealthyVolume 8 K My Logical NTFS Partition 2047 MB HealthyVolume 9 L My Next Log NTFS Partition 2534 MB Healthy

管理基本磁盘的命令

本节介绍可用于创建和删除分区,以及分配驱动器号和装入点的命令。本节中的命令仅适用于基本磁盘。有关适用于动态磁盘的命令,以及可用于将基本磁盘转换为动态磁盘的命令,请参考后面几节。

在所有MBR 磁盘上,sizeoffset参数都经过四舍五入以保持柱面对齐。在 GPT磁盘上,size offset 参数也经过四舍五入以保持扇区对齐。如果未指定offset参数,则将分区放在第一个足够大的未占用连续磁盘范围内。如果未列出size参数,则分区可以扩展至占用确定的磁盘范围,最多可占用整个磁盘大小。

新磁盘首次被发现后,即被假定为MBR 磁盘。在试图创建GPT 分区之前,必须显式地将磁盘转换为GPT。建议您将 MSR创建为每个数据磁盘上的第一个分区以及任何系统或启动盘上的第二个分区(在ESP 之后)。从 MBR转换为 GPT 后,MSR分区将在磁盘上自动创建。

创建任何新的分区后,最近创建的分区会得到分区焦点。删除任何分区后,分区焦点也会丢失。磁盘焦点在任何情况下都保持不变。

active

使用 active命令可将当前处于焦点的分区设置为“活动的”。此设置通知固件此分区是有效系统分区。Diskpart不验证分区内容。

注意:如果使用此命令,可能无法重新启动计算机。

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

使用 assign命令可为当前处于焦点的分区分配驱动器号或装入点。如果未指定驱动器号,则分配下一个可用驱动器号。如果此驱动器号或装入点已在使用,则除非使用noerr参数,否则会产生一个错误。

您可以使用此命令更改与可移动驱动器关联的驱动器号。

禁止为系统、启动或分页卷分配驱动器号。除了Msdata 分区之外,此命令不能用于向OEM 分区或任何 GPT分区分配驱动器号。

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


使用create partition primary命令可在当前驱动器上以一定长度大小和起始地址偏移量创建一个主分区。

如果在MBR 磁盘上未指定 ID字节,此命令将使用类型“0x6”创建分区。可以使用ID 参数指定分区类型。不对ID 字节进行有效性校验或其他校验。

如果未在GPT 磁盘上指定 IDGUID,此命令将创建 Msdata分区。可以使用 ID参数指定任何 GUID。不对GUID 进行有效性、重复性或其他校验。分区示例GUID 将会被自动生成。

由于创建的是MBR GPT分区,因此 Windows不自动分配驱动器号。您必须显式分配驱动器号。

createpartition extended [size=n] [offset=n] [noerr]


使用create partition extended命令可在当前驱动器上以一定长度大小和起始地址偏移量创建一个扩展分区。驱动器必须是MBR磁盘。

创建分区后,新的扩展分区会得到焦点。只能创建一个扩展分区。只能在创建扩展分区后才能创建逻辑驱动器。

createpartition logical [size=n] [offset=n] [noerr]

使用create partition logical命令可在当前磁盘的现有扩展分区中以一定长度大小和起始地址偏移量创建一个逻辑驱动器。驱动器必须是MBR 磁盘。

如果未列出偏移量,则逻辑驱动器将被放在第一个足够大的扩展分区中的未占用连续磁盘范围。如果未列出大小,分区可能扩展至占用整个扩展分区。

创建分区后,逻辑驱动器会得到分区焦点。

createpartition msr [size=n] [offset=n] [noerr]

createpartition msr
命令相当于使用 MSRGUID E3C9E316-0B5C-4DB8-817D-F92DF00215AE 创建分区。

createpartition esp [size=n] [offset=n] [noerr]

createpartition esp
命令相当于使用 ESPGUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B 创建分区。

deletepartition [noerr] [override]

使用 deletepartition 命令可删除当前处于焦点的分区。

Diskpart
禁止删除当前系统、启动或分页卷。要删除ESPMSR或已知 OEM 分区,必须指定override 参数。

extend[size=n][noerr]


使用 extend命令可导致当前处于焦点的卷扩展到未分配的连续空间。未分配空间必须在处于焦点的分区之后(前者的扇区偏移量必须大于后者)。此命令用来将现有基本数据分区增大到可扩展硬件RAID 逻辑单元号 (LUN)上最近创建的空间。

如果以前曾经使用NTFS文件系统对分区进行格式化,则文件系统将自动扩展,以占用更大的分区,并且不会发生数据丢失。如果以前曾经使用NTFS以外的任何文件系统格式对分区进行格式化,此命令将失败且不会更改分区。

Diskpart
只禁止当前系统或启动分区进行扩展。

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

使用remove命令可删除当前处于焦点的分区的驱动器号或装入点。如果指定all参数,则删除所有当前驱动器号和装入点。如果未指定驱动器号或装入点,则删除驱动器号。

使用此命令可更改与可移动驱动器关联的驱动器号。

禁止删除系统、启动或分页卷的驱动器号。不能使用此命令将驱动器号转移到OEM 分区、任何具有未识别GUID GPT分区或者任何特殊的非数据 GPT分区(如 ESP 分区)。

管理动态磁盘的命令

您可以使用本节中介绍的命令创建和删除卷、修复容错卷以及导入磁盘。

size
参数始终要四舍五入,以保持 MB对齐。不能指定显式偏移量。此卷始终放在第一个足够大的未占用连续磁盘范围内。如果未列出大小,则创建尽可能大的卷。

创建卷后,卷焦点将置于最近创建的卷上。如果卷跨越多个磁盘,当前磁盘焦点将丢失。如果删除卷,卷焦点将丢失。如果删除卷之前已经存在一个有效的磁盘焦点,此磁盘焦点将保留。

注意:当任何空磁盘转换为动态或GPT 磁盘时,Diskpart在转换后的磁盘上强制创建一个 MSR分区。

active

使用 active命令可将当前处于焦点的卷设置为“活动的”。此设置通知固件此分区是有效系统分区。Diskpart只验证此卷是否可以包含操作系统可启动映像,而不验证分区内容。如果使用此命令,计算机可能无法重新启动。

adddisk=n [noerr]


使用 add命令可向指定磁盘上的当前处于焦点的卷添加镜像。仅支持两个镜像丛。当前处于焦点的卷必须是简单卷。

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

使用 assign命令可为当前处于焦点的卷分配驱动器号或装入点。如果未指定驱动器号,则分配下一个可用驱动器号。如果此驱动器号或装入点已在使用,则除非指定noerr参数,否则将产生一个错误。

禁止为系统、启动或分页卷分配驱动器号。

breakdisk=n [nokeep] [noerr]


使用 break命令可断开当前处于焦点的镜像。

默认情况下,两个镜像丛的内容都将保留,原因在于这两个丛都变成了简单卷。如果指定nokeep参数,则只保留指定丛,另一个丛将被删除并转换为空闲空间。

原始卷保留所有驱动器号或装入点。如果未保留丛,则焦点仍然保留在指定磁盘上保留的简单卷上。否则,焦点将更改到指定磁盘上指定的保留丛上。此丛变成简单卷;但是,不为新卷分配驱动器号。

createvolume simple [size=n] [disk=n] [noerr]


使用create volume simple命令可在指定磁盘上以一定长度大小创建一个简单卷。

如果未指定大小,新的卷可以占用磁盘上剩余的连续空闲空间。如果未指定磁盘,则使用当前处于焦点的磁盘。

创建了卷之后,磁盘焦点就被设置给目标磁盘。

createvolume stripe [size=n] disk=n[,n[,...]][noerr]

使用create volume stripe命令可在指定磁盘上创建带区集卷。带区卷的总大小为每一磁盘上的带区卷大小与磁盘数目相乘(*)之积。

如果未指定大小,则创建尽可能大的带区卷。具有最小连续可用空闲空间的磁盘是确定的。此空闲空间的大小决定带区卷的大小。每个磁盘上所分配的带区卷的大小均相同。

createvolume raid [size=n] disk=n[,n[,...]][noerr]

使用create volume raid命令可在指定磁盘上创建 Raid-5集卷。每一个磁盘上均分配相当于“Raid-5卷大小”的空间量。

如果未指定大小,则创建尽可能大的Raid 5卷。具有最小连续可用空闲空间的磁盘是确定的。此空闲空间的大小决定Raid 5 卷的大小,并且从每个磁盘分配的Raid 5 卷的大小均相同。实际使用的卷大小小于每一磁盘上的Raid-5卷大小与磁盘数目相乘之积,因为有些空间用于奇偶校验。

deletedisk [noerr][override]

使用 deletedisk 命令可从磁盘列表中删除缺失的动态磁盘。

如果未指定override参数,将删除磁盘上包含的所有简单卷,并删除所有镜像丛。如果磁盘用于Raid 5 卷,此命令将失败。

deletepartition [noerr] [override]

使用 deletepartition 命令可删除当前处于焦点的分区。

Diskpart
禁止删除用于包含现有在线动态卷的任何分区。但这些卷必须被删除,且磁盘必须转换为基本磁盘。要删除ESPMSR或已知 OEM 分区,需指定override参数。

可以从动态磁盘上删除分区,但是不能创建这些分区。例如,可以删除动态GPT 磁盘上未识别的 GPT分区。如果删除分区,空闲空间将不可用。在无法使用clean命令的紧急情况下,可以使用此命令回收损坏的离线动态磁盘上的空间。

deletevolume [noerr]


使用 deletevolume 命令可删除当前处于焦点的卷。使用此命令后,将丢失所有数据。

extenddisk=n [size=n] [noerr]


使用 extend命令可将当前简单卷或扩展卷扩展到指定磁盘上。extend命令仅适用于 NTFS卷。

如果未指定大小,此卷可占用指定磁盘上的所有空闲空间。任何现有磁盘焦点都将丢失。

import[noerr]

使用 import命令可导入外部磁盘组中的所有磁盘。

如果在外部磁盘组中的任何磁盘上都设置了焦点,就可以导入该组中的所有磁盘。运行此命令后,任何现有卷或磁盘焦点都将丢失。

online[noerr]

使用 online命令可使以前离线的磁盘或卷重新在线。如果使用此命令,焦点不会发生更改。

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

使用remove命令可删除当前处于焦点的卷的驱动器号或装入点。如果使用all参数,将删除所有当前驱动器号和装入点。如果未指定驱动器号或装入点,则删除遇到的第一个路径。

禁止删除系统、启动或分页卷的驱动器号。

retain

使用retain命令可准备将动态简单卷用作启动或系统卷。

如果在基于x86 的计算机上使用retain 命令,将在动态简单卷上创建一个具有焦点的MBR 分区。要创建一个MBR分区,动态简单卷必须始自一个柱面对齐的偏移量处,而且其大小必须是柱面大小的整数倍。

如果在基于Itanium 的计算机上使用retain 命令,retain命令将在动态简单卷上创建具有焦点的 GPT分区。

 转换磁盘的命令

convert mbr [noerr]

使用convert mbr 命令可将当前磁盘的分区形式设置为MBR。磁盘可以是基本磁盘或动态磁盘,但是切勿包含任何有效数据分区或卷。

convertgpt [noerr]

使用 convertgpt 命令可将当前磁盘的分区形式设置为GPT。磁盘可以是基本磁盘或动态磁盘,但是切勿包含任何有效数据分区或卷。此命令只在基于Itanium 的计算机上才有效,在基于x-86 的计算机上可能会失败。

convertdynamic [noerr]


使用 convertdynamic 命令可将基本磁盘改为动态磁盘。磁盘可以包含有效数据分区。

convertbasic [noerr]

使用 convertbasic 命令可将空的动态磁盘转换为基本磁盘。

其他命令

exit

使用exit 命令可停止Diskpart 并将控制权返回给操作系统。

clean[all]

使用 clean命令可通过将扇区清零,从当前处于焦点的磁盘删除分区或将卷格式化。默认情况下,仅改写MBR GPT分区信息及任何有关 MBR磁盘的隐藏扇区信息。如果指定 all参数,可将每个扇区都清零,同时可删除驱动器上包含的所有数据。

rem[...]

rem
命令不执行任何操作,但您可以使用此命令注释脚本文件。

rescan

使用rescan 命令可重新扫描所有I/O 总线并可因此发现添加到计算机上的任何新磁盘。

 帮助命令

help

使用 help命令可显示所有命令列表。

 

原创粉丝点击