【openxp打包简易流程第1版 2026-02-08.txt】
openxp打包简易流程第1版 2026-02-08
参考资料:
https://theopenxp.org/wiki/Getting_Started
D:\srv03rtm\readme.md
一、要点:
1. 编译源码和打包要单线程,估计是临时文件冲突编译会失败。
2. 打包64位版本iso,会用到32位版的文件。所以要先打包32位版(x86),后打包64位版本(amd64)。
3. 编译通过后,已经和源码没有太多的关系。后续需要从正式发行版里补缺失的或运行正常的文件进行打包。
4. 并不是所有的版本参数都可以通过,可以通过脚本 chksku.pm 初步判断。pbuild.cmd 执行的 tools\postbuildscripts\cdimage.cmd -l:usa 会用到 chksku.pm。
perl tools\chksku.pm
-t:
per pro srv ads
-l:
usa jpn ara
-a:
x86
amd64
ia64
return 0 (valid)
return 1 (invalid)
perl tools\cksku.pm -t:per -l:usa -a:amd64
echo %ERRORLEVEL%
0
perl tools\cksku.pm -t:pro -l:usa -a:amd64
echo %ERRORLEVEL%
0
perl tools\cksku.pm -t:srv -l:usa -a:amd64
echo %ERRORLEVEL%
1
二、准备工作:
1. 源码包
https://theopenxp.org/
https://theopenxp.org/download
下这两个文件就可以。
srv03rtm.7z
misbin.7z
2. 操作系统:
需要64位版的Windows。这个源码时打过补丁的,32位版工具支持有问题。
我尝试过,英文版Server 2003,Win10 LTSC都可以,选英文版Server 2003吧。
中文版Win10 LTSC会有些问题,需要给源码打补丁,也能编译通过。还没有深入分析。
Win10需要禁UAC disable User Account Control
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System and set EnableLUA to 0. 重启机器。
需要安装的软件
en_win_srv_2003_r2_standard_x64_with_sp2_vl_cd1_X13-47808.iso
en_win_srv_2003_r2_standard_x64_with_sp2_vl_cd2_X13-68587.iso
Microsoft .NET Framework 2.0 Service Pack 1 (x64)
NetFx20SP1_x64.exe
3. 编译准备
解压 srv03rtm.7z 到 D:\srv03rtm
安装密钥 tools\driver.pfx
三、编译生成x86安装盘
4. 第一轮,编译源代码,生成x86安装盘
系统管理员身份进入cmd
cd /d D:\srv03rtm
tools\razzle64.cmd free offline
第一次进入会自动安装些工具。退出再进入一次。
用32位版替换两个不能执行的文件。
copy D:\srv03rtm\tools\x86\gidl.exe D:\srv03rtm\tools\amd64
copy D:\srv03rtm\tools\x86\mibcc.exe D:\srv03rtm\tools\amd64
5. 开始编译
如果第一次运行编译首先执行: tools\prebuild
build /cZP -M 1
注意,一定要定义 -M 1。单线程编译。
6. 编译完成后,会生成 D:\binaries.x86fre
这是可以把 D:\binaries.x86fre 和 D:\srv03rtm 打包备份一下。回头还要用。
打包后,我改了压缩包文件名。
binaries.x86fre_x86.7z
srv03rtm_x86.7z
7. 补缺失的文件
解压文件 misbin.7z
有4个目录。用 binaries.x86fre 覆盖 D:\binaries.x86fre
8. 修改打包的线程为1
文件名 D:\srv03rtm\tools\postbuildscripts\pbuild.cmd
找到
if ( $HorsePower ) {
$MaxThreads = $NumProcs * $HorsePower;
} else {
$MaxThreads = $NumProcs * 4;
}
之后加上一句
$MaxThreads = 1;
8. 把需要生成 iso 的文件压缩打包。
tools\postbuild -sku:srv
9. 生成 x86 版的 iso
tools\oscdimg.cmd srv
如果不需要 x86 版的iso文件,这一步也可以省略。
四、编译生成amd64安装盘
打包amd64版需要用到x86版的文件。
保留 D:\binaries.x86fre 目录备用。删除或改名 D:\srv03rtm 目录。
以下步骤和上述步骤类似。
解压 srv03rtm.7z 到 D:\srv03rtm
10. 第二轮,编译源代码,生成amd64安装盘
系统管理员身份进入cmd
cd /d D:\srv03rtm
tools\razzle64.cmd free offline win64 amd64
第一次进入会自动安装些工具。退出再进入一次。
用32位版替换两个不能执行的文件。
copy D:\srv03rtm\tools\x86\gidl.exe D:\srv03rtm\tools\amd64
copy D:\srv03rtm\tools\x86\mibcc.exe D:\srv03rtm\tools\amd64
5. 开始编译
如果第一次运行编译首先执行: tools\prebuild
build /cZP -M 1
注意,一定要定义 -M 1。单线程编译。
6. 编译完成后,会生成 D:\binaries.amd64fre
这是可以把 D:\binaries.amd64fre 和 D:\srv03rtm 打包备份一下。回头还要用。
打包后,我改了压缩包文件名。
binaries.amd64fre_amd64.7z
srv03rtm_amd64.7z
7. 补缺失的文件
解压文件 misbin.7z
有4个目录。用 binaries.amd64fre 覆盖 D:\binaries.amd64fre
8. 修改打包的线程为1
文件名 D:\srv03rtm\tools\postbuildscripts\pbuild.cmd
找到
if ( $HorsePower ) {
$MaxThreads = $NumProcs * $HorsePower;
} else {
$MaxThreads = $NumProcs * 4;
}
之后加上一句
$MaxThreads = 1;
8. 把需要生成 iso 的文件压缩打包。
tools\postbuild -sku:pro
9. 生成 am64 版的 iso
tools\oscdimg.cmd pro
四、后续
生成的iso文件,安装进入会有问题,后续排查解决。
我打包iso的安装失败
zzemu 2026/2/8 22:13:54