订单与 VHDX 配置
“自定义订单配置”是机台管理页面中最复杂的编辑器。它把多个下载项、发布时间、可选安装、差分镜像、目录映射和启动脚本组合成一个 JSON 数组,再由管理员选择要使用的订单。
本文只说明网页上可见的配置格式和使用方法。订单涉及磁盘、启动和内容更新,任何未知字段都应先在测试机台验证。
进入编辑器
- 登录有机台权限的账号。
- 打开“机台管理”。
- 在“自定义订单配置”卡片中点击设置。
- 页面会读取当前订单列表;读取失败时不要直接覆盖为空数组。
- 编辑完成后点击“保存配置”,等待操作结果。
打开弹窗时会把当前内容加载到本地编辑状态。刷新机台配置不会打断已经打开的编辑器,因此保存前应重新确认你编辑的是最新版本。
配置总形状
顶层必须是 JSON 数组,每个元素是一个订单对象:
[
{
"name": "ORDER_A01",
"description": "示例订单",
"install_path": "Y:\\Zunda\\Disk\\ORDER_A01",
"is_delete": false,
"is_option": true,
"is_vhdx": false,
"vhdx_pwd": "",
"current": {
"order_time": "2026-01-01T07:00:00",
"release_time": "2026-01-01T07:00:00"
},
"settings": {
"mklink": {
"enable": false,
"mode": 0,
"src_path": "",
"dst_path": ""
},
"sideload": {
"enable": false,
"run_path": ""
}
},
"install": [],
"install_mklink": {}
}
]空配置使用 []。如果文本不是数组、JSON 逗号缺失或引号不闭合,编辑器会显示“JSON 格式错误”,保存按钮不会提交。
顶层订单字段
name
订单唯一标识,也是侧载选择弹窗中显示的版本名。建议使用短、稳定、只包含字母、数字、短横线或下划线的名称。
- 不要重复使用同一个名称;
- 不要在名称中包含密码或临时下载地址;
- 修改名称会让原来的自定义侧载按钮变成新名称。
description
仅用于管理员识别订单的说明文字。可以写版本、用途、来源和预计发布时间,但不要写敏感凭据。
install_path
订单在机台上的安装/数据根目录。它必须是目标机台实际存在或允许创建的路径。
- 使用 Windows 路径时,在 JSON 文本中反斜杠必须写成
\\; - 不要使用当前正在运行的关键目录作为临时测试路径;
- VHDX 订单和压缩包订单应分别使用独立目录;
- 修改路径前先确认磁盘空间和权限。
is_delete
开启后该订单会被当作删除项处理,而不是普通安装项。它适合清理旧内容,不适合用来暂时隐藏订单。提交前必须确认订单名称和路径没有写错。
is_option
开启后订单属于可选安装项。它不会因为出现在配置数组中就自动运行,必须同时在“订单项可选安装列表”中选中名称。
is_vhdx
开启后订单使用 VHDX 差分镜像方案。此时 vhdx_pwd、安装项里的 vhdx_name 和安装映射通常都必须配套填写。
vhdx_pwd
VHDX 镜像的解锁/保护密码。它是高敏感字段:
- 不要把真实密码提交到公开仓库或聊天记录;
- 不要用普通用户密码替代;
- 不要在文档、截图或错误报告中显示;
- 只填写管理员为该镜像提供的值;
- 复制时确认没有多余空格和换行。
current.order_time 与 current.release_time
订单整体的下单时间和发布时间,格式为:
2006-01-02T15:04:05建议使用同一时区约定,并在公告中写清楚时区。order_time 表示订单开始进入处理流程;release_time 表示内容允许被后续流程应用的时间。下载完成但发布时间未到时,订单可能保持等待状态,这是正常现象。
settings.mklink
这是订单级目录映射设置。
"mklink": {
"enable": true,
"mode": 0,
"src_path": "Y:\\Zunda\\Mount\\Shared",
"dst_path": "Y:\\Zunda\\Disk\\ORDER_A01\\Shared"
}| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用这组目录映射 |
mode | number | 映射模式编号;当前 UI 只提供数字输入,必须使用管理员给出的模式值 |
src_path | string | 映射源路径 |
dst_path | string | 订单内的目标路径 |
网页没有为 mode 提供枚举说明,因此不要凭猜测填写非零值。确认方式是使用管理员提供的已验证样例,并在测试机上检查目录是否按预期出现。
settings.sideload
控制订单是否进入侧载启动列表:
"sideload": {
"enable": true,
"run_path": "T:\\ORDER_A01\\start.bat"
}| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否把该订单加入侧载启动选择 |
run_path | string | 该订单的启动脚本或启动入口 |
run_path 必须是目标机台可以访问的路径。脚本不存在、盘符未挂载或路径包含错误转义时,订单可能下载成功但启动失败。
install 安装项数组
一个订单可以有多个安装项,适合把大内容拆成多个文件或把公共资源和可选资源分开。
"install": [
{
"name": "ORDER_A01_base",
"hash": "<SHA256>",
"url": "https://download.example.invalid/object",
"pwd": "",
"size": 123456789,
"vhdx_name": "",
"order_time": "",
"release_time": ""
}
]安装项字段
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 安装项名称,用于进度和管理识别 |
hash | string | 下载校验值;必须与管理员给出的值完全一致 |
url | string | 下载地址;使用 HTTPS 和可信来源 |
pwd | string | 压缩包或安装项密码,没有密码时为空 |
size | number | 预期大小,单位为字节,不是 MB/GB |
vhdx_name | string | VHDX 文件名;普通压缩包通常为空 |
order_time | string | 安装项自己的处理时间,可覆盖或补充订单时间 |
release_time | string | 安装项自己的发布时间 |
时间优先级
当安装项填写自己的 order_time/release_time 时,管理流程会优先使用安装项时间;没有填写时才使用订单整体的 current 时间。为了避免同一订单出现不同步,建议同一批安装项统一填写或统一留空。
size 和 hash
size写字节数,错误一个数量级会影响进度展示和完整性判断;hash是校验值,不要把 URL、文件名或压缩包密码写进去;- 任何下载失败先重新检查 URL、大小和校验值,不要关闭校验。
VHDX 订单完整流程
适合的场景
VHDX 适合把大型、固定结构或需要差分镜像管理的内容作为独立订单交付。普通小文件或一次性脚本更适合使用压缩包订单。
编辑器顶部的“填入压缩包示例配置”和“填入 VHDX 示例配置”只是脱敏模板生成器:点击后会把当前数组替换成示例内容;如果已有订单,网页会先要求确认。示例中的地址、密码、校验值和路径不能直接用于真实机台。
两种安装模式对比
| 项目 | 压缩包订单 | VHDX 订单 |
|---|---|---|
is_vhdx | false | true |
顶层 vhdx_pwd | 通常为空 | 由管理员提供 |
安装项 vhdx_name | 通常为空 | 每个镜像填写文件名 |
安装项 pwd | 可能是压缩包密码 | 视下载包是否加密 |
| 适用内容 | 普通文件、脚本、资源包 | 大型镜像、差分内容 |
| 排障重点 | URL、密码、Hash、解压路径 | 镜像密码、镜像文件名、挂载路径和链接映射 |
不要在同一个安装项上同时套用两套规则;如果管理员没有明确说明,优先使用压缩包模板并询问确认。
群组经验:订单完成不等于内容已可用
现场反馈显示,订单常见的“看似完成”状态包括:下载完成但等待发布时间、主包完成但拆分包未完成、镜像已下载但尚未挂载,以及机台重启后仍选择了旧侧载项。遇到缺内容时,按以下顺序检查:
install中的每个安装项是否都完成;hash、size和文件名是否一致;release_time是否已经到达;- 订单是否被可选列表、黑名单或删除列表影响;
settings.sideload与当前选择的侧载项是否一致;- 重启后健康数据和磁盘状态是否更新。
不要用同名订单覆盖正在处理的订单,也不要因为屏幕版本号不变就删除下载缓存。
配置步骤
- 点击“填入 VHDX 示例配置”查看完整字段形状;
- 如果已有订单,确认弹窗中的替换提示后才会覆盖全部内容;
- 修改
name、description和install_path; - 打开“VHDX 订单”;
- 填写管理员提供的
vhdx_pwd; - 在
install中添加一个或多个安装项; - 为每个 VHDX 安装项填写
hash、url、size和vhdx_name; - 如果镜像需要启动入口,开启
settings.sideload并填写run_path; - 必要时配置
install_mklink; - 检查 JSON 状态为“JSON 有效”;
- 保存配置,等待操作进度完成;
- 在侧载模式弹窗中选择该订单,空闲时重启并验收。
VHDX 典型模板
下面是脱敏模板,不能直接用于生产机台:
[
{
"name": "ORDER_VHDX_A",
"description": "VHDX 测试订单",
"install_path": "Y:\\Zunda\\Disk\\ORDER_VHDX_A",
"is_delete": false,
"is_option": true,
"is_vhdx": true,
"vhdx_pwd": "<VHDX_PASSWORD>",
"current": {
"order_time": "2026-01-01T07:00:00",
"release_time": "2026-01-01T07:00:00"
},
"settings": {
"mklink": {
"enable": false,
"mode": 0,
"src_path": "",
"dst_path": ""
},
"sideload": {
"enable": true,
"run_path": "T:\\ORDER_VHDX_A\\start.bat"
}
},
"install": [
{
"name": "ORDER_VHDX_A_0",
"hash": "<SHA256>",
"url": "https://download.example.invalid/vhdx",
"pwd": "",
"size": 0,
"vhdx_name": "ORDER_VHDX_A_0.vhdx",
"order_time": "",
"release_time": ""
}
],
"install_mklink": {}
}
]VHDX 常见错误
| 现象 | 优先检查 |
|---|---|
| 下载完成但无法应用 | hash、size、vhdx_name 和发布时间 |
| 解锁失败 | 密码是否完整、是否有多余空格、镜像是否匹配 |
| 侧载按钮不显示 | is_vhdx、settings.sideload.enable 和订单可选列表 |
| 启动后找不到内容 | install_path、install_mklink 和挂载盘状态 |
| 订单一直等待 | release_time 尚未到达,或安装项时间覆盖了订单时间 |
| 重启后回到旧版本 | 是否真的选择了自定义订单,是否保存排序,是否完成应用 |
install_mklink 映射
这是一个 JSON 对象,键和值都是路径。网页将每一对显示为“键/值”两列:
"install_mklink": {
"Y:\\Zunda\\Mount\\Shared": "Y:\\Zunda\\Disk\\ORDER_A\\Shared"
}根据当前界面字段说明,键表示目标路径,值表示源路径。实际应用前必须以管理员提供的已验证样例为准,因为路径方向错误可能导致内容不可见或覆盖错误目录。
添加映射:点击“添加映射”,填写键和值;修改键时网页会删除旧键并创建新键;删除映射不会删除磁盘上的原始文件,只会从订单 JSON 中移除该条记录。
订单编辑器的安全行为
- 点击“移除”只从当前编辑数组移除订单,保存后才会提交;
- 点击示例按钮会在已有内容时弹出替换确认;
- JSON 语法错误时保存按钮不应提交;
- 文本区域是最终生成 JSON 的可见结果,可以复制到离线备份;
- 点击“保存配置”后弹窗关闭,页面继续显示操作进度;
- 保存失败时应回到编辑器检查,不要重复提交同一份未知配置。
编辑器会把每次表单改动重新序列化为格式化 JSON。右下角文本区是最终提交内容,可以用复制功能保存到离线文件;直接修改文本区后,只有 JSON 能够解析时才会更新表单对象。发现格式错误时,先撤销最后一次输入,或从最近的有效备份恢复。
订单项可选安装列表
该弹窗输入订单项名称列表,用英文逗号分隔。只有被列出的、且订单本身 is_option 为真的项目才会被选择。
示例格式:
ORDER_A01,ORDER_B02不要写 JSON 数组、不要使用中文逗号、不要把描述文字混入名称。修改后重新打开弹窗确认保存值。
聊天经验:可选列表为空或订单不能选择
现场提问中经常把“订单存在”“订单已下载”和“订单出现在可选侧载列表”混为一谈。要让一个可选项可见并可用,至少需要同时满足:
- 订单本身的可选开关已开启;
- 可选列表中的名称与订单/安装项名称逐字一致;
- 黑名单和数据删除列表没有排除它;
- 发布时间已到,当前分支和账号/机台范围允许;
- 订单和安装项已经保存,并在健康页完成回读。
可选列表输入的是名称列表,不是 JSON 数组。中文逗号、复制来的换行、描述文字、旧名称和首尾空格都可能造成“保存了但列表为空”。保存后重新打开弹窗确认实际值;不要为修复列表显示而创建同名订单、复制其它机台配置或删除旧订单。
订单项黑名单列表
黑名单用于禁用指定订单项,输入规则与可选安装列表相同。黑名单优先级通常高于普通可选列表,排障时应先检查黑名单是否误包含目标名称。
订单项数据删除列表
该列表用于指定需要清理数据的订单项,属于高风险设置:
- 只填写确认可以删除的订单名;
- 保存前离线记录原值;
- 不要把“黑名单”误当作“删除列表”;
- 应用后先观察磁盘和订单状态,再进行其它更新。
聊天经验:切换侧载后不要随意禁用订单功能
侧载运行和订单处理是两个不同的可见设置。现场公告曾提醒,迁移侧载分支后如果关闭订单功能,部分设置更新可能无法生效;因此“当前内容已下载”不等于“订单功能以后可以永久关闭”。
若当前发布说明要求保留订单功能,就保持原值,并先确认订单列表、安装项和设置更新都能完成。确需关闭时,先记录原值、当前分支、订单进度和影响范围,在维护窗口操作;关闭后若出现设置不更新、内容不完整或挂载状态不变,先恢复原值并回读,不要同时改网络和映射。
更新限速
“自定义更新限速设置”弹窗包含:
| 字段 | 单位/含义 |
|---|---|
| 启用 | 是否启用限速配置 |
| 下载限速 | 下载阶段上限,MB/s |
| Hash 下载限速 | 校验文件下载阶段上限,MB/s |
| Hash 安装限速 | 校验/安装阶段上限,MB/s |
| 安装限速 | 安装阶段上限,MB/s |
输入 0 通常表示不设置该阶段的额外上限;实际效果以机台状态为准。限速过低会让订单长时间处于处理中,限速过高则可能影响现场网络。
聊天经验:全部安装项同时报错时先看限速
历史现场反馈中出现过所有安装项同时进入相同失败状态的情况,后来发现共同条件可能是自定义更新限速、网络或磁盘,而不是每个安装项同时损坏。遇到这种模式:
- 记录每个安装项的状态码、说明和时间;
- 检查自定义限速是否开启,四个阶段是否被设置得过低;
- 以当前发布说明要求为准,必要时关闭自定义限速或恢复管理员给出的最低值;
- 保存一次并等待完整结果;
- 仍失败时再检查空间、速度、Hash、大小和发布时间。
聊天中的旧数值只代表当时批次,不能固化为永久阈值。不要同时修改限速、订单、分支和网络,否则无法判断真正原因。
聊天经验:多安装项会逐项变化,挂载慢不一定是失败
现场反馈中出现过“只更新了一个安装项”“总进度已完成但内容仍不可见”和“侧载镜像挂载很慢”。多安装项订单可以分别经历下载、校验、释放、挂载和应用;总进度或单项变绿都不能替代逐项状态。
排查时打开健康页的订单详情,同时观察:
- 每个安装项的状态、状态说明、发布时间和最近更新时间;
- 磁盘可用空间、读写速度和网络速度;
- 当前运行分支、挂载状态和最后上报时间。
进度或最后上报仍在变化时,等待一次完整周期;所有字段长时间不变时,保存脱敏证据并报告。不要连续点击挂载、重复创建同名订单、删除镜像或在等待中修改映射。
复核清单
保存自定义订单前逐项确认:
- 顶层是数组,JSON 状态显示有效;
- 每个
name唯一且没有敏感信息; - 路径全部属于目标机台可用磁盘;
- VHDX 订单的密码、文件名、校验值和大小已由管理员核对;
- 订单和安装项时间使用同一时区约定;
- 可选列表、黑名单和删除列表没有互相冲突;
- 侧载启动脚本路径存在;
- 已下载当前配置备份,并准备恢复 U 盘;
- 机台空闲,保存后有时间观察完整进度。
