资讯 · 改写稿

把 7 个模型塞进一个 U 盘:我踩到的系统坑清单

这个想法一句话就能说清:把 U 盘插进任意一台电脑,双击一个文件,一个真正的语言模型就在那台机器上跑起来——不用账号、不用联网、不用安装,拔下来什么也不留下。真正花时间的是让它在每个系统上都成立。下面每一条都发生在真实硬件上。

坑 1:服务器「成功退出」却什么都没做

在 Windows 上,llama-server.exe 启动后不打印任何东西、不开窗口,直接以退出码 0 结束。退出码 0 意味着成功,于是看起来像文件损坏。真实原因是缺三个微软运行时 DLL:MSVCP140.dll、VCRUNTIME140.dll、VCRUNTIME140_1.dll。装过游戏或 Visual Studio 的机器都有,干净机器没有,加载器在程序能报错之前就失败了。修法是把这三个 DLL 放在 .exe 旁边一起带;作者还在测试虚拟机里卸载运行时验证过它确实生效。

坑 2:Windows 上引擎起不了子进程

llamafile 的好处是一个文件跨 macOS、Linux、Windows 跑。但在 Windows 上,它自己的文件工具正常,模型想执行的每一条 shell 命令都返回 exit -1,而同样的命令手敲却正常。原因是 Windows 没有 fork(),llamafile 的可移植层在模拟它,而起子进程正好是模拟会断的地方。于是 U 盘上额外带了一个 Windows 专用引擎。

坑 3:Linux 没有「双击」

macOS 双击 .command、Windows 双击 .bat,Linux 从来没有对应的 .sh 双击方式。在 Ubuntu 26.04 上,GNOME 的文件管理器不会从标准应用目录之外启动 .desktop 或可执行脚本,没有开关、没有「允许启动」、没有信任标记能改回来。U 盘这一侧没有修法,只能给一行终端命令或一次性安装器绕过去。

坑 4:FAT32 只让一个文件可执行

Linux 挂载 FAT32 时,只把 .exe、.com、.bat 结尾的文件标为可执行。结果 FAT32 格式的盘上,只有 Windows 的启动脚本能跑,Linux 启动器报「权限不足」。换成 exFAT 就没这个问题,还顺带解除 FAT32 单文件 4 GB 的上限——模型文件变大之后这一点很关键。

容易踩的坑

把「退出码 0」当成一切正常:Windows 上可能是缺 DLL 的静默失败。

以为一个引擎能跨三个系统:Windows 上起子进程需要专用引擎。

在 Linux 上等双击生效:GNOME 默认不会从 U 盘启动脚本。

用 FAT32 装模型:只有 Windows 启动器可执行,还受 4 GB 限制。

自检清单

插上 U 盘就能跑模型,难的不是模型本身,而是每个系统拒绝从 U 盘启动程序的方式。

常见问题

为什么 Windows 上模型引擎启动后立刻退出?

常见原因是缺 MSVCP140.dll、VCRUNTIME140.dll、VCRUNTIME140_1.dll 三个运行时库,加载器在报错前就失败,表现为退出码 0。把它们放在 .exe 旁边即可。

为什么在 Linux 上双击启动不了?

Linux 没有双击脚本的惯例,且 GNOME 不会从标准应用目录之外启动 .desktop 或脚本。需要一行终端命令或一次性安装器。

U 盘该用什么文件系统?

用 exFAT。FAT32 只会把 .exe/.com/.bat 标为可执行,Linux 启动器会报权限不足,而且单文件上限 4 GB。

需要联网或账号吗?

目标就是不联网、不要账号、拔盘不留痕迹。模型与引擎都放在 U 盘上,双击即可运行。

来源参考

以上为外部来源;本文为 RefHub 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。

下一步:想看本地模型和订阅怎么取舍,读 本地模型能顶掉订阅吗;想省钱也可以看 省写码额度的 5 个办法。