Diskpart 概述
利用diskpart可实现对硬盘的分区管理,包括创建分区、删除分区、合并(扩展)分区,xx可取代分区魔术师等第三方工具软件,它还有分区魔术师无法实现的功能,如设置动态磁盘、镜像卷等,而且设置分区后不用重启电脑也能生效。只不过它运行于命令提示符下.
在“运行”后输入“Cmd”打开命令提示符窗口,再输入“Diskpart”即可启动它,此时屏上显示为“Diskpart>”,不像普通的命令提示符那样是一个分区或目录后跟一个“>”,而且普通的DOS命令也无法在此运行,退出它只有输入“Exit”命令。从这三种迹象表明,它是一个集成的环境,只有特定的命令可在其下执行。输入“Help”命令,屏上会列出所有的可执行命令及各命令的简要说明。
DiskPart
DiskPart.exe 是一种文本模式命令解释程序,它使您能够通过使用脚本或从命令提示符直接输入来管理对象(磁盘、分区或卷)。在磁盘、分区或卷上使用 DiskPart.exe 命令之前,必须首先列出然后选中要给予其焦点的对象。当某个对象具有焦点时,键入的任何 DiskPart.exe 命令都会作用到该对象。
利用 list disk、list volume 和 list partition 命令,可以列出可用对象并确定对象编号或驱动器号。list disk 和 list volume 命令显示计算机上的所有磁盘和卷。而 list partition 命令只显示具有焦点的磁盘上的分区。使用 list 命令时,具有焦点的对象旁边出现一个星号 (*)。可以按编号或按驱动器号选择对象,例如,磁盘 0、分区 1、卷 3 或卷 C。
选择对象时,焦点一直保留在那个对象上,直到选中不同的对象。例如,如果在磁盘 0 上设置了焦点,并且选择磁盘 2 上的卷 8,焦点就从磁盘 0 转移到磁盘 2 上的卷 8。有些命令会自动更改焦点。例如,如果创建了新分区,焦点就自动转移到新分区上。
只能在选定磁盘上的分区上设置焦点。某个分区具有焦点时,相关的卷(如果有的话)也具有焦点。某个卷具有焦点时,如果该卷映射到某个特定分区,则相关的磁盘和分区也具有了焦点。如果不是这样,则说明磁盘和卷上的焦点丢失。
DiskPart 命令
若要查看该命令语法,请单击以下命令:
active
在基本盘上,将具有焦点的分区标为 active。这样就通知基本输入/输出系统 (BIOS) 或可扩展固件接口 (EFI),该分区或卷是有效的系统分区或系统卷。
只有分区才可以标为 active。
要点
DiskPart 只验证分区有足够空间来包含操作系统的启动文件。DiskPart 不检查分区的内容。如果误将某个分区标为 “active”,并且该分区不包含操作系统的启动文件,则您的计算机可能无法启动。
语法
active
add disk
将具有焦点的简单卷镜像到指定磁盘。
语法
add disk=n [noerr]
参数
n
指定要包含此镜像的磁盘。只可以镜像简单卷。指定磁盘必须至少有与要镜像的简单卷同样大小的未分配空间。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
assign
给具有焦点的卷分配一个驱动器号或装载点。如果不指定驱动器号或装载点,则分配下一个可用驱动器号。如果驱动器号或装载点已经在用,则会产生一个错误。
使用 assign 命令,可以更改与某个可移动驱动器关联的驱动器号。
不可以向系统卷、启动卷或包含页面文件的卷分配驱动器号。此外,还不可以向原始设备制造商 (OEM) 分区或任何非基本 MSDATA 分区的 GUID 分区表 (GPT) 分区分配驱动器号。
语法
assign [{letter=d|mount=Path}] [noerr]
参数
letter=d
要分配到该卷的驱动器号。
mount=Path
要分配到该卷的装载点。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
break disk
仅适用于动态盘。将具有焦点的镜像卷分为两个简单卷。一个简单卷保留驱动器号和镜像卷的所有装载点,而另一个简单卷则接收焦点,这样就可以向其分配一个驱动器号。
默认情况下,保留镜像卷的两个部分上的内容。每个部分成为一个简单卷。利用 nokeep 参数,只能将镜像的一半保留为简单卷,而将另一半被删除并转换为可用空间。两卷都不接收焦点。
语法
break disk=n [nokeep] [noerr]
参数
n
指定包含镜像卷的磁盘。
nokeep
指定只保留其中一个镜像卷,而删除另一个简单卷并将其转换为可用空间。无论是保留的卷还是可用空间都不接收焦点。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
clean
从具有焦点的磁盘删除任何分区或卷格式。在主启动记录 (MBR) 磁盘上,只覆盖 MBR 分区信息和隐藏扇区信息。在 GUID 分区表 (GPT) 磁盘上,覆盖 GPT 分区信息,其中包括 保护性 MBR。不存在隐藏扇区信息。
语法
set all
参数
all
指定磁盘上所有扇区的信息为零,这样就xx删除磁盘上的所有数据。
convert basic
将空白动态盘转换为基本盘。
语法
convert basic [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
convert dynamic
将基本盘转换为动态盘。
语法
convert dynamic [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
convert gpt
在基于 Itanium 的计算机上,将具有主启动记录 (MBR) 分区样式的空白基本盘转换为具有 GUID分区表 (GPT) 分区样式的基本盘。
要点
磁盘必须为空盘,以便将其转换为 GPT 磁盘。在转化磁盘之前备份您的数据并删掉所有分区或卷。
语法
convert gpt [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
convert mbr
在基于 Itanium 的计算机上,将具有 GUID 分区表 (GPT) 分区样式的空白基本盘转换为具有主启动记录 (MBR) 分区样式的基本盘。
要点
磁盘必须为空盘,以便将其转换为 MBR 磁盘。在转化磁盘之前备份您的数据并删掉所有分区或卷。
语法
convert mbr [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create partition efi
在基于 Itanium 的计算机上,在 GUID 分区表 (GPT) 磁盘上创建可扩展固件接口 (EFI) 系统分区。创建分区之后,焦点就转移到新建分区上。
语法
create partition efi [size=n] [offset=n] [noerr]
参数
size=n
分区的大小 (MB)。如果不给出分区大小,那么分区将会持续到当前区域中没有闲置空间为止。
offset=n
创建分区的字节偏移量。如果没有给出偏移量,那么该分区就被置于空间足够大而能容纳该分区的{dy}个磁盘范围内。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create partition extended
在当前驱动器上创建扩展分区。创建分区之后,焦点就自动转移到新建分区上。每个磁盘上只能创建一个扩展分区。如果试图在另一个扩展分区内创建扩展分区,此命令会失败。必须在创建逻辑驱动器之前创建扩展分区。
语法
create partition extended [size=n] [offset=n] [noerr]
参数
size=n
扩展分区的大小 (MB)。如果不给出分区大小,那么分区将会持续到区域中没有可用空间为止。扩展分区大小是按柱面对齐的。它会自动舍入到最近的柱面边界。例如,如果您指定一个大小为 500 MB 的分区,分区将会自动舍入为504 MB。
offset=n
仅应用于 主启动记录(MBR)磁盘。创建扩展分区的字节偏移量。如果没有给出偏移量,分区将会在磁盘{dy}个空闲位置开始。偏移量是按柱面对齐的。偏移量会自动舍入到最近的柱面边界。例如,如果定义偏移量为 27 MB, 柱面为 8 MB,偏移量被舍入为 24 MB。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create partition logical
在扩展分区中创建逻辑驱动器。创建分区之后,焦点自动转移到新建逻辑驱动器上。
语法
create partition logical [size=n] [offset=n] [noerr]
参数
size=n
逻辑驱动器的大小 (MB)。如果不给出分区大小,那么分区将会持续到当前区域中没有闲置空间为止。
offset=n
仅应用于 主启动记录(MBR)磁盘。创建逻辑驱动器的字节偏移量。偏移量是按柱面对齐的(也就是说,偏移量会自动舍入,以xx填充正在使用的柱面大小)。如果没有给出偏移量,那么该分区就被置于空间足够大而能容纳该分区的{dy}扩展磁盘中。分区长度至少要和由 size= n 指定的字节数一样。如果要指定逻辑驱动器的大小,它必须小于扩展分区。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create partition msr
在基于 Itanium 的计算机上,在GUID 分区表 (GPT) 磁盘上创建 Microsoft 保留 (MSR) 分区。
小心
要小心使用 create partition msr 命令。因为 GPT 磁盘要求特定分区布局,创建 Microsoft 保留分区会导致磁盘不可读取。在用来启动 Windows XP 64-Bit Edition 的 GPT 磁盘上,EFI 系统分区是磁盘上的{dy}个分区,其后是 Microsoft 保留分区。只用于存储数据的 GPT 磁盘不包含 EFI 系统分区,因此 Microsoft 保留分区是{dy}个分区。
Windows XP 64-Bit Edition 不装载 Microsoft 保留分区。不能在它们上面存储数据,也不能删除它们。
语法
create partition msr [size=n] [offset=n] [noerr]
参数
size=n
分区的大小 (MB)。分区长度至少要和由 size=n 指定的数字相同。如果不给出分区大小,那么分区将会持续到当前区域中没有闲置空间为止。
offset=n
创建分区的字节偏移量。分区从 offset=n 指定的字节偏移量开始。分区是按扇区对齐的,也就是说,偏移量会自动舍入,以xx填充正在使用的扇区大小。如果没有给出偏移量,那么该分区就被置于空间足够大而能容纳该分区的{dy}扩展磁盘中。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create partition primary
在当前的基本盘上创建一个主要分区。创建分区后,焦点自动转移到新分区上。该分区不接收驱动器号。必须使用 assign 命令为该分区分配一个驱动器号。
语法
create partition primary [size=n] [offset=n] [ID={byte|GUID}] [noerr]
参数
size=n
分区的大小 (MB)。如果不给出分区大小,那么分区将会持续到当前区域中没有可用空间为止。分区大小是按柱面对齐的。分区大小会自动舍入到最近柱面边界。例如,如果您指定一个大小为 500 MB 的分区,分区将会自动舍入为 504 MB。
offset=n
创建分区的字节偏移量。如果没有给出偏移量,分区将会在磁盘{dy}个空闲位置开始。对于主启动记录 (MBR) 磁盘,偏移量是按柱面对齐的。偏移量会舍入到最最近柱面边界。例如,如果定义偏移量为 27 MB, 柱面为 8 MB,偏移量被舍入为 24 MB。
ID={byte|GUID}
只适用于原始设备制造商 (OEM)。
小心
采用此参数创建分区可能会导致计算机崩溃或无法启动。如果您不是对 GPT 磁盘具有丰富经验的 OEM 或 IT 专业人员,就不要利用 ID=byte | GUID 参数在 GPT 磁盘上创建分区。而是总是利用 create partition efi 命令创建 EFI 系统分区,利用 create partition msr 命令创建 Microsoft 保留分区,以及利用 create partition primary 命令(不带有 ID=byte | GUID 参数)在 GPT 磁盘上创建主分区。
对于 MBR 磁盘,您可以以十六进制形式为分区指定一个分区类型字节。如果未在 MBR 磁盘上指定分区类型字节,create partition primary 命令就创建一个类型 0x6 的分区。任何分区类型字节都可以通过 ID=byte | GUID 参数进行指定。DiskPart 不检查分区类型字节的有效性,也不对 ID 参数进行任何其它检查。
对于 GPT 磁盘,您可以为要创建的分区指定分区类型 GUID:
EFI 系统分区:c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Microsoft 保留分区:e3c9e316-0b5c-4db8-817d-f92df00215ae
MSDATA 分区:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
动态盘上的 LDM 元数据分区:5808c8aa-7e8f-42e0-85d2-e1e90434cfb3
动态盘上的 LDM 数据分区:af9b60a0-1431-4f62-bc68-3311714a69ad
如果未指定分区类型 GUID,则 create partition primary 命令创建一个 MSDATA 分区。任何分区类型都可以通过 ID={byte | GUID} 参数进行指定。DiskPart 不检查分区 GUID 的有效性,也不对 ID 参数进行任何其它检查。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create volume raid
在指定动态盘上创建 RAID-5 卷。创建新卷后,焦点自动转移到新卷上。
语法
create volume raid [size=n] [disk=n[,[n,]] [noerr]
参数
size=n
磁盘空间大小以兆字节 (MB) 为单位,卷将占用每一个磁盘如果未指定大小,则创建可能{zd0}的 RAID-5 卷。具有最小可用相邻闲置空间的磁盘确定 RAID-5 卷的大小,并从每个磁盘分配到同样大小的空间。RAID-5 卷中可用磁盘空间的实际大小小于磁盘空间的合并大小,因为一部分磁盘空间是进行奇偶校验所必需的。
disk=n
用来创建卷的动态盘。size= n 的磁盘空间将分配给每一个磁盘。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create volume simple
创建简单卷。创建新卷后,焦点自动转移到新卷上。
语法
create volume simple [size=n] [disk=n] [noerr]
参数
size=n
卷大小 (MB)。如果未指定卷大小,新建卷就占用磁盘上剩余的闲置空间。
disk=n
用来创建卷的动态盘。如果未指定磁盘,则使用当前磁盘。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
create volume stripe
在指定磁盘上创建条纹卷。创建新卷后,焦点自动转移到新卷上。
语法
create volume stripe [size=n] [disk=n[,[n,匽] [noerr]
参数
size=n
磁盘空间大小以兆字节(MB)为单位,卷将占用每一个磁盘如果未指定大小,则新建卷将占用最小的磁盘上的剩余闲置空间,以及在其后每个磁盘上占用同样大小的磁盘空间。
disk=n
用来创建卷的动态盘。size= n 的磁盘空间将分配给每一个磁盘。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
delete disk
从磁盘列表删除遗失的动态盘。
语法
delete disk [noerr] [override]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
override
使 DiskPart 能够删除磁盘上所有简单卷。如果磁盘上包含半个镜像卷,则删除磁盘上的这半个镜像。如果磁盘是 RAID-5 卷的成员,则 delete disk override 命令会失败。
delete partition
在每个基本盘上,删除带有焦点的分区。不能删除系统分区、启动分区或任何包含活动页面文件或故障转储(内存转储)的分区。
小心
删除一个动态盘上的分区会删除磁盘上的所有脱机动态卷,因而会破坏任何数据并会将磁盘转换为基本盘。要删除动态卷,请总是使用 delete volume 命令。
可以从动态盘删除分区,但不可以创建分区。例如,可以删除动态 GPT 磁盘上的未识别的 GUID 分区表 (GPT) 分区。删除这样的分区不会导致由此产生的闲置空间变为可用。此命令专门用来在无法使用 clean 命令时的紧急情况下回收遭到破坏的脱机动态盘空间。
语法
delete partition [noerr] [override]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
override
使 DiskPart 能够删除任何分区,而不管其类型是什么。通常情况下,DiskPart 只允许您删除已知数据分区。
delete volume
删除所选卷。不能删除系统卷、启动卷或任何包含活动页面文件或故障转储(内存转储)的卷。
语法
delete volume [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
detail disk
显示所选磁盘及其上面的卷的属性。
语法
detail disk
detail volume
显示存放当前卷的磁盘。
语法
detail volume
exit
退出 DiskPart 命令解释程序。
语法
exit
extend
将带有焦点的卷扩展为最邻近的未分配空间。对于基本卷,未分配的空间必须在同一磁盘上,并且必须接着(扇区偏移量大于)带有焦点的分区。动态简单卷或跨区卷可以在任何动态盘上扩展为空的空间。使用此命令,可以将现有卷扩展为新建空间。
如果分区以前通过 NTFS 文件系统格式化,该文件系统就自动扩展为占用更大分区。不会丢失任何数据。如果分区以前通过非 NTFS 的文件系统格式进行格式化,此命令就会失败,并不对分区作任何更改。
不能扩展当前系统或启动分区。
语法
extend [size=n] [disk=n] [noerr]
参数
size=n
添加到当前分区的空间大小 (MB)。如果不指定大小,磁盘就扩展为占用所有最邻近的未分配空间。
disk=n
用来扩展卷的动态盘。size= n 的磁盘空间将在磁盘上进行分配。如果未指定磁盘,则在当前磁盘上扩展卷。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
help
显示可用命令的列表。
语法
help
import
将外部磁盘组导入本地计算机的磁盘组。import 命令导入与带有焦点的磁盘同为一组的每个磁盘。
语法
import [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
list disk
显示磁盘列表以及有关磁盘信息的列表,例如大小、可用空间、磁盘是基本盘还是动态盘以及该磁盘是使用主启动记录 (MBR) 还是 GUID 分区表 (GPT) 分区样式。标有星号 (*) 的磁盘具有焦点。
语法
list disk
list partition
显示当前分区的分区表中列出的分区。在动态盘上,这些分区可能不与磁盘上的动态卷相对应。之所以会有这种偏差,是因为动态盘包含磁盘上当前存在的系统卷或启动卷的分区表中的项目以及包含一个占用其余磁盘空间以供动态卷使用的分区。
语法
list partition
list volume
显示所有磁盘上的基本卷和动态卷列表。
语法
list volume
online
使脱机磁盘或带有焦点的卷处于联机状态。
语法
online [noerr]
参数
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
rem
提供一种向脚本添加注释的方法。
语法
rem
范例
rem These commands set up 3 drives.
create partition primary size=2048
assign d:
create partition extend
create partition logical size=2048
assign e:
create partition logical
assign f:
remove
从带有焦点的卷删除驱动器号或装载点。如果使用了 all 参数,就会删除所有当前驱动器号和装载点。如果未指定驱动器号或装载点,则 DiskPart 将删除它遇到的{dy}个驱动器号或装载点。
remove 命令可用来更改与可移动驱动器关联的驱动器号。不能删除系统卷、启动卷或页面卷上的驱动器号。另外,不能删除如下分区的驱动器号:OEM 分区、任何具有未识别的 GUID 的 GPT 分区或任何特殊的、非数据的 GPT 分区(例如,EFI 系统分区)。
语法
remove [{letter=d|mount=Path [all]}] [noerr]
参数
letter=d
要删除的驱动器号。
mount=Path
要删除的装载点路径。
all
删除所有当前驱动器号和装载点。
noerr
仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
rescan
查找已添加到计算机的新磁盘。
语法
rescan
retain
准备现有动态简单卷,以便用作启动卷或系统卷。
在基于 x86 的计算机上,在带有焦点的动态简单卷上的主启动记录 (MBR) 中创建分区项。要创建 MBR 分区,动态简单卷必须从按柱面对齐的偏移量开始,并且其大小是柱面的整数。
在基于 Itanium 的计算机上,在带有焦点的动态简单卷上的 GUID 分区表 (GPT) 中创建分区项。
注意
retain 命令只在“无人参与安装”期间使用或者由原始设备制造商 (OEM) 使用。
语法
retain
select disk
选择指定磁盘,并将焦点转移到此磁盘。
语法
select disk=[n]
参数
n
要接收焦点的磁盘的磁盘编号。如果未指定磁盘编号,select 命令就列出当前具有焦点的磁盘。使用 list disk 命令,您可以查看计算机上所有磁盘的编号。
select partition
选择指定分区并给予其焦点。如果未指定分区,select 命令就会列出具有焦点的当前分区。使用 list partition 命令,您可以查看当前磁盘上所有分区的编号。
语法
select partition=[{n|d}]
参数
n
要接收焦点的分区的编号。
d
要接收焦点的分区的驱动器号或装载点路径。
select volume
选择指定卷并将焦点转移到该卷。如果未指定卷,select 命令就会列出具有焦点的当前卷。您可以按编号、驱动器号或装载点路径指定卷。在基本盘上,选择卷同时会给予相应分区焦点。使用 list volume 命令,您可以查看计算机上所有卷的编号。
语法
select volume=[{n|d}]
参数
n
要接收焦点的卷的编号。
d
要接收焦点的卷的驱动器号或装载点路径。
DiskPart 脚本
利用 DiskPart,您可以创建自动执行与磁盘相关的任务(例如,创建卷或将磁盘转换为动态盘)的脚本。如果是使用“无人参与安装”或 Sysprep (它们不支持创建非启动卷的卷)部署 Windows,则创建这些任务的脚本非常有用。
要启动 DiskPart 脚本,请在命令提示符下键入:
DiskPart /S scriptname.txt
其中,scriptname.txt 是包含脚本的文本文件的名称。
要重新定向 DiskPart 对某个文件的脚本输出,请键入:
DiskPart /S scriptname.txt > logfile.txt
其中,logfile.txt 是 DiskPart 写入其输出的文本文件的名称。
当 DiskPart 启动时,DiskPart 版本和计算机名称显示在命令提示符下。默认情况下,如果 DiskPart 在尝试执行脚本任务时发生错误,DiskPart 就会停止处理脚本并显示一个错误代码(除非指定了 noerr 参数)。但是,DiskPart 在遇到语法错误时总是返回错误,而不管是否使用了 noerr 参数。noerr 参数使您能够执行许多有用的任务,例如,使用单个脚本删除所有磁盘上所有分区,而不管磁盘数量的多少。
下表列出 DiskPart 错误代码:
错误 说明
0 没有出现错误。运行整个脚本,没有失败。
1 发生致命的异常事件。可能出现严重问题。
2 为 DiskPart 命令指定的参数不正确。
3 DiskPart 无法打开指定的脚本或输出文件。
4 DiskPart 使用的其中一项任务返回失败。
5 出现命令语法错误。脚本失败,这是因为对象选择不正确,或与此命令一起使用时无效。
管理基本磁盘的命令
可用于创建和删除分区,以及分配驱动器号和装入点的命令。命令仅适用于基本磁盘。
在所有 MBR 磁盘上,size 或 offset 参数都经过四舍五入以保持柱面对齐。在 GPT 磁盘上,size 和 offset 参数也经过四舍五入以保持扇区对齐。如果未指定 offset 参数,则将分区放在{dy}个足够大的未占用连续磁盘范围内。如果未列出 size 参数,则分区可以扩展至占用确定的磁盘范围,最多可占用整个磁盘大小。
新磁盘首次被发现后,即被假定为 MBR 磁盘。在试图创建 GPT 分区之前,必须显式地将磁盘转换为 GPT。建议您将 MSR 创建为每个数据磁盘上的{dy}个分区以及任何系统或启动盘上的第二个分区(在 ESP 之后)。从 MBR 转换为 GPT 后,MSR 分区将在磁盘上自动创建。创建任何新的分区后,最近创建的分区会得到分区焦点。删除任何分区后,分区焦点也会丢失。磁盘焦点在任何情况下都保持不变。
active
使用 active 命令可将当前处于焦点的分区设置为“活动的”。此设置通知固件此分区是有效系统分区。Diskpart 不验证分区内容。
注意:如果使用此命令,可能无法重新启动计算机。
assign [[letter=l]/[mount=path]] [noerr]
使用 assign 命令可为当前处于焦点的分区分配驱动器号或装入点。如果未指定驱动器号,则分配下一个可用驱动器号。如果此驱动器号或装入点已在使用,则除非使用 noerr 参数,否则会产生一个错误。
您可以使用此命令更改与可移动驱动器关联的驱动器号。
禁止为系统、启动或分页卷分配驱动器号。除了 Msdata 分区之外,此命令不能用于向 OEM 分区或任何 GPT 分区分配驱动器号。
create partition primary [size=n] [offset=n] [id=byte/guid] [noerr]
使用 create partition primary 命令可在当前驱动器上以一定长度大小和起始地址偏移量创建一个主分区。
如果在 MBR 磁盘上未指定 ID 字节,此命令将使用类型“0x6”创建分区。可以使用 ID 参数指定分区类型。不对 ID 字节进行有效性校验或其他校验。
如果未在 GPT 磁盘上指定 ID GUID,此命令将创建 Msdata 分区。可以使用 ID 参数指定任何 GUID。不对 GUID 进行有效性、重复性或其他校验。分区示例 GUID 将会被自动生成。
由于创建的是 MBR 和 GPT 分区,因此 Windows 不自动分配驱动器号。您必须显式分配驱动器号。
create partition extended [size=n] [offset=n] [noerr]
使用 create partition extended 命令可在当前驱动器上以一定长度大小和起始地址偏移量创建一个扩展分区。驱动器必须是 MBR 磁盘。
创建分区后,新的扩展分区会得到焦点。只能创建一个扩展分区。只能在创建扩展分区后才能创建逻辑驱动器。
create partition logical [size=n] [offset=n] [noerr]
使用 create partition logical 命令可在当前磁盘的现有扩展分区中以一定长度大小和起始地址偏移量创建一个逻辑驱动器。驱动器必须是 MBR 磁盘。
如果未列出偏移量,则逻辑驱动器将被放在{dy}个足够大的扩展分区中的未占用连续磁盘范围。如果未列出大小,分区可能扩展至占用整个扩展分区。
创建分区后,逻辑驱动器会得到分区焦点。
create partition msr [size=n] [offset=n] [noerr]
create partition msr 命令相当于使用 MSR GUID E3C9E316-0B5C-4DB8-817D-F92DF00215AE 创建分区。
create partition esp [size=n] [offset=n] [noerr]
create partition esp 命令相当于使用 ESP GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B 创建分区。
delete partition [noerr] [override]
使用 delete partition 命令可删除当前处于焦点的分区。
Diskpart 禁止删除当前系统、启动或分页卷。要删除 ESP、MSR 或已知 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 对齐。不能指定显式偏移量。此卷始终放在{dy}个足够大的未占用连续磁盘范围内。如果未列出大小,则创建尽可能大的卷。
创建卷后,卷焦点将置于最近创建的卷上。如果卷跨越多个磁盘,当前磁盘焦点将丢失。如果删除卷,卷焦点将丢失。如果删除卷之前已经存在一个有效的磁盘焦点,此磁盘焦点将保留。
注意:当任何空磁盘转换为动态或 GPT 磁盘时,Diskpart 在转换后的磁盘上强制创建一个 MSR 分区。
active
使用 active 命令可将当前处于焦点的卷设置为“活动的”。此设置通知固件此分区是有效系统分区。Diskpart 只验证此卷是否可以包含操作系统可启动映像,而不验证分区内容。如果使用此命令,计算机可能无法重新启动。
add disk=n [noerr]
使用 add 命令可向指定磁盘上的当前处于焦点的卷添加镜像。仅支持两个镜像丛。当前处于焦点的卷必须是简单卷。
assign [[letter=l]/[mount=path]] [noerr]
使用 assign 命令可为当前处于焦点的卷分配驱动器号或装入点。如果未指定驱动器号,则分配下一个可用驱动器号。如果此驱动器号或装入点已在使用,则除非指定 noerr 参数,否则将产生一个错误。
禁止为系统、启动或分页卷分配驱动器号。
break disk=n [nokeep] [noerr]
使用 break 命令可断开当前处于焦点的镜像。
默认情况下,两个镜像丛的内容都将保留,原因在于这两个丛都变成了简单卷。如果指定 nokeep 参数,则只保留指定丛,另一个丛将被删除并转换为空闲空间。
原始卷保留所有驱动器号或装入点。如果未保留丛,则焦点仍然保留在指定磁盘上保留的简单卷上。否则,焦点将更改到指定磁盘上指定的保留丛上。此丛变成简单卷;但是,不为新卷分配驱动器号。
create volume simple [size=n] [disk=n] [noerr]
使用 create volume simple 命令可在指定磁盘上以一定长度大小创建一个简单卷。
如果未指定大小,新的卷可以占用磁盘上剩余的连续空闲空间。如果未指定磁盘,则使用当前处于焦点的磁盘。
创建了卷之后,磁盘焦点就被设置给目标磁盘。
create volume stripe [size=n] disk=n[,n[,...]][noerr]
使用 create volume stripe 命令可在指定磁盘上创建带区集卷。带区卷的总大小为每一磁盘上的带区卷大小与磁盘数目相乘 (*) 之积。
如果未指定大小,则创建尽可能大的带区卷。具有最小连续可用空闲空间的磁盘是确定的。此空闲空间的大小决定带区卷的大小。每个磁盘上所分配的带区卷的大小均相同。
create volume raid [size=n] disk=n[,n[,...]][noerr]
使用 create volume raid 命令可在指定磁盘上创建 Raid-5 集卷。每一个磁盘上均分配相当于“Raid-5 卷大小”的空间量。
如果未指定大小,则创建尽可能大的 Raid 5 卷。具有最小连续可用空闲空间的磁盘是确定的。此空闲空间的大小决定 Raid 5 卷的大小,并且从每个磁盘分配的 Raid 5 卷的大小均相同。实际使用的卷大小小于每一磁盘上的 Raid-5 卷大小与磁盘数目相乘之积,因为有些空间用于奇偶校验。
delete disk [noerr][override]
使用 delete disk 命令可从磁盘列表中删除缺失的动态磁盘。
如果未指定 override 参数,将删除磁盘上包含的所有简单卷,并删除所有镜像丛。如果磁盘用于 Raid 5 卷,此命令将失败。
delete partition [noerr] [override]
使用 delete partition 命令可删除当前处于焦点的分区。
Diskpart 禁止删除用于包含现有在线动态卷的任何分区。但这些卷必须被删除,且磁盘必须转换为基本磁盘。要删除 ESP、MSR 或已知 OEM 分区,需指定 override 参数。
可以从动态磁盘上删除分区,但是不能创建这些分区。例如,可以删除动态 GPT 磁盘上未识别的 GPT 分区。如果删除分区,空闲空间将不可用。在无法使用 clean 命令的紧急情况下,可以使用此命令回收损坏的离线动态磁盘上的空间。
delete volume [noerr]
使用 delete volume 命令可删除当前处于焦点的卷。使用此命令后,将丢失所有数据。
extend disk=n [size=n] [noerr]
使用 extend 命令可将当前简单卷或扩展卷扩展到指定磁盘上。extend 命令仅适用于 NTFS 卷。
如果未指定大小,此卷可占用指定磁盘上的所有空闲空间。任何现有磁盘焦点都将丢失。
import [noerr]
使用 import 命令可导入外部磁盘组中的所有磁盘。
如果在外部磁盘组中的任何磁盘上都设置了焦点,就可以导入该组中的所有磁盘。运行此命令后,任何现有卷或磁盘焦点都将丢失。
online [noerr]
使用 online 命令可使以前离线的磁盘或卷重新在线。如果使用此命令,焦点不会发生更改。
remove [[letter=l]/[mount=path]/[all]] [noerr]
使用 remove 命令可删除当前处于焦点的卷的驱动器号或装入点。如果使用 all 参数,将删除所有当前驱动器号和装入点。如果未指定驱动器号或装入点,则删除遇到的{dy}个路径。
禁止删除系统、启动或分页卷的驱动器号。
retain
使用 retain 命令可准备将动态简单卷用作启动或系统卷。
如果在基于 x86 的计算机上使用 retain 命令,将在动态简单卷上创建一个具有焦点的 MBR 分区。要创建一个 MBR 分区,动态简单卷必须始自一个柱面对齐的偏移量处,而且其大小必须是柱面大小的整数倍。
如果在基于 Itanium 的计算机上使用 retain 命令,retain 命令将在动态简单卷上创建具有焦点的 GPT 分区。
转换磁盘的命令
convert mbr [noerr]
使用 convert mbr 命令可将当前磁盘的分区形式设置为 MBR。磁盘可以是基本磁盘或动态磁盘,但是切勿包含任何有效数据分区或卷。
convert gpt [noerr]
使用 convert gpt 命令可将当前磁盘的分区形式设置为 GPT。磁盘可以是基本磁盘或动态磁盘,但是切勿包含任何有效数据分区或卷。此命令只在基于 Itanium 的计算机上才有效,在基于 x-86 的计算机上可能会失败。
convert dynamic [noerr]
使用 convert dynamic 命令可将基本磁盘改为动态磁盘。磁盘可以包含有效数据分区。
convert basic [noerr]
使用 convert basic 命令可将空的动态磁盘转换为基本磁盘。
其他命令s
exit
使用 exit 命令可停止 Diskpart 并将控制权返回给操作系统。
clean [all]
使用 clean 命令可通过将扇区清零,从当前处于焦点的磁盘删除分区或将卷格式化。默认情况下,仅改写 MBR 或 GPT 分区信息及任何有关 MBR 磁盘的隐藏扇区信息。如果指定 all 参数,可将每个扇区都清零,同时可删除驱动器上包含的所有数据。
rem [...]
rem 命令不执行任何操作,但您可以使用此命令注释脚本文件。
rescan
使用 rescan 命令可重新扫描所有 I/O 总线并可因此发现添加到计算机上的任何新磁盘。
帮助命令s
help
使用 help 命令可显示所有命令列表。
diskpart 应用
分区增容就是当一个分区的空间不能满足使用需求时,为其额外加大空间的方法。很多朋友遇到这种情况时,一般都使用PartitionMagic完成的。但实际上,使用Windows XP/Server 2003的用户xx可以使用系统内置的磁盘管理功能来完成分区的空间“增容”。
一、划出自由空间
假设现在需要对D盘增容50MB的空间,这个空间需要从E盘上提取。那么首先要就从E盘上划分出这50MB的空间才行。这个操作的过程如下:
首先将E盘所有数据转移到其它分区,然后单击“开始→运行”,输入“Diskmgmt.msc”后回车,打开“磁盘管理”窗口。选中E盘并点击右键,在弹出的快捷菜单中选择“删除此逻辑驱动器”项。在弹出的提示框中点击“是”按钮继续。操作完毕后,将会在“磁盘0”列中出现与删除分区相同大小的可用空间。
二、给分区增容
此时请注意D盘当前空间为855MB,现在我们来进行为其增加50MB的操作。单击“开始→程序→附件→命令提示符”,在打开的窗口中依次输入“Diskpart”、“List volume”、“_selectvolume 2”、“Extend Size=50”四条命令。
其中,“Diskpart”命令用来调用DOS磁盘管理程序,“Diskpart/?”命令可以看到该命令的DOS下中文帮助信息。“List Volume”用于显示系统上所有磁盘的详细信息,从而得知所需扩充分区的卷号。
这里可以看出D盘的卷号为“2”;“_selectVolume 2”命令用于选择卷,这里根据上一步得出的提示选择卷2;“Extend Size=50”用于将D盘空间增容,这个增容的来源空间当然是划分出的自由空间了。从命令执行的结果“DiskPart成功地扩展了卷”来看,我们对D盘的空间增容已经成功了,如图所示。
{zh1}在“磁盘管理窗口”中选择剩余的可用空间,依次点击“操作→所有任务→新建逻辑驱动器”命令,根据提示为该空间分配驱动器号和进行格式化操作即可。