"Build FC1178BC 光U / 光闸 with CD-ROM LUN plus encrypted LUN (BitLocker on Win Pro/Enterprise, VeraCrypt fallback on Win Home)."
Resources
3Install
npx skillscat add russ534/myopenclawbot/usb-secure-mass-production Install via the SkillsCat registry.
USB 加密读盘量产 (光U / 光闸自建)
A "光U" (a.k.a. 自建"光闸U盘" / 御天盾-equivalent) is a USB stick whose controller firmware is mass-production-flashed to present two LUNs:
- LUN:1 = USB CD-ROM (read-only, embedded auto-unlock scripts)
- LUN:2 = Removable disk (NTFS, encrypted)
- LUN:3 = Not used
When inserted into Win10/11, File Explorer shows a CD drive (typically E: or F:) whose autorun launches a password prompt; correct password → unlock the data LUN → opens it. Pulling the U盘自动锁回。
Encrypted LUN backend — pick by Win edition:
| Windows edition | Encryption backend | How unlock script invokes |
|---|---|---|
| Pro / Enterprise / Education | BitLocker | manage-bde -unlock <drive> -Password <pwd> |
| Home (家庭版) | VeraCrypt (Portable, packed into the ISO) | VeraCrypt.exe /v <partition_path> /p <pwd> /l V: /q |
Important: Win11 Home CANNOT use BitLocker for removable media. Trying
manage-bdeon Home throws "组策略禁止" / "找不到 protectkey 协议". Don't push BitLocker on Home machines. This skill covers both branches — use the VeraCrypt branch when the target machine is Home.
This skill applies when 爸爸 says "光U / 光闸 / 御天盾 / 自建加密U盘 / USB CD-ROM + 密码 / 摆渡U盘 / 保密U盘 / FC1178BC 量产 + 加密", or in 内外网隔离 / 涉密 / 电网GA / 麒麟统信 scenarios needing a tamper-resistant carrier that opens with a password on stock Win10/11 without installing software.
🚨 Terminology Trap (已踩过的坑)
"光U" / "可擦写光驱" / "光闸" 在中文圈被滥用,三层容易混淆:
| 词 | 真意 | 处理 |
|---|---|---|
| 光U / 光闸 U盘 | 本 skill: CD-ROM LUN(带自动解锁脚本)+ BitLocker 数据 LUN | 量产 + BitLocker + unlock ISO |
| USB CD-ROM 量产 | 普通可移动盘用 MPTool 量成纯只读 USB-CDROM | 只需 ISO + MPTool |
| BitLocker To Go | 普通 U 盘在 Windows 内启用 BitLocker | 5 分钟,不是这个 |
听到 "光U" / "光闸 / 自建光闸U盘" → 指本 skill,不是随便下个量产 ISO 烧盘。
整体架构
┌─────────────────────────────────────────┐
│ FC1178BC 主控(一芯 FirstChip) │
├──────────┬──────────────────────────────┤
│ LUN:1 │ CD-ROM (物理只读固件区) │
│ ~700MB │ └─ mylightu.iso 含: │
│ (Win 内 │ ├─ autorun.inf │
│ MP 配) │ ├─ start.bat / unlock.exe │
│ │ ├─ unlock.ps1 ← 密码框 │
│ │ ├─ unlock.py / .pyw │
│ │ ├─ VeraCrypt.exe ← 家庭版 │
│ │ ├─ README.TXT │
│ │ └─ (only Home) 7z.exe/bits │
├──────────┼──────────────────────────────┤
│ LUN:2 │ 可移动磁盘 (NTFS) │
│ 剩余空间 │ Win Pro/Enterprise: │
│ │ BitLocker AES-256, 951109 │
│ │ Win Home: │
│ │ VeraCrypt 卷, 951109 │
├──────────┼──────────────────────────────┤
│ LUN:3 │ Not Used │
└──────────┴──────────────────────────────┘密码存哪里: 明文写在 unlock.ps1 / unlock.py(设计缺陷——拿到 ISO 就能反编译看密码,但物理只读 + 防写盘里够用)。
⚠️ CRITICAL bug: unlock script 数据区盘符永远不对
老模板里 $dataDrive = 'F:' 是 错的。问题在哪:
- CD-ROM 区插上后优先占用 F:(或 E:,看机器 Windows 分配顺序)
- 数据区 LUN:2 永远是 F: 之后的下一个盘符(通常是 G:,爸爸那台 2026-09 实测是 I:)
- CD-ROM 区盘符是系统自动分配,换台电脑也不一样
- 所以写死盘符 = 永远跑不通
修法: unlock.ps1 必须动态找数据区物理路径,再交给 manage-bde / VeraCrypt。完整模板见 templates/unlock-ps1-vera/ 和 templates/unlock-ps1-bitlocker/。判断方法:
Get-Volume | Where-Object { $_.DriveType -eq 'Removable' -and $_.FileSystem -eq 'NTFS' }找到的 DriveLetter → 再 Get-Partition → Get-Disk → 拼成 \\?\PhysicalDrive<N>Partition<P> 喂给 VeraCrypt;BitLocker 那条直接用 DriveLetter 就行。
一、必备物料
| 项 | 内容 | 说明 |
|---|---|---|
| U 盘 | FC1178BC 主控、镁光 MLC 单通道 | 一芯 FirstChip 兼容性最好;闪迪/金士顿大概率是 SMI/群联,要换工具 |
| 量产工具 | FirstChip MPTool FC1178BC 版 | dl.mydigit.net/search/?type=all&q=FC1178BC |
| ISO | mylightu.iso ~78KB |
内含 unlock 脚本;见 templates/mylightu-iso-contents.md |
| MPTool 配置 | LUN:1=CD_ROM + LUN:2=可移动磁盘(NTFS) | 见 references/fc1178bc-mptool-config.md |
| Windows | Win10/11 专业版/企业版 | 家庭版无 BitLocker;仅需系统自带 PowerShell + manage-bde |
二、完整流程(8 步)
步骤 1: 查主控(必须)
ChipGenius / ChipEasy → 插 U 盘 → 看主控字段- 显示 FirstChip FC1178BC →
FirstChip MPTool FC1178BC - 显示 SMI / Phison / 其他 → 换对应工具,否则量产失败 = 变砖
步骤 2: 下载 FirstChip MPTool
去 http://dl.mydigit.net/search/?type=all&q=FC1178BC:
- 优先:
FirstChip_MpTools_20240221.rar(2024-02-21 新) - 备选:
FirstChip_MpTools_jb51.rar(救砖时优先试)
步骤 3: 制作 mylightu.iso(已存在就跳过)
打包成 ISO 9660,文件清单见 templates/mylightu-iso-contents.md。macOS/Linux 用:
mkisofs -o mylightu.iso -V "LIGHTU" -J -R <src_dir>步骤 4: MPTool 量产配置
工具: FirstChip MPTool (FC1178BC)
├─ LUN:1
│ ├─ 磁盘类型: CD_ROM
│ ├─ 启动盘类型: CD-ROM
│ ├─ 操作系统: WinPE
│ ├─ 复制文件: mylightu.iso
│ └─ 大小: 默认 ~100MB
├─ LUN:2
│ ├─ 磁盘类型: 可移动磁盘
│ ├─ 文件系统: NTFS
│ └─ 大小: 剩余空间
├─ LUN:3
│ └─ 状态: Not Used步骤 5: 量产
- U 盘插好别动
- 跑 MPTool → 点"开始"
- 等 5-10 分钟(16GB 大约这个量级)
- 完成 → 拔插 U 盘
- 资源管理器应能看到:
CD 驱动器 (E:)← LUN:1可移动磁盘 (F:)← LUN:2(未加密)
步骤 6: 启用加密(仅 LUN:2)— ⚠️ 按 Win 版本分支
分支 A — Win Pro/Enterprise(BitLocker 路径)
右键 数据区盘符(动态探测,不要假设)→ "启用 BitLocker" →
├─ 选 "使用密码解锁"
├─ 输密码: 951109
├─ 保存恢复密钥(必须!48 位数字)
│ - 存电脑硬盘 C:\Users\<user>\Documents\
│ - 或打印
│ - 丢了 = 数据永久报废
├─ 选 "兼容模式" (BitLocker compatible mode)
└─ 开始加密(几分钟)⚠️ 必须先看 Win 版本(
winver),家庭版走分支 B。
分支 B — Win Home 家庭版(VeraCrypt 路径)
双击 CD-ROM 里的 VeraCrypt.exe (Portable) →
├─ VeraCrypt 主界面 → "Create Volume"
├─ 选 "Encrypt the whole drive"
├─ 选 数据区(Removable NTFS, 通常是 I: 或 G:)
├─ 输密码: 951109
├─ 算法: AES(默认)
└─ 开始加密(**会清空现有数据**——首次前要备份任何东西)然后每次插 U 盘解锁:双击 start.bat → 输 951109 → VeraCrypt Portable 自动解压到 %TEMP% → VeraCrypt.exe /v <PhysicalDrive path> /p 951109 /l V: /q → 自动打开 V:。
见
templates/unlock-ps1-vera/整套脚本(unlock.ps1 + start.bat + VeraCrypt.exe + README.txt),已经测通。
步骤 7: 改密码(如需要)
默认密码 951109 写在脚本里,要换:
- 编辑
mylightu.iso里的unlock.ps1/unlock.py,改$password/PASSWORD - 重新打包 ISO → 重新量产
量产清盘,建议先确认密码满意再量产。BitLocker 或 VeraCrypt 也需要分别重新启加密。
步骤 8: 验证
- U 盘插到另一台 Win10/11 电脑
- 弹出自动播放 → 选"运行 LightU"
- 输密码
951109→ 应弹窗"解锁成功" → 自动打开资源管理器 - 复制粘贴文件 → 拔 U 盘 → 重插 → 数据区应再次锁定
验证必须换机器——本机可能 BitLocker / VeraCrypt 自动解锁缓存失效看不出问题。
三、量产常见坑 (Pitfalls)
变砖(最严重)🔴
症状: Windows 看到 VendorCo ProductCode,容量 0 字节,No Media。
原因: 主控固件写废(MPTool 工具版本不对、量途中拔、勾 ISP/FW 升级)。
判断命令:
Get-Disk | Where-Object {$_.OperationalStatus -eq "No Media"}救砖成功率:
| 方案 | 成功率 |
|---|---|
| MPTool 低格 | ❌ 不行(主控不响应) |
| MPTool 重新识别 | ⚠️ 30%(主控没死透) |
| PE 工具盘 DiskPart 低格 | ⚠️ 20% |
| 换 MPTool 版本 | ⚠️ 40% |
最坏情况:U 盘报废。再次采购认准 FC1178BC + 一芯。
密码误解(会话已踩过)🔴
2026-09-25:爸爸问"怎么设置密码" → 实际是 BitLocker 密码,秋阳误解为 SSH/Windows 账号密码,重新开了 SSH 排查了一晚上。下次看到"光U"主题里的"密码",默认指 BitLocker 密码,直接讲 manage-bde -unlock 那条线。
ISO 大小误判
老版 mylightu.iso 仅 ~78KB(小到不像正经启动盘)——正常的,只是引导 + unlock 脚本。
新模板(含 VeraCrypt Portable):~40MB 起步。如果 ISO < 5MB 但不是用老模板 → 检查是不是 VeraCrypt.exe 没塞进去。如果 ISO > 200MB → 检查是不是塞了 PE 完整镜像(容易撑爆单通道 CD-ROM 区)。
单通道盘别做大容量 ISO
闪若是 镁光 MLC + 单通道(ChipGenius 会标注),CD-ROM 区 ISO 别超 1.5GB。单通道盘做超容量 CD-ROM 会启动黑屏 / 量产失败。
量产前必须备份
量产 = 整盘全清。CD-ROM 区和数据区全部擦。
BitLocker 恢复密钥
第一次启用 BitLocker 生成的 48 位数字密钥必须保存(电脑硬盘或打印)。丢了 = U 盘上的数据永远打不开。
输错密码 3 次自动退出
脚本里密码比对是明文、无防爆破。要加固就在 unlock.ps1 加 if --attempts -gt 3 { exit } 之类的计数 + 延时锁。
别瞎推 BitLocker
Win10/11 家庭版没有 BitLocker for removable media。manage-bde 家庭版会拒绝 / 报 "组策略禁止"。先 winver 看版本再决定,否则工作到一半才返工。
- Pro / Enterprise / Education → BitLocker 路线没问题
- Home → 必须改用 VeraCrypt(免费开源、Portable、能直接放 CD-ROM ISO 里跟着 U 盘走)
⚠️ unlock 脚本写死盘符 = 永远跑不通
老 $dataDrive = 'F:' 是 bug 模板:
- F: 通常被 CD-ROM 区占了(系统优先分配)
- 数据区实际盘符 = F: / G: / H: / I: ... 看 Windows 心情
- 写死 → 调
manage-bde -unlock F:时F:是 CD-ROM 区 → BitLocker 报 "卷不是 BitLocker 卷" 或类似错
写法:
$v = Get-Volume | Where-Object { $_.DriveType -eq 'Removable' -and $_.FileSystem -eq 'NTFS' }
# VeraCrypt 需要物理路径(不是盘符)
$p = Get-Partition -DriveLetter $v.DriveLetter
$d = Get-Disk | Where-Object { $_.Number -eq $p.DiskNumber }
$veracryptVolume = "$($d.Path)Partition$($p.PartitionNumber)" # \\?\PhysicalDrive1\Partition2完整模板见 templates/unlock-ps1-vera/。
密码误解(会话已踩过)🔴
2026-09-25:爸爸问"怎么设置密码" → 实际是 BitLocker 密码,秋阳误解为 SSH/Windows 账号密码,重新开了 SSH 排查了一晚上。下次看到"光U"主题里的"密码",默认指 数据区加密密码(BitLocker 或 VeraCrypt),直接讲 manage-bde -unlock 或 VeraCrypt 那条线。不是 SSH 密码,不是 Windows 账号密码。
Rufus 不替代 MPTool
如果只是"装系统启动盘" → 用 Rufus 写 ISO 30 秒搞定,别量产。
光U 必须用 MPTool 量产(要写主控固件 + 分 CD-ROM LUN)。
🛠 pycdlib / ISO 制作踩坑(容器里做 ISO)
在 Hermes 容器(无 root、无 apt)里给 ISO 打爆,用 pycdlib(uv pip install pycdlib):
- 不能装 mkisofs/xorriso/genisoimage(apt 要 root),
uv venv .isovenv && uv pip install pycdlib是出路 pycdlib.PyCdlib().new()参数名是interchange_level/joliet/udf不是udf=True这种(True 不被接受),UDF 要写'2.60'add_file时iso_path/joliet_path/udf_path必须是 绝对路径(/A/B/C),但rr_name必须是 相对路径(A/B/C)- 默认
interchange_level=1强制 8.3 短文件名 + 仅 A-Z 0-9 _ —— 改interchange_level=2允许长文件名 - 文件名不能含
-(连字符),否则 ISO 基础记录直接被 ISO9660 拒绝。DLL/EXE 里常见的veracrypt-portable.exe一定要改名成VeraCrypt.exe,中文名一律改README.TXT - SHA256 校验:本端算完 SHA256,scp 上传目标机器后再
Get-FileHash比对,确认一致。比对成功才能 MPTool 量产 —— 中途断流 IM 整个 ISO 都是损坏的
🌐 端到端构建 + 传输链路(Hermes → Windows)
爸爸那台机器走 SSH:
- 在 Hermes 容器内打 ISO(
python build_iso.py) - 上传:
scp.put('mylightu.iso', 'D:/mylightu_new.iso')(scp python 包默认没装,需uv pip install scp) - 远端验证:
Get-FileHash D:\mylightu_new.iso -Algorithm SHA256 - 给爸爸拍个截图,让他用 MPTool 重新量产
几件别省的事:
- 完成前不上传 → 上传后不上 SHA256 → SHA256 对不上不重传 → 三步全做了再让爸爸跑 MPTool,不然 ISO 是坏的永远烧不出来
🪟 验证 BitLocker 是否生效的 4 个 PowerShell 命令
走分支 A 完成加密后必跑:
# 1. 看所有加密卷
Get-BitLockerVolume | Format-List MountPoint,VolumeStatus,EncryptionMethod,ProtectionStatus
# 2. 看指定卷详细状态
manage-bde -status I:
# 3. 试解锁 (输密码)
manage-bde -unlock I: -Password 951109
# 4. 列文件(解锁成功才能列出来)
dir I:\如果步骤 1 已显示 EncryptionMethod: XtsAes128 + Percentage Encrypted: 100.0% → 已启用。FullyDecrypted → 没启。
四、参考资源
templates/unlock-ps1-vera/— VeraCrypt 全套(适用于 Win Home):unlock.ps1 / start.bat / VeraCrypt.exe / README.txt / AUTORUN.INF,直接 copy 即用templates/unlock-ps1-bitlocker/— BitLocker 路线(待补,建议基于 vera 模板改 manage-bde 调用即可)templates/mylightu-iso-raw-layout.txt— ISO 物料清单(放 VeraCrypt 时 5 个文件;纯 unlock 时 4 个)scripts/build_iso.py— pycdlib 打包 ISO 的脚本(实测能跑,含坑位说明)references/veracrypt-cli.md—VeraCrypt.exe /v /p /l /q命令行格式 + 静默安装参数references/fc1178bc-mptool-config.md— MPTool 各 LUN 字段截图与按钮说明references/bitlocker-commands.md— manage-bde 常用命令清单(解锁/锁定/状态/恢复密钥替换)
五、什么时候该想这件事
- 内外网隔离做数据摆渡 + 防泄漏(涉密 / 政企 / 麒麟统信 UOS)
- 想 离开密码就完全打不开 U 盘(敏感文件携带)
- 给老人/客户做"插上就开、拔了就锁"的简易加密 U 盘
不是这种情况:
- 普通装系统启动盘 → Rufus 写 ISO,30 秒,别量产
- 普通 U 盘临时加密 → BitLocker To Go,5 分钟搞定
判断分支:用户说"做个加密 U 盘"但没说"光U" → 先问一句:"是 BitLocker To Go(普通 U 盘 + Windows 内启用 BitLocker),还是 光U(量产成 CD-ROM + BitLocker 双分区 + 自动解锁 ISO)?" 前者 5 分钟搞定,后者要 1 小时。在内外网保密 / 电网 GA 场景下,"光U 的物理只读 + 防拆"通常是默认要求,不该跳过。