一般在非特殊情况下我对硬盘的分区等操作都是使用Windows 系统自带的 Diskpart工具,事实上这款系统原生的工具也足以满足我的大部分需求叻.
由于Diskpart工具是系统自身集成,,所以使用上也就少了许多限制,不需要再去安装第三方的软件,在不是过度精简的PE中,WindowsVista / 7的安装盘都包含此工具,也因此熟悉一些Disakpart的使用可以让我在维护机器的过程中提供很大的方便及灵活.
DiskPart 是一个 Windows家族中的文本模式命令解释程序。使用此工具,可以通过使用脚本或直接在命令提示符下输入来管理对象(磁盘、分区或卷)。
在新版本的windows 中包含的 diskpart 工具功能也有增强,而我这里介绍一些Windows 7 / PE3.0下diskpart的常用命令,如果是要看完整详细的说明请查看帮助信息或者去微软支持中心.
使用Diskpart需要使用管理员权限,打开CMD,然后直接输入diskpart回车就行叻,如下示例显示
C:windowssystem32>diskpart
Microsoft DiskPart version 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: QIYI-PC
DISKPART>
接下来就可以使用diskpart来对磁盘上的分区,卷等进行操作叻,一般情况下都是首先选取对象,然后再执行操作
list disk 命令可以显示一系列的磁盘信息,如大小,可用空间等,
DISKPART> list disk
Disk ###StatusSizeFreeDyn Gpt
--------------------- -------------- --- ---
Disk0Online232 GB 2048 KB
Disk1 NoMedia0B0 B
磁盘从0开始计数,示例显示叻我的硬盘为 Disk 0 及其大小.此时没有选中任何一个磁盘
select disk 0 是选中disk 0 ,事实上select的用法就是后面直接接对象
DISKPART> select disk 0
Disk 0 is now the selected disk.
选中后有提示,然后再 list disk 来看看区别
DISKPART> list disk
Disk ###StatusSizeFreeDyn Gpt
--------------------- -------------- --- ---
* Disk 0Online232 GB 2048 KB
Disk1 NoMedia0B0 B
恩,在选中的对象前会有一个 * 出现表示当前的焦点,只有在选中某个对象后才能对其进行操作.
接下来就可以对选中的操作列分区显示
DISKPART> list partition
Partition ###TypeSizeOffset
----------------------------- --------------
Partition1Recovery300 MB 1024 KB
Partition0Extended135 GB 301 MB
Partition4Logical45 GB 302 MB
Partition5Logical50 GB 45GB
Partition6Logical39 GB 95GB
Partition2Primary80 GB 135 GB
Partition3Primary17 GB 215 GB
这里列出了我的硬盘上的所有分区情况,,同样第一列作为分区标识,第二列显示类型,主分区或者扩展分区,逻辑分区等,后面还有显示大小,偏移量等信息,如果需要进一步地查看分区的信息,我们可以选中某个分区然后使用detail 命令
DISKPART> select partition 1
Partition 1 is now the selected partition.
DISKPART> detail partition
Partition 1
Type : 27
Hidden: Yes
Active: Yes
Offset in Bytes: 1048576
Volume ###LtrLabelFsTypeSizeStatusInfo
------------- ---------------- ----------------- -----------------
* Volume5SystemNTFSPartition 300MBHealthyHidden
这里可以看到分区的ID号,分区是否激活,是否隐藏,分区文件系统格式,卷标等很详细的信息
此外还可以使用 list volume 查询各个卷的信息
DISKPART> list volume
Volume ###LtrLabelFsTypeSizeStatusInfo
------------- ---------------- ----------------- -----------------
Volume0HDVD-ROM0 B No Media
Volume1C Windows7NTFSPartition45 GBHealthyBoot
Volume2DDownloadsNTFSPartition50 GB Healthy
Volume3EMediaNTFSPartition39 GB Healthy
Volume4F WorkstationNTFSPartition80 GB Healthy
* Volume5SystemNTFSPartition 300MBHealthyHidden
Volume6IRemovable0 B No Media
列出叻当前系统下的卷标,盘符,文件系统格式,大小等信息.
除了基本的查看信息(list/detail disk ,list/detail partiton , list/detailvolume , list/detail vdisk)之外,还有些对分区的创建,编辑,修改操作.
首先介绍一个 Windows 7 里diskpart特有的新功能,对VHD文件的创建,编辑.
DISKPART> create vdisk file=f:test.vhdmaximum=10240 type=expandable
100 percent completed
DiskPart successfully created the virtual disk file.
这是一个最简单的建立一个可扩展VHD文件的命令,同时指定了可扩展的最大空间为10G,根据示例,创建普通VHD文件的命令语法CREATE VDISKFILE=<"filename">MAXIMUM=<N>[TYPE={FIXED|EXPANDABLE}] ,大小的单位为 M,type可以不指定,默认情况下为固定大小,需要注意的是创建一个固定大小的VHD文件花费的时间要长很多,因为步骤中会使用0去填充所有的空间.
对于创建好的VHD文件,可以挂载上来,就类似于插入到电脑中.,不过仍然需要先选中对象.
DISKPART> select vdiskfile=f:test.vhd
DiskPart successfully selected the virtual disk file.
DISKPART> attach vdisk
100 percent completed
DiskPart successfully attached the virtual disk file.
选中VHD文件后面需跟着FIEL指定文件,然后使用 attach vdisk命令挂载,挂载上的VHD文件就可以当做一块新硬盘看待叻,list disk 查看一下
DISKPART> list disk
Disk ###StatusSizeFreeDyn Gpt
--------------------- -------------- --- ---
Disk0Online232 GB 2048 KB
Disk1 NoMedia0B0 B
* Disk 2Online10 GB 10GB
这样就挂载成为我的第二块硬盘叻,大小正是我当时建立时所设定的那样,并且在挂载后自动将焦点转移到叻这块硬盘,使用 detail命令看看详细情况就更清楚叻
DISKPART> detail disk
Msft Virtual Disk SCSI Disk Device
Disk ID: 00000000
Type : Virtual
Status : Online
Path : 0
Target : 0
LUN ID : 1
Location Path : UNAVAILABLE
Current Read-only State : No
Read-only : No
Boot Disk : No
Pagefile Disk : No
Hibernation File Disk : No
Crashdump Disk : No
Clustered Disk : No
There are no volumes.
表明了各种信息,而且告诉我这块硬盘上还没有卷,当然了,一块新硬盘我还没分区呢.(这里的很多设置都是可以在创建VHD时指定参数的,详细请使用help 命令查看,这里不涉及那么深),
然后我将这块虚拟硬盘完全当做一块真实的硬盘来对待,对其进行分区等操作.
首先初始化硬盘,用 clean 清除掉所有信息
DISKPART> clean
DiskPart succeeded in cleaning the disk.
然后创建一个主分区,大小为300M
DISKPART> create partition primarysize=300
DiskPart succeeded in creating the specified partition.
创建分区时要指定分区类型,可以为主分区,扩展分区,逻辑分区等,size后指定大小,如果不指定大小,那么将创建一个分区占用硬盘上剩下的所有空间.
DISKPART> create partitionextended
DiskPart succeeded in creating the specified partition.
DISKPART> create partition logical
DiskPart succeeded in creating the specified partition.
我建立了一个占用剩下所有空间的扩展分区,再在扩展分区里建立了一个占用所有扩展分区空间的逻辑分区.查看一下分区状况
DISKPART> list partition
Partition ###TypeSizeOffset
----------------------------- --------------
Partition1Primary300 MB 1024 KB
Partition0Extended9 GB 301 MB
* Partition 2Logical9 GB 302 MB
正式按照刚才定义的要求创建,那么接下来对分区进行格式化等操作
DISKPART> select partition 1
Partition 1 is now the selected partition.
DISKPART> format quick fs=ntfs label=System
100 percent completed
DiskPart successfully formatted the volume.
DISKPART> active
DiskPart marked the current partition as active.
DISKPART> assign letter=s
DiskPart successfully assigned the drive letter or mountpoint.
上面的命令过程是选中分区1,然后快速格式化为NTFS文件系统格式,卷标为System,再用active激活当前这个分区,使其成为活动分区,最后给这个盘分配盘符S , 使用 list volume 查看一下刚才的操作结果,摘一条出来
DISKPART> list volume
Volume ###LtrLabelFsTypeSizeStatusInfo
------------- ---------------- ----------------- -----------------
* Volume7SSystemNTFSPartition 300MB Healthy
同样地,可以对刚才的另外一个分区进行格式化等操作,我们还可以使用diskpart工具对分区进行一些较为高级的配置,譬如建立隐藏分区,恢复分区等,也即是对分区的ID号进行设置
DISKPART> set id=27
DiskPart successfully set the partition ID.
DISKPART> list partition
Partition ###TypeSizeOffset
----------------------------- --------------
* Partition 1Recovery300 MB 1024 KB
Partition0Extended9 GB 301 MB
Partition2Logical9 GB 302 MB
使用 set id命令可以直接指定ID,如示例,我将刚才的分区更改ID为27后就成了一些OEM厂商出场配置的恢复分区叻,还带有隐藏等属性,使用detail命令可以查看详细情况
DISKPART> detail partition
Partition 1
Type : 27
Hidden: Yes
Active: Yes
Offset in Bytes: 1048576
Volume ###LtrLabelFsType&#
160;SizeStatusInfo
------------- ---------------- ----------------- -----------------
* Volume7SSystemNTFSPartition 300MBHealthyHidden
常用的创建,编辑分区命令这些差不多叻,对于删除,算是最简单叻的吧
DISKPART> select partition 2
Partition 2 is now the selected partition.
DISKPART> delete partition
DiskPart successfully deleted the selected partition.
完成对VHD虚拟硬盘的操作后可以使用detach vdisk 命令来卸载
DISKPART> detach vdisk
DiskPart successfully detached the virtual disk file.