diskpart是windows自带的dos操作的一款磁盘管理软件。常见的磁盘管理软件有很多,像windows自带的磁盘管理,fdisk及第三方软件diskgeninus、分区助手等等,图形化软件固然操作简单,但效率低而且我们不常带在身边还要去下载。而系统自带diskpart由于自带和命令简单,所以掌握好后比较方便、不需要依赖第三方软件了,甚至在安装系统界面遇到需要对硬盘分区、转换硬盘类型gpt时可以shift+10进入cmd进入diskpart进行磁盘管理,而不需要再退出安装到pe里操作了。接下来我们就进入diskpart命令学习吧。
既然diskpart是一款磁盘管理软件,那么它肯定能完成对硬盘基本操作,让我们带着这种信心去上手它,不停探索。首先在用diskpart进行磁盘分区操作时,我们想一下,我们之前用图形化软件经常进行哪些操作。个人总结主要有三种:1.不同分区的创建/删除2.现有分区的压缩/扩展3.转换硬盘格式mbr/gpt。接下来win+r,运行里面输入diskpart进入diskpart中。
使用diskpart对目标磁盘/分区操作时,我们必须选中目标磁盘/分区。依次通过
1.list disk/part 2.select disk/part [n]
来选中目标磁盘或分区,当前被选中的磁盘或分区前有*标志。其中[n]指目标磁盘或分区序号。在选中目标磁盘或分区后如果想查看更多磁盘或分区信息可以通过 detail disk/part 命令来查看分区盘符等信息。以下为list、select、detail命令具体图解
接下来详细说下listdisk 后展示的细节信息
我们看到可用的下面显示了对应磁盘剩余可用量,刚开始我们可能会有困惑,明明我的硬盘剩余存储空间还很多,怎么显示0呢。这里的可用量可不是指硬盘空闲存储空间大小,而是指硬盘上未分配空间(未进行分区的空闲空间),后面的gpt如果有‘*’表示该块硬盘为uefi启动下的gpt格式(还有的电脑硬盘是bios启动下的mbr格式)。很多时候我们可以通过这里查看自己硬盘格式。说了这么多接下来我们通过实际操作来具体实践。
-
为硬盘进行分区
手里拿到了块新的硬盘,我们在mbr格式磁盘下来分一个主分区和两个逻辑分区,(其中在mbr磁盘上最多只能创建四个主分区,但是可以创建一个扩展分区在扩展分区下创建多个逻辑分区。而gpt磁盘上可以创建多个主分区)以下是命令顺序及解释
List disk 列出磁盘
Select disk 选择磁盘
create partitionprimary size=20480 创建主分区容量为20G
active 激活当前分区(mbr磁盘下主分区需要进行激活才能安装系统)
assign letter=‘i’为当前分区分配盘符i,注意只能分配未被使用字母(此时你会看到资源管理器里多出盘符为i的磁盘,提示进行格式化。有的时候如果想改变分区盘符,可以在目标分区下remove all 删除当前盘符,没了盘符磁盘就不会显示在资源管理器了。然后重新分配想要分配盘符)
formatquick 快速格式化,默认格式化类型为ntfs。如果没有加quick修饰命令,格式化很慢。此处如果你想进行不同类型格式化及顺便给分区重命名甚至自定义分配单元大小可以help format 自行了解下命令。eg:format fs=fat32 labble=!quick
create partitionextended 创建扩展分区,如果没有加修饰size,默认在剩余未分配空间上创建分区
create partitionlogical size=10240 在扩展分区上创建逻辑分区,容量为10G
assign letter=‘j’分配盘符‘j’
format quick 快速格式化当前分区‘j’
create partitionlogical 在扩展分区剩余未分配空间上继续创建逻辑分区
assign letter=‘k’分配盘符‘k’
format quick 快速格式化当前分区‘k’
至此我们完成了一个主分区和两个逻辑分区创建。
随后,我们还可以使用deletepartition命令删除分区‘k’
最后我们看下分区最终结果
对现有分区的压缩扩容
而我们现实中很多时候是想着对于自己现有磁盘分区扩容或者压缩某个分区多创建一个分区。在此我们详细说下硬盘分区的一些细节。操作系统为了在硬盘上寻址快捷所以在分区内存储数据是从分区的开头往后连续存储,以及一个完整的分区是建立在硬盘上连续的空间上。设想如果在分区内存储数据很零散,硬盘的磁头就要做很多重复的往返运动,大大减慢了硬盘读取速度。同样当我们的分区是几个零散的磁盘片段组成,读取速度就更加慢了。因此我们可以知道我们压缩分区得到的空间是之前分区后部空闲区域。这样我们对磁盘扩容也是只能把该分区后面紧跟的未分配空间扩容到上一个分区。如图所示:
这样在系统自带的diskpart还是磁盘管理下我们都无法方便实现把D盘空间扩容到C盘目的,只能借助DG等第三方软件扩容(原理大致是把D分区开头部分数据移动到D分区后面,然后将开头空闲出空间扩容到C盘)。但我们可以实现压缩某个分区,在空闲分区上新建分区的目的。以下是命令及解释
Shrinkquerymax 查询当前分区可压缩量(fat32文件系统不支持压缩)
Shrinkdesired=n 压缩大小为n的空间,n为压缩量,不能大于可压缩量
extendsize=n 像跟未分配空间相连的上一个分区扩展容量为n的空间
-
转换硬盘格式mbr/gpt
有时候我们在装win8系统时选择uefi启动,而之前磁盘是mbr格式,需要转换成gpt格式。Diskpart里同样能够实现。具体命令如下
convert gpt/mbr 将当前磁盘从之前的mbr/gpt转换成gpt/mbr
create partition efi size=100 创建大小为100兆的efi分区
在将mbr磁盘convert gpt后,diskpart会自动创建了一个128M的msr分区,而在gpt磁盘下还得有一个efi分区用来存放系统引导,所以我们手动再创建一个大小为100M(大小是我是按照DG里大小弄的)的efi分区。这样就完成里mbr转换成gpt。接着同样的方法我们可以将gpt装换成mbr了,但不用再需要创建msr和efi分区了。以下是将mbr转成gpt命令图解
上图中clean命令是清除分区表,也就是大家常说的全盘格式化,所以要慎用,个人当时就在不清楚的情况下clean了一块儿硬盘致使所有分区丢失,虽然分区表可以恢复,但要想好再用。
以上命令都是个人实践可靠操作,diskpart基本操作大致这些,大家想更深入学习,可以随时help 或help 【命令】查看详细解释。最后我们按照硬盘不同结构对应不同命令来分类整理下这些命令。