我有 2 个配置完全相同的 Windows 安装,均为 32 位和 64 位。这些 Windows 安装引用了其他驱动器以进行特定设置,例如:
- 用户文件夹被重定向到
U:\Users
驱动器 - 一些程序安装在
P:\
驱动器上。
操作系统安装在C:\
驱动器上。
为了不断测试这些配置好的机器的设置,我使用了非通用的 sysprep,并重新启动到同一个虚拟机(我还没有在另一台机器上测试它)。
这些非通用的 OOBE 系统准备工作非常完美。它指的是这个问题。
当我按自己想要的方式配置完机器,并知道它们都可以在非通用 sysprep 中工作后,我使用通用选项对它们进行了 sysprepped。
OS
从这里我创建了一个 WinPE 启动环境并捕获了分区(C:\
)和PROGRAMS
分区( )的图像P:\
。
现在我创建了一个新的虚拟机,并使用连接的设备启动到 WinPE,我们捕获的图像就位于该设备上。
这里我使用 diskpart 创建了以下(需要的)分区:
这些是与没有使用 generalize 的 sysprepped 机器相对应的分区。系统分区只是一次尝试,我也尝试过不使用该系统分区。
创建分区后,我将映像应用到相应的磁盘(C:\
-> OS 分区,P:\
-> Programs 分区)。这是通过使用 DISM /apply-image 命令实现的。我确信我选择了正确的 .WIM 文件索引。
然后我用它bcdboot C:\Windows /s C:
来创建启动文件,成功了。
使用命令重新启动机器后exit
,如果未启动到 WinPE,则出现以下错误消息。
图片取自这篇 Wintips 文章
通过 SHIFT + F10 打开记事本并打开文件时\Windows\Panther\setuperr.log
,出现以下行:
2016-08-20 21:13:01, Error [0x0606ae] IBS [SetupCl library] Required profile hive does not exist [\??\E:\WINDOWS\system32\config\systemprofile\NTUSER.DAT].
注意:从错误消息中删除空格
另外,当我打开记事本并在打开文件时检查我的驱动器时,发现里面有各种我没有在 WinPE 中创建的驱动器。
唯一正确的是C:\
驱动器,PROGRAMS 驱动器应该是P:\
,而 USERS 驱动器应该是U:\
。
更新日期 2016/05/09:
在启动到应用的 Windows 映像时出现错误后,我按 SHIFT + F10 打开了 CMD,并打开了 DISKPART 程序。
在这里,我选择了驱动器号错误的驱动器,然后使用以下命令重新设置驱动器号
assign letter=X
右侧对应的驱动器号。
重新启动机器后,仍然出现同样的错误。
问题
- 这些随机驱动器号是从哪里来的?我在开始 Windows 安装之前已经在 WinPE 中设置了它们。
- 如何使我的通用 sysprep 使用这些设置?
答案1
经过大量的调试和检查日志文件后,我终于找到了问题所在。注册表中的默认程序文件位置被设置为驱动C:\
器(默认)。
我制作了第二个驱动器P:\
(PROGRAMS),安装了一些软件。阅读后本文,我打开了那个日志文件并查找注册表中的错误。
其中一行指出找不到安装在其他驱动器上的 AVAST 软件的密钥。
卸载 AVAST 后,错误不再出现。