揭秘Win8电脑OEM分区的创建
现在预装 Win8 的电脑大多是采用新版 UEFI 固件 + GPT 格式磁盘,不再像以前的 BIOS + MBR。采用 UEFI 和 GPT 的好处多多,例如可实现安全启动等更多新特性,和支持更多的硬盘分区、更大的分区容量。
像戴尔等品牌笔记本会有一些系统启动前就可以运行的诊断工具,其实这些工具往往是存放在硬盘的一个隐藏的OEM分区里的。如果自行重装系统时不小心将其删除,那么即便从别处拷贝到了其中的程序文件,又该怎么恢复分区的 OEM 隐藏属性呢?
对于 MBR 格式的硬盘,通过百度搜素,我们就可以得到其解决方法;而对于 GPT 格式的硬盘,网络上尚未出现有效的解决方案,在下文中,我将揭秘如何对 GPT 硬盘应用 OEM 分区属性。
先来快速回顾一下如何在 MBR 磁盘上设置 OEM 分区吧:在 Diskpart 命令中,对选中的分区执行"create partition primary id=xx size=xx"即可,其中 id 标识了 OEM 厂商,例如 id=DE 就是向 Windows 声明它是戴尔的 OEM 分区。关于更多的厂商代码说明,可以执行命令"help create par pri"来了解:
那么对于 GPT 格式的磁盘呢?
上面那条命令当然不再适用了。是不是像网上说的那样,只能用 OEM 送的一些"一键恢复"软件彻底格式化并还原磁盘分区,或者用 Ghost 重载以前的硬盘备份才能设置了呢?国外的论坛的一些回答也指明了得联系 OEM 去恢复。其实答案是我们自己也可以设置,而且一样是用 Diskpart 这个系统自带的工具,只不过它很容易被大家忽略了。
新版的 Diskpart 里面有一个命令是"gpt"。利用这个命令和对应的分区属性代码,就可以轻松设置其属性。例如我们需要设置 OEM 分区属性,让 Windows 自动隐藏该分区,那么我们可以在创建一个主分区 (create par pri size=xxx) 之后,执行"Gpt attributes=0x0000000000000001"即可将其设置为 OEM 分区。
这里的 0x0000000000000001是啥意思呢?我们可以通过执行"help gpt"来查看:
这里,除了利用0x0000000000000001属性将某个主分区设置为 OEM 分区外,我们还可以通过其他代码对分区应用其他属性:
64位的ID 效果
0x0000000000000001将该分区标记为必需分区 / 设置 OEM
0x8000000000000000设置为默认不为其分配盘符
0x4000000000000000隐藏卷上分区(挂载管理器将检测不到)
0x2000000000000000申明分区为另一分区的卷影副本
0x1000000000000000设置为只读以阻止数据写入
要取消某个已应用的属性,只需在 gpt <64位属性ID> 这条命令中的属性ID前加一个减号"-"。不排除微软在下个版本的 Windows 中,会添加更多针对 GPT 磁盘的新属性。