资讯详情

Windows 10X(WCOS)安装的理论与实践

Surface Neo 但是 Windows 10X 可以先玩-安装在实体机上 Windows 10X 详细的安装过程记录在北一文中,但内容基本和 osg.wiki 文章一样,几个重点坑都没说。本文以理论与实践并重的方式告诉大家如何安装,更重要的是,为什么要这样安装。

准备设备

其他教程会告诉你需要什么 U 这些都不用了。本节所述是最低要求。

目标机

目标机是目标机 Windows 10X 设备。需满足以下硬性要求:amd64 指令集处理器启用虚拟支持

有 UEFI 支持,并且 Secure Boot 可关闭或不关闭 Secure Boot,支持从外部存储设备启动

不依赖外部屏幕(Windows 10X 对外部屏幕的支持还没有做好)

上面没有重要的数据,也没用 TPM 保护的数据

如果你真的想获得完整和流畅 Windows 10X 体验,建议您的设备主要硬件(验证、声卡、网卡等) DCH 驱动。Intel 核显的 DCH 驱动支持的最老硬件是 6 代 Core。我手头只有 4 代 Core,图形界面没有硬件加速,性能很差。非 DCH 可能安装驱动器 Windows 10X,但是很有可能会导致系统出现问题,所以不要对进入桌面的黑屏感到特别惊讶。

没有人试图在桌面设备或独立显卡设备上安装 Windows 10X。有兴趣的话可以试试。

工作机

安装过程中使用的大部分设备都完成了。需满足以下硬性要求:Windows 10 1909(18363)或更高(如果你感兴趣,没有人试过更低的版本)

64 位系统(主要是因为下面使用的工具都是 64 寻找这些工具的位置 32 位置替代品的工作留给读者练习)

建议提前拔掉工作机上的无关硬盘,以免在操作过程中错误的硬盘。

系统盘

用于存放系统盘 Windows 10X 硬盘。它需要满足以下硬性要求:

存储空间大于 128GiB(注意,128GB 是不行的)

以上数据可以全部丢弃,以后我们会擦掉这个盘子

系统磁盘需要能够轻松地插入工作机和目标机器,所以我选择了一块 512GB SATA SSD 加 USB 硬盘盒。如果不介意多次拆机插拔硬盘,用什么盘子都无所谓。建议开始前使用 diskpart的 clean命令清空盘子。

分支选择

这些问题会影响后续步骤。

是否支持目标机 Secure Boot 或 TPM?

Secure Boot 必须关闭,否则会给后续折腾带来麻烦。(测试设备的安全性是什么?

在产品设计方面,Windows 10X 和传统桌面 Windows 互斥。为实现互斥,Windows 10X 每次启动都会添加一个 UEFI 变量SecureBootPlatformID,传统 Windows 10 当你看到这个变量时,你会拒绝启动。另外,Windows 10X 还会往 TPM 里面写点东西。如果您的设备完全不支持 UEFI 没有保存变量 TPM,你可以放心穿上衣服。(这就是为什么我们一开始都用它 MacBook,MacBook 固件没有这些功能。)假如您的设备支持 UEFI 变量保存(大部分电脑都支持),然后用完了 Windows 10X 记得以后删除SecureBootPlatformID这个变量。TPM 折腾过程中可能会出现问题,因此如果固件被禁用 TPM 直接禁用功能,避免夜长梦多。

系统盘的扇区大小

大多数硬盘都是 512 字节为扇区(以下简称 512bn),但是有一些新的硬盘支持 Advance Format,以 4KiB 一个扇区(4k native,以下简称 4kn)。Windows 10X 模拟器的 VHDX 是 4kn 是的,这导致了两个问题:

这个 VHDX 非微软官方支持的工具暂时无法读写(无论是开源的) qemu-img 还是 DiskGenius 等待商业软件),所以我们必须使用它 Windows 作为工作机的设备

假如你的系统盘是 512bn,那么把 4kn 的 VHDX 内容写入系统盘后,分区表上的分区位置等数据都是错误的,需要乘以 8

你觉得你盘子的扇区大小怎么样?最准确的方法是查询制造商提供的 datasheet;若厂家未提供datasheet 或者上面没有写风扇区域的大小,所以看看你的硬盘上的贴纸是否画了 AF 的 logo,有些话一般是 4kn,没有些话一般是 512bn 盘。

获取Windows 10X镜像

官方镜像需要你是Windows Insider(19500 上述版本)可以下载。如果您没有相应版本的系统,您可以尝试下一篇文章提供的第三方下载,或者从您的朋友那里复制一个。最后,你会得到一个 8GiB 的Flash.vhdx文件。

安装须知

这是你在安装前需要知道的知识。

如何查看磁盘号

方法1:使用磁盘管理。

右键开始菜单->磁盘管理,或操作diskmgmt.msc打开磁盘管理。如果磁盘管理打开时弹出初始硬盘对话框,请立即取消,不要单击以确定。

一般硬盘(比如你的系统盘没有写写入 Windows 10X 在磁盘管理的下窗格中,它将显示为一行。您只需要找到该行左上角的磁盘编号,如图所示:595e87d1ef4bbcc168c3ecd79fbad77b.png典型的单分区GPT硬盘

保存 Windows 10X 的硬盘(那个 VHDX 而且系统磁盘已经完成了写入状态)由于存储空间功能的启用,比较特殊,磁盘管理中下窗格会显示很多行:一个启用存储空间的磁盘会显示成多个磁盘

在这种情况下,找到写作OSPool左上角的磁盘编号是真正的磁盘编号。

当启用存储空间的磁盘被插入或拔出时,磁盘管理可能会停止响应。不要惊慌。关掉它,再打开一个。

方法二:使用diskpart使用 diskpart 检查磁盘号

diskpart没有办法这么直观。推断磁盘编号的想法是一样的,仅供参考。

安装

安装过程简单地分为三个步骤: VHDX 镜像中的内容转移到系统磁盘上

将目标机需要的驱动程序放在系统上

把系统盘转移到目标机上,启动

其中 1 和 2 顺序可以交换。你可以直接 VHDX 打驱动,也可以先写系统盘,再在系统盘上打驱动。所有现有的教程都是先做步骤的 2 再做步骤 1 那我先演示一下步骤 1 再做步骤 2 好了。

把 VHDX 镜像中的内容转移到系统磁盘上

本节所需工具:

从GPT fdisk下载一个Windows获得一个版本 gdisk64.exe

从chrysocome.net下载一个ddrelease64.exe

挂载VHDX

首先挂载 VHDX。这一步很简单,直接双击 Flash.vhdx 可以。系统会弹出一个不能挂载的报错,那是假的,点击确定。

挂载完成后,我们使用它gdisk记录这个VHDX接下来可能会使用分区表。 VHDX 磁盘编号(见上),以下记录为数字 M。打开管理员权限PowerShell,运行:.\gdisk64.exe M:

若您输入的数字正确,gdisk会显示Command (? for help):

输入p回车。复制分区表或保存截图。完成后,输入q回车退出gdisk。VHDX 初始分区表

复制硬盘

接下来把 VHDX 将内容复制到系统磁盘中。将系统盘插入工作机,然后分别找到 VHDX 以下是系统磁盘的磁盘编号(见上) M 和数字 N。复制过程很简单,打开一个管理员权限的PowerShell:.\ddrelease64.exe if=\\?\Device\HarddiskM\Partition0 of=\\?\Device\HarddiskN\Partition0 bs=8M --progress

记得把M和N用相应的数字替换,顺序不要错(if是源盘,of是目标盘)。等到下面的进度到131,072M以后会报错退出,不管错误,这一步就完成了。如果还没到 131,072M 就退出了,那么要么你磁盘编号写错了,要么目标盘小于 128GiB。

复制完成后,立即卸载 VHDX,接下来,我们不会用它。在磁盘管理中找到蓝色VHDX硬盘,右键->分离 VHD。分离 VHDX 过程

警告:接下来的步骤当中千万不要再双击 VHDX 或以任何其他方式挂载。 VHDX 与现在已经写入系统的系统磁盘同时挂载到同一台电脑上,这两个磁盘将自动形成 RAID1.两个盘中的数据可能全部报销。不要说言之不预也。

修复硬盘分区表

还记得刚才提到的硬盘扇区大小吗?假如你的硬盘是 512bn 磁盘,然后写入分区表中的所有偏移都是错误的,所以你不能读取任何数据。如果你的硬盘是 4kn 盘以你很幸运,请直接跳过本节。

用 gdisk 打开系统盘:.\gdisk64.exe N:

会报一堆错误,因为整个分区表都不对,都可以同意。Command (? for help):出现后,依次输入x和z清除当前分区表,完成后gdisk会退出。

再次用 gdisk 打开系统磁盘,此时系统磁盘的分区表是空的。我们需要依次创建两个分区,并设置原始的分区名称。在创建过程中,Start sector和 End sector这两个数字值分别保存在上面 VHDX 分表的八倍(4KiB = 512B * 8),其余保持一样即可。以下为gdisk 命令(不建议照抄,建议根据上面 VHDX 的分区表自己算):# 创建第一个分区

n

1

4096

69624

EF00

c

1

BS_EFIESP

# 创建第二个分区

n

2

69632

268435408

4202

c

2

OSPool

# 保存

w

拔掉系统盘再重新插上,你可以在磁盘管理当中看到系统盘现在能认出两个分区,下面还出现了一堆存储空间的条目。

(如果你不想用 Windows 下的 gdisk,找个 Linux 也行;我就是在 Linux 下操作的。)

给系统打上你目标机需要的驱动程序

本节所需工具:目标机所需的硬件驱动程序(可以从厂商或者 OEM 官网下载,或者从现有系统提取)

WCOS 系统工具是 Gustave Monce 提供的。同类文章里面有一些如何从系统盘里面提取相同工具的操作,不过它们的做法在我这都不能用(运行时报ERROR_MOD_NOT_FOUND),有兴趣的读者可以自行尝试。

硬件驱动程序呢,我个人建议只装显卡、声卡、网卡的就好了,而且只装 DCH 驱动,因为非 DCH 驱动有很大可能性不能在 Windows 10X 上正常使用。如果驱动导致 Windows 10X 启动出现问题,关机,把系统盘插回工作机,然后按下文方法删除驱动即可。

假设驱动都下载好了,首先我们要拆每个驱动的包找到里面的安装定义文件(一般是一个.inf扩展名的文件),在这个文件里面我们需要[Version]一节下的Provider字段的值和DriverVer字段逗号后面的版本号。如果值里面出现%变量名%的标记,我们还要去下面[Strings]一节找到相应的变量对应的字符串。以 Intel 显卡驱动为例:

如图所示,DriverVer后面半段直接是我们要的版本号26.20.100.7755,Provider字段则是一个变量引用,在文件末尾我们会找到这个变量的值:

那么Provider字段真实的值就是Intel Corporation。有了这两个值,我们就可以去安装这个驱动了。在管理员权限的 PowerShell 下运行 Windows 10 Mobile 系统工具里面的updateapp.exe,完整命令行格式为:.\updateapp.exe install "DriverPackage|inf文件路径|Provider-inf文件名~驱动架构(一般是amd64)~驱动版本号~bsp|0"

注意如果Provider字段的值里面有空格,需要把空格替换成下划线。同样以 Intel 显卡驱动为例:.\updateapp.exe install "DriverPackage|X:\WCOS\drivers\display_dchu\Graphics\iigd_dch.inf|Intel_Corporation-iigd_dch.inf~amd64~25.20.100.7755~bsp|0"

这个程序还能用来删除已经装好的驱动。如果你不慎安装了错误的驱动,你可以用以下的方法来删除它:.\updateapp.exe install "RemoveDriver|X:\WCOS\drivers\display_dchu\Graphics\iigd_dch.inf|Intel_Corporation-iigd_dch.inf~amd64~25.20.100.7755~bsp|0"

如果updateapp.exe报错c0880005,先检查一下你参数有没有打错。

把系统盘转移到目标机上,启动

这一步应该不用多讲了吧,把系统盘拔下来,插到目标机上,固件里面选择该系统盘,启动即可。如果一切正常,你过会儿就会看到 Windows 10X 启动了。开机转圈的时候老设备可能会卡住几次,不用慌,耐心等待即可。7 年高龄的 MacBook Pro 13 寸(2013 年末款)也能成功运行 Windows 10X

FAQ

Windows 10X 默认在双屏模式里面,但是我的设备只有一个屏幕,很难用怎么办?

进系统以后连按三下 F1 显示调试菜单,把 State 设置成 SingleDisplayCompose 即可。调试菜单,找不到更清晰的图了

启动过 Windows 10X 以后传统 Windows 拒绝启动了怎么办?

启动一个 EFI Shell,在里面执行dmpstore -d SecureBootPlatformID

然后重启回传统 Windows 即可。

Windows 10X 开机后只显示鼠标,桌面黑屏是什么原因?

一般来说是显卡驱动炸了。找找你的显卡有没有 DCH 驱动吧。

如何查看驱动是否正确安装上?

测试版 Windows 10X 默认打开了 device portal 功能,开机以后打开浏览器,访问 http://localhost 就可以看到设备树了。

致谢

标签: c816二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台