你的位置:首页 > 操作系统

[操作系统]UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究


内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区、4K对齐、起始扇区、恢复分区、ESP分区、MSR分区,哪些分区是必要的,删除是否会影响系统运行。

建议初级读者先了解什么是BIOS+MBR和UEFI+GPT,再阅读以下内容,因为涉及的内容太多,这些知识点不作为本文的讨论内容,建议百度搜索:“BIOS+MBR”、“UEFI+GPT”、“BIOS+MBR UEFI+GPT 区别”、“UEFI 优势”、“UEFI 好处”

阅读本文前,其它可能还需要了解的知识点:原版系统、系统安装方法、文件系统FAT32/NTFS、diskpart命令、diskgenius、活动分区、主分区、扩展分区、PE、1MB等于多少KB等。

 

在UEFI引导模式下,Win10X64系统安装程序在为没有任何分区的空白磁盘分区时,当创建第一个分区时会有如下提示:若要确保 Windows 的所有功能都能正常使用,Windows 可能要为系统文件创建额外的分区。确定 取消,选择确定后,分别创建了以下几个分区:起始扇区2048的450MB恢复分区、100MB的ESP分区、16MB的MSR分区、所要创建分区的值减去前面几个分区的大小后的分区。

序号分区用途需求文件系统类型是否隐藏总字节数总容量MB已用空间MB已用空间无系统可用空间MB可用空间无系统簇大小总簇数已用簇数已用簇数无系统空闲簇数空闲簇数无系统总扇区数扇区大小起始扇区号
1恢复恢复环境可选NTFS1471859200450372.91277.14384096115199954733083197261121169216005122048
2ESPEFI引导必须FAT32110485760010028.8471.2961024983042539817290698303204800512923648
3MSR动态磁盘等Windows必须Microsoft Reserved Partition11677721616//////////327685121128448
4本地磁盘系统1NTFS0******4096******512*
5本地磁盘用户数据1NTFS01073741824102419.5/1004.5/40962621435000/257143/2097152512*

其它信息:
NTFS版本号        3.1
WinVer        Microsoft Windows [版本 10.0.14393]
SysVer        Win10X64
数据采集Date        2016/11/13
分区表类型        GPT
/无该信息,*无意义

表格太长,如果看不到全部,可以按Ctrl++放大页面,Ctrl+-缩小页面,Ctrl+0还原到默认大小页面,也可以拖选并复制表格到文本文档或Excel、Word中查看。

由以上数据分析,我们可以大致了解Windows10系统中硬盘分区的默认结构和默认的大小:

1、起始扇区为2048,为了4K对齐,空出1024KB;

1MB=1024KB=2048扇区*512Bytes/扇区=1048576Bytes,也就是空出了1MB的空间,第一个分区的起始扇区为2048是Win10X64系统在分区时为了4K对齐,因为一般默认的起始扇区是63,起始扇区为2048这一点和DiskGenius(V4.8.0.256 X64)的4K对齐的默认值是一样的,用DiskGenius分区时,对齐分区到此扇区数的整数倍是默认勾选的,且默认值为:2048扇区(1048576字节)。

2、关于恢复、ESP、MSR分区:

分区          描述
恢复          可选分区,用于存放系统恢复、加密保护工具等。
ESP          EFI 系统分区 (ESP),存放系统文件以供引导启动
MSR         Windows 系统特有分区,包含与其他系统分区有关的信息,供 Microsoft 应用程序使用。
在预装Windows 系统的电脑中(OEM)有可能存在15GB的“恢复”分区,其中存放的是Windows 恢复映像,在系统损毁时可藉此恢复系统,由电脑厂商配置。

GPT+UEFI模式下ESP必须保留,里面是引导文件,实际的测试中,ESP不可以删除,恢复分区和MSR分区(在DiskGenius中查看MSR分区无任何文件)删除的话,系统也是可以运行,但是占用的空间很小,非常不建议删除,且微软也是不建议我们删除的;

序号分区大小MB
0起始扇区1
1恢复450
2ESP100
3MSR16
 /合计567

三个额外的分区和起始扇区占用了567MB(在Bios+MBR模式时只有500MB的系统保留分区,加起始扇区占用501MB),也就是说你要新建一个50GB的系统盘时,你实际上要输入的值是:1+450+100+16+50*1024=567+51200=51767MB,这样在减去三个额外分区及起始扇区后新建的系统盘才是真正的50GB整(对于处女座及追求完美的强迫症人士很有用,本人是天蝎座也有点强迫症),另外,并不是在任何时候,Windows都会创建以上几个分区,会随着创建的分区的大小不同而改变;

分区大小MB分区大小MB创建什么额外分区
<89728972不提示不创建
8973905616M的MSR
90579523450M+100M
9524 >9524450M+100M+16M

由以上数据可以看到,当你在没有任何分区的空白磁盘上新建分区的大小<=8972MB时,系统不提示创建额外的分区,只创建你要求创建的分区,或许是系统判断分区太小不适合作系统分区不创建额外分区;8973MB~9056MB时会创建16MB的系统保留分区MSR,分区太小时系统认为此分区不适合作为系统分区也就不创建那些额外分区吧;9057MB~9523MB时,会创建450MB的恢复环境分区和100MB的EFI引导分区ESP;>=9524MB时,才会创建三个额外分区;具体微软的攻城狮是怎么想的,不知道,我认为全部都要提示提示创建额外分区,用户可以选择不同意创建,或选择创建后再删除三个分区的其中任意一个分区,这不是更简单?????

当你的电脑上有两块以上的硬盘,且其中一块硬盘有这三个额外分区时,为另一块硬盘分区,系统将不提示你创建这些额外的分区,也就是一台电脑上只要有一个硬盘中有这三个额外分区就不会提示创建,只有其中一个或两个额外分区时是否会提示创建则未去测试。

如何手动创建以上分区(恢复分区、ESP分区、MSR分区)?

使用最新版DiskGenius分区工具创建,使用快速分区时,创建新ESP分区、创建MSR分区默认是勾选的,但不提供MSR分区大小的修改,且没有创建恢复分区,创建后ESP分区为FAT16文件系统大小为99MB,MSR分区为128MB;直接点新建分区,会提示在建立新分区之前,是否先建立下列ESP、MSR分区?默认勾选了建立MSR分区,但没有勾选建立ESP分区,ESP分区默认大小100MB,且可以修改大小,创建后ESP分区为FAT16文件系统大小为99MB,MSR分区为128MB。

使用diskpart命令创建:

示例:使用 Windows PE 和 DiskPart 配置基于 UEFI/GPT 的硬盘驱动器分区

对于基于映像的部署,使用 Windows 预安装环境 (Windows PE) 启动电脑。然后使用 DiskPart 工具在目标电脑上创建分区结构。有关详细信息,请参阅 适用于 Windows 8 的 WinPE:Windows PE 5.0。

note备注
Windows PE 按英文字母顺序重新分配磁盘号,由驱动器号 C 开始,且无需顾及 Windows 安装程序中的配置。该配置可以根据不同驱动器(包括 U 盘)的出现进行更改。 在这些 DiskPart 示例中,分区分配了驱动器号 T、S、W 和 R 以避免驱动器号冲突。重新启动电脑后,Windows PE 会自动将驱动器号 C 分配到 Windows 分区。系统分区、Windows RE 工具分区和恢复映像分区不会接收驱动器号。

 


以下步骤描述了如何对硬盘驱动器进行分区并准备应用映像。可以使用以下部分中的代码来完成这些步骤。

对硬盘驱动器进行分区并准备应用映像
  1. 将以下部分中的代码在 U 盘上保存为文本文件 (CreatePartitions.txt)。

  2. 使用 Windows PE 启动目标电脑。

  3. 使用 DiskPart /s F:\CreatePartitions.txt 命令,其中 F 是 U 盘的驱动器号,用于对驱动器进行分区。




示例 DiskPart 脚本:默认配置

将以下代码保存为 CreatePartitions.txt,然后使用 DiskPart 工具运行脚本以自动化系统、MSR 和 Windows 分区的配置。

select disk 0cleanconvert gptcreate partition primary size=300format quick fs=ntfs label="Windows RE tools"assign letter="T"create partition efi size=100rem == Note: for Advanced Format Generation One drives, change to size=260.format quick fs=fat32 label="System"assign letter="S"create partition msr size=128create partition primaryformat quick fs=ntfs label="Windows"assign letter="W"

 示例 DiskPart 脚本:建议配置

将以下代码保存为 CreatePartitions.txt,然后使用 DiskPart 工具运行脚本以自动化 Windows RE 工具分区、系统、MSR、Windows 和恢复映像分区的配置。

rem == CreatePartitions-UEFI.txt ==rem == These commands are used with DiskPart torem  create five partitionsrem  for a UEFI/GPT-based PC.rem  Adjust the partition sizes to fill the driverem  as necessary. ==select disk 0cleanconvert gptrem == 1. Windows RE tools partition ===============create partition primary size=300format quick fs=ntfs label="Windows RE tools"assign letter="T"set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"gpt attributes=0x8000000000000001rem == 2. System partition =========================create partition efi size=100rem  ** NOTE: For Advanced Format 4Kn drives,rem        change this value to size = 260 ** format quick fs=fat32 label="System"assign letter="S"rem == 3. Microsoft Reserved (MSR) partition =======create partition msr size=128rem == 4. Windows partition ========================rem ==  a. Create the Windows partition ==========create partition primary rem ==  b. Create space for the recovery image ===shrink minimum=15000rem    ** NOTE: Update this size to match the sizerem        of the recovery image      **rem ==  c. Prepare the Windows partition ========= format quick fs=ntfs label="Windows"assign letter="W"rem === 5. Recovery image partition ================create partition primaryformat quick fs=ntfs label="Recovery image"assign letter="R"set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"gpt attributes=0x8000000000000001list volumeexit

 提供对 Windows RE 工具和恢复映像分区的额外保护。

如果使用推荐的 DiskPart 脚本,则最终用户在文件资源管理器中不能查看 Windows RE 工具分区和恢复映像分区。但是,他们可以使用磁盘管理工具查看和删除恢复映像分区。

如果要使用磁盘管理工具防止最终用户删除分区,可以在创建分区时将以下 DiskPart 命令添加到脚本。

gpt attributes=0x8000000000000001

 该 DiskPart 命令合并了 GPT_ATTRIBUTE_PLATFORM_REQUIRED (0x0000000000000001) 和 GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER (0x8000000000000000) 属性。有关详细信息,请参阅 DiskPart:GPT。
后续步骤

创建分区后,可以在新创建的分区上使用部署脚本以应用 Windows 映像。有关详细信息,请参阅示例:使用部署脚本应用 Windows、系统和恢复分区。
另请参阅
任务
示例:使用 Windows 安装程序创建基于 UEFI/GPT 的硬盘驱动器分区
示例:使用 Windows PE 和 DiskPart 配置基于 BIOS/MBR 的硬盘分区
示例:使用部署脚本应用 Windows、系统和恢复分区
概念
配置基于 UEFI/GPT 的硬盘驱动器分区

硬盘整数分区的研究,硬盘分区实际占用的空间大小研究:

我们知道1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024Bytes,1Bytes=8Bit,那么50GB=53687091200Bytes,也就是53687091200字节数,但是使用DiskGenius查看50GB分区占用的总字节数为53688139776,多占用了1048576字节,1048576Bytes=1MB,经过测试可知,不管是使用Win10系统安装时自带的分区管理来新建的分区,还是在DiskGenius中新建的分区都是要多出1MB的,也就是50GB分区的占用空间的MB数为50*1024+1MB,而恢复分区、ESP、MSR则不会多;

我们可以知道在Win10X64系统,UEFI+GPT模式下,硬盘各分区的实际占用空间大小如下(C盘以50GB为例):

分区名称起始扇区恢复分区ESPMSR50GB剩余分区
占用空间(MB)14501001651201剩余空间

为什么分区的实际占用空间要比理论的空间大小要大呢?实际这是由于对于NTFS格式:
硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分10 GB,那么要10x1024 MB=10240 MB
需要柱面数为10240÷7.84423828125=1305.416744475568004979769685652
取整数既为1306个柱面
应分MB数为1306x7.84423828125=10244.5751953125 MB
不管小数点后面几位都进1,也就是10245 MB,系统也就认为是10.00 GB了。

每一个分区都要这么复杂的计算,那头都会晕,而且浪费时间,我们可以用表格进行自动的计算,利用EXCEL自带的函数表格对整数G进行计算:
在A1单元格中输入我们需要分出的整数G分区的数值,在B1单元格中输入下列公式:
=ROUNDUP(ROUNDUP(A1*1024/7.84423828125,0)*7.84423828125,0)
按回车后,即可得到整数G分区对应的MB数值。
上述公式用到了一个函数:ROUNDUP(a,b),ROUNDUP就是无条件进位,a代表需要进行进位的那个数,b代表返回结果所保留的小数位数,我们需要无条件进位取整的话,就是不保留小数,所以b赋值为0。

可以自己制作一个表格,输入自己最常用的整数G,就能自动生成对应的MB数。

下面是从网络上寻找的常见分区大小对照表:

分区大小(GB)NTFS 格式设置大小(MB)FAT32 格式设置大小(MB)
10 G10245 MB10276 MB
15 G15367 MB15416 MB
20 G20482 MB20556 MB
25 G25604 MB25696 MB
30 G30726 MB30836 MB
35 G35841 MB35976 MB
40 G40963 MB41116 MB
45 G46085 MB46256 MB
50 G51208 MB51396 MB
55 G56322 MB56536 MB
60 G61444 MB61676 MB
65 G66567 MB66816 MB
70 G71681 MB71956 MB
75 G76803 MB77096 MB
80 G81926 MB82236 MB
85 G87048 MB87376 MB
90 G92162 MB92516 MB
95 G97285 MB97656 MB
100 G102407 MB102796 MB
105 G107521 MB107936 MB
110 G112644 MB113076 MB
115 G117766 MB118216 MB
120 G122888 MB123356 MB
125 G128003 MB128496 MB
130 G133125 MB133636 MB
135 G138247 MB138776 MB
140 G143362 MB143916 MB
145 G148484 MB149056 MB
150 G153606 MB154196 MB
155 G158721 MB159336 MB
160 G163843 MB164476 MB
165 G168965 MB169616 MB
170 G174088 MB174756 MB
175 G179202 MB179896 MB
180 G184324 MB185036 MB
185 G189447 MB190176 MB
190 G194561 MB195316 MB
195 G199683 MB200456 MB
200 G204806 MB205596 MB

但是在DiskGenius和Windows操作系统默认的分区大小都只是比理论的大小多出1MB而已,而不是上面表格所对应的大小,但是我们在Windows系统安装时分区中输入的大小要以实际占用大小减去1MB(也就是不加1MB,如50GB=50*1024MB就行),因为这个1MB是在NTFS分区中系统分区时自动会加入进去的,也就是你分50GB,输入的大小还是以50*1024MB,1MB是系统自动会加入的,估计是微软攻城狮认为大部分人分区都是以实际的GB数乘以1024,所以NTFS分区默认都会在原大小加上1MB来分区。

那么我们在给NTFS分区分配大小时是按实际大小加1MB还是按上面表格来按NTFS格式设置大小呢?两种都可以,看自己的理解吧,我个人认为还是按Windows和DiskGenius软件默认的+1MB来会更简单吧,毕竟微软都是这样做的,人家微软攻城狮的技术肯定也不差,这么做一定也差不到哪,对于想追求太完美、想折腾的、不怕麻烦的,可以按照上面的表格来设置;

而在BIOS+MBR模式时,Windows安装系统时新建的分区只有500MB的系统保留分区(实际占用也为500MB,应该类似于UEFI+GPT模式下的ESP和MSR分区),NTFS格式、卷标为系统保留,在DiskGenius中查看该分区下的文件应该是用于存放系统引导相关文件和Windows RE环境用的,起始扇区也是2048扇区。



簇大小:NTFS:4096,ESP引导分区为FAT32文件系统,簇大小为1024;这个簇大小应该是因分区的大小和文件系统的不同而不同的,这个是和文件系统相关的。

Win10X64系统的安装分区建议大小:

win10分区建议大小:所选分区上的可用空间量小于建议的 17584 MB。我们建议此分区至少为 17584 MB,否则请选择其它分区。
当有多个分区时分区太小的提示:标题:Windows 安装程序 内容:此分区太小,请将此分区的大小至少设置为 8957 MB,或选择其它分区。

17584/1024=17.171875GB,8957/1024=8.7470703125GB

是否可以删除?要不要删除?

建议的分区方式:

由于GPT分区表的优越性,作为更新的技术,后续也肯定是GPT分区表会越来越多,建议以GPT作为分区表,而不是MBR分区表,对于两者区别,请自己百度,可以搜索关键词:"GPT MBR 区别"以详细了解;

系统分区建议大小,>500GB的硬盘建议分50GB作为系统盘,>=500GB的硬盘建议以60GB作为系统盘,安装软件多的可以以80GB、90GB、100GB、110GB、120GB作为系统盘大小;

D盘分区建议大小,D盘作为常用数据和一些游戏及部分软件的安装盘,也不要太大,120GB的固态硬盘分两个区D盘只剩大约59GB了,更大的硬盘D盘建议分100GB或120GB的空间,再更大的则分160GB、200GB的空间;

分区个数的建议,120GB、128GB的硬盘肯定是分两个分区,>=320GB的硬盘分3个分区,不管硬盘多大,都建议分3个分区(系统盘+用户数据及软件类+其它文件资料),分区越多,空间利用率越小,硬盘的空间又不会因分区多而变小,怎么会利用率低呢?举例来说,120GB的硬盘分2个区(50GB+59GB),你D盘可以放59GB的东西,你分3个区(50GB+30GB+29GB),那么同一类型的文件(如电影、电视刷、教程、工作文件),最多只能用到30GB,多了你就要放到另一个分区,这样就不方便管理了,而你分更少的分区的话,不管放什么文件是不是都可以放很多,放其它文件只要新建一个文件夹就可以了,所以大家不要以分区来归类自己不同类型的文件,而是要去习惯以文件夹来归类,你分区也就类似于多了层文件夹而已,但是却比文件夹更不方便于管理,而且同一个分区内复制或移动文件速度也比不同分区里复制移动会更快的多,对于常用的文件夹可以新建快捷方式到桌面,也可以用批处理subst来映射文件夹为虚拟磁盘分区。

对于移动硬盘的分区建议:GPT分区表(XP会不支持GPT,但XP系统较少见,且可以用2003SP2X86系统里的disk.sys替换来支持;对于无UEFI启动的电脑无法直接启动GPT硬盘里的系统,可以把引导文件写入到MBR分区表的U盘来引导GPT硬盘),要4K对齐,起始扇区为2048扇区,有恢复分区、ESP、MSR分区,1、随后新建1GB的分区用于安装ISO格式的PE系统,2、30GB~50GB用于安装系统(也可以用于存文件,有需要可以用来安装系统用作实验及测试,因为只是用来测试什么的,有30GB足够安装系统),3、50GB~120GB用于用户数据及软件安装(不装系统时也可以用来存文件),4、剩余空间为最大的分区,用来存文件什么的。

 

注:

本文为了突出主旨,只写与主要讨论的内容有关,但一些相关的内容有提及并作简要描写,不作详细的解说,不明白的请自行网络搜索相关资料;

建议只是本人现在认同的方式,基于本人的认知和习惯而形成的解决方式,分享自己的观点,如有错误,欢迎指正;

关于版权与转载:

原创文章,欢迎转载,部分资料与内容来源于网络,转载请务必注明出处,本文首发于http://www.cnblogs.com/ForestNet/,有更新或修改,一律优先更新这里,除非博客打不开则另说。

限于本人水平有限,文中难免有一些错误(请尽量不要吐槽本文的格式与排版,重点在于内容-_-),欢迎网友阅读并指正相关错误,我会及时更新文章,可以发邮件到邮箱85801@163.com与我联系或在本文首发的博客(http://www.cnblogs.com/ForestNet/)中该文章的下方评论区发表评论,谢谢!

 

关于文件大小的换算,可以参考:在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算,http://www.bejson.com/convert/filesize/

关于整数分区计算可以参数:整数分区在线计算工具,支持 NTFS 和 FAT32,http://www.iplaysoft.com/tools/partition-calculator/

所有引用的链接网址,一般都有相关的标题,如时间太久远或其它情况导致相关网址失效,请自行搜索相关标题或相关关键词来搜索寻找相关资料;

部分内容来源于网络,包括但不限于以下内容:

示例:使用 Windows PE 和 DiskPart 配置基于 UEFI/GPT 的硬盘驱动器分区,https://msdn.microsoft.com/zh-cn/library/hh825686.aspx

本文首次编写并发表于2016年11月20日,文中测试所用到系统及软件基本都是以截止该时间来最新的系统版本和软件版本(我认为对于系统或任何软件,只要是稳定的,一般都是取新不取旧),或接近最新的版本,其中DiskGenius的版本信息如下: