os-pilot-ai:一张 46MB 的 ISO,让 AI 帮你装系统
把一张 46MB 的 mini-ISO 放进 Ventoy U 盘,从菜单启动,屏幕上就是一个能对话的 AI 助手:
- 探查硬件、分区、生成自动安装模板、调度重启自动安装系统,
- Ventoy 按它写好的配置完成无人值守安装。
- 零 Ventoy 代码改动,Apache-2.0 开源。
▲ 真机实拍:单窗口两个模式(Tab 切换),内置拼音输入法(Ctrl+Space),不需要硬盘上先装好任何系统
装系统这件事,为什么还要靠人背命令?
给一台机器装 Linux,流程其实高度固定:
- 看清有几块盘、要装到哪块;
- 分区(ESP + root,偶尔还要 home、数据盘);
- 写好自动安装配置(Ubuntu 的 autoinstall / RHEL 的 kickstart);
- 引导进安装器,把上面这些在图形界面里再点一遍;
- 装完还要确认引导器、initrd 都落对了位置。
每一步都不难,但每次都要做,而且“手滑”的代价不小:选错盘、格式错分区、引导器装错地方。
大模型其实早就能干这些了——前提是它得有一个能跑起来的环境:进不了系统、上不了网、屏幕还是内核控制台的“裸机”上,什么助手都跑不起来。
所以我们的做法是:把 AI 的运行环境做成一张自足的 ISO。
它是什么:给 U 盘加一个“会装机”的对话入口
os-pilot-ai是一张约 46MB 的 mini-ISO。把它放到任何已经装好 Ventoy 的 U 盘数据分区根目录,重启后菜单里就会出现0-OS-PILOT-AI.iso(0-前缀让它排在最前面),选中启动,就是一个 AI 装机助手。
它没有依赖硬盘上的任何系统,这张 ISO 里自带全部家当:
| 组成 | 说明 |
|---|---|
| initramfs | busybox + PID 1 启动脚本:挂载数据分区 → 加载驱动模块 → DHCP → 起 agent |
| 内核 | Ubuntu 26.04 LTS 发行版内核(7.0.0-34-generic),按清单裁剪出存储、文件系统、有线网卡、输入、显示共 59 个模块(依赖闭包) |
| agent | 静态编译的 Go 程序(无 cgo、仅标准库),对话与工具调用都是它 |
| 磁盘工具链 | 随包静态编译的 e2fsprogs 1.47 / parted 3.6 / rsync 3.2.7,免 root 构建 |
| 中文屏 | GNU Unifont 点阵字库 + 用户态自绘屏幕 + 内置拼音输入法(libgooglepinyin) |
启动后,你面对的是一个终端风格的界面:Tab 键在「AI 模式 / 命令模式」之间切换,Ctrl+Space 切中英文输入。用中文把需求说清楚就行,比如“把这块 500G 的盘全部分给 root,装 Ubuntu 24.04,用户名 ubuntu”——剩下的交给它。
对话背后:11 个工具
模型不只是在聊天,它能通过 11 个工具真正在机器上干活:
| 工具 | 作用 |
|---|---|
system_probe | 探查 CPU、内存、磁盘、网络等硬件信息 |
list_disks | 枚举块设备,标出受保护设备(正在使用的盘不许动) |
partition/format | 分区 / 格式化(parted + mke2fs,支持 ext2/3/4 与 vfat) |
backup | 用 rsync 备份、搬运数据 |
gen_autoinstall | 生成 Ubuntu autoinstall 自动安装模板(按磁盘序列号选盘,不依赖 /dev/sdX 这种会漂移的名字) |
schedule_boot | 改写 Ventoy 的ventoy.json:把默认启动项指向目标系统镜像、倒计时 10 秒,带上自动安装配置 |
fs_read/fs_write | 读写数据分区上的文件(覆盖前自动留.bak) |
run_command | 在环境里执行本机命令 |
ask_user | 需要拍板的问题当面问你 |
所以完整流程是这样闭环的:你说话 → 它分区、写配置、调度重启 → 你再开机时 Ventoy 直接执行无人值守安装。中途每一步的会话记录都会落盘(/ventoy/ai/logs/session-*.jsonl+ Markdown 版),事后可以逐条审计它做了什么。
几个“不将就”的细节
① 零 Ventoy 代码改动
它就是一个普通的镜像文件,靠 Ventoy 自带的链式加载机制启动(/ventoy.dat标记)。不需要改 Ventoy 一行代码,也不需要特殊版本。
② 内核控制台没有中文字形,那就自己画
fbcon 里跑控制台程序,中文全是方块。agent 检测到显示器和本地控制台可用时,会接管屏幕自绘:直接 mmap 帧缓冲、点阵字体渲染中文,终端仿真、行编辑、历史、Tab 补全全部自己实现。真机 UEFI(GOP 帧缓冲)直接可用;没有帧缓冲的机器自动回退文本控制台。
③ 内置拼音输入法
自绘屏路径下,Ctrl+Space调出拼音输入(本地词典 + 用户词,libgooglepinyin)。否则 UEFI 环境下你没法给 AI 打中文。串口模式则由宿主机的输入法直接送 UTF-8 字节。
④ 写操作必须过闸门
三种安全模式:readonly只读 /orchestrate(默认)/direct直通。默认模式下每个写操作都先给你看diff 预览,确认才执行;重启这种危险动作要手输REBOOT才能继续。磁盘工具还有三层防护:受保护设备拒写、参数白名单、结构化结果返回。
⑤ 模型随你接
配置就是数据分区上的一个ai.json,任何OpenAI 兼容端点都能用:本地 llama.cpp / Ollama 跑的模型(数据不出门),或者云端 API。必填的就两项:
{"base_url":"http://192.168.1.10:8080/v1","model":"your-model-name","mode":"orchestrate"}三步上手
USB=/media/$USER/Ventoy# Ventoy 数据分区挂载点,按本机改mkdir-p$USB/ventoy# ① 配置目录要自己建cpai.json$USB/ventoy/ai.json# ② 放入模型配置(模板见仓库 config/ai.json.example)cp0-OS-PILOT-AI.iso$USB/# ③ 入口 ISO 放数据分区根目录重启,从 Ventoy 菜单选0-OS-PILOT-AI.iso,开始对话。
前提:Ventoy 装好的 U 盘(实测于 Ventoy 1.1.05)、有线网 + DHCP、一个 OpenAI 兼容的模型端点。注意/ventoy目录要自己建——Ventoy 安装器只把数据分区格式化成空盘,不会创建任何目录。
验证到什么程度
这个东西不是演示视频里的玩具,我们在这些场景里实际跑过:
- QEMU + 真机 U 盘全链路:启动 → 挂载数据分区 → DHCP → 多轮问答与工具调用 → 改写
ventoy.json→ 日志落盘 → 关机; - 真机重装闭环:AI 给一块 25 GiB 靶盘分区格式化(ESP + root),Ubuntu 22.04.4 装完,静态判据全绿,QEMU 引导进
gdm3桌面——修前“grub-install 报 unknown filesystem / 装完没有 initrd”两个失败模式都不再复现; - 自动化回归:内置工具链 16 项、受守卫磁盘工具 30 项、自绘屏交互 34 项、建房-读盘-引导闭环 17 项(修前/修后对照);
- 真实模型:Qwen 系列端点真机跑通。
已知限制也一并交代:
- 目前仅在x86_64上验证(QEMU + 真机 U 盘),ARM64 未测;
- 要有线网,暂无 WiFi 驱动;
- 磁盘工具只写ext2/3/4 与 vfat(未内置 exFAT/NTFS 工具);
- 自动化回归多用 mock LLM,其它厂商端点的 function calling 兼容性未逐一验证;
- “把入口内置进 Ventoy 构建流程”(T3 菜单项)还没接。
开源 & 下载
- 仓库:github.com/turingevo/os-pilot-ai(Apache-2.0,欢迎 issue / PR / star)
- 首发 Releasev0.1.0:下载
0-OS-PILOT-AI.iso - 校验:
sha256 = a98472e3a83fb96701296545c4803a311898bfdafc23b3090f3b936ab4af75ab(46.4 MiB) - 文档:部署步骤见 docs/部署.md,构建链全部在仓库里、免 root 可自行重打 ISO
装系统是那种“会者不难、但总得有人做”的活。我们想把它变成一句话的事:你说要装什么,剩下的交给 AI。
如果觉得有意思,去 GitHub 点个 star,或者直接下载 ISO 在你自己的 U 盘上试试——欢迎在 issue 里告诉我们它在你机器上的表现。