用NOOBS安装Umbrel OSos.json、partitions.json与partition_setup.sh完整解析【免费下载链接】umbrel-osumbrelOS development has moved to https://github.com/getumbrel/umbrel项目地址: https://gitcode.com/gh_mirrors/um/umbrel-osUmbrel OS 是一款基于 Linux 的自托管私有云系统常运行在 Raspberry Pi 树莓派上。对于树莓派用户最省事的上机方式不是逐分区写镜像而是借助NOOBS安装器。这篇指南带你完整解析export-noobs目录下的三大核心文件——os.json、partitions.json 与 partition_setup.sh——看懂它们如何描述系统、划定分区、绑定磁盘让 Umbrel OS 在 NOOBS 中被正确安装。什么是 NOOBSUmbrel OS 的省心安装方式NOOBSNew Out Of the Box Software是树莓派经典的轻量安装器SD 卡上只保留一个引导分区各系统以压缩包形式存放首次开机时才解压写入对应分区。这带来两个好处一张 SD 卡可容纳多个系统随时切换系统分区大小可在安装时动态决定如最大化利用整卡空间而不是被固定镜像尺寸锁死。本项目中export-noobs目录就是把 Umbrel OS 打包成 NOOBS 可安装格式的流水线最终产物包括两个压缩包boot / root、一份系统描述文件、一份分区清单和一个安装钩子脚本。NOOBS 包是怎么拼出来的从镜像到 tarball打包流程由两个脚本协作完成export-noobs/prerun.sh先用parted读取前序阶段产出的完整镜像通过losetup把 boot 与 root 分区抠出来再分别压缩成boot.tar.xz和root.tar.xz——这就是 NOOBS 真正要解压安装的内容。export-noobs/00-release/00-run.sh把partition_setup.sh、partitions.json、os.json、图标OS.png和 release_notes.txt 安装进 NOOBS 目录并用sed计算并回填占位符BOOT_SHASUM、ROOT_SIZE、BOOT_NOM等同时打包开机幻灯片marketing.tar。其中两个尺寸约定值得注意boot 分区固定为256MBroot 分区标称值 压缩包解压大小 400MB 余量。os.json 逐字段解析NOOBS 如何认识Umbrel OSos.json 是 NOOBS 安装界面的数据源——你在选择系统时看到的名称、说明、版本、支持机型全部来自它字段作用name/description安装界面显示的系统名称与简介构建时由NOOBS_NAME、NOOBS_DESCRIPTION占位符回填version显示的系统版本本模板为 Debianbusterfeature_level功能位图声明该系统支持 NOOBS 的哪些能力备份恢复、配置继承等supported_models可安装机型白名单Pi Zero、Pi 3、Pi 4 等不匹配则拒绝安装supported_hex_revisions更细粒度的硬件 revision 校验kernel标注所用内核大版本4.19供 NOOBS 选择引导组件url系统主页安装界面了解更多跳转用partitions.jsonboot 用 FAT32root 用 ext4 的两分区布局partitions.json 告诉 NOOBS 需要创建哪些分区、多大、什么文件系统分区标签文件系统大小关键选项1bootFAT32256MBBOOT_NOM-F 32不最大化2rootext4解压大小400MBROOT_NOM-O ^huge_filewant_maximised: true两个设计细节want_maximised: true是 root 分区的灵魂开关——NOOBS 安装时会把 root 分区撑满剩余整卡空间这就是NOOBS 比写镜像更省 SD 卡的原因sha256sum由构建脚本计算回填安装时校验压缩包完整性损坏的 SD 卡能提前被拦下。partition_setup.sh首次开机自动绑盘分区建好后还有一个难题NOOBS 每次重新安装都可能把系统写到不同的物理位置而 Umbrel OS 里的cmdline.txt和/etc/fstab必须指向真实分区。这正是 partition_setup.sh 的职责脚本开头#supports_backup in PINN表明它同时兼容 PINN 的备份/恢复挂载新分区NOOBS 以环境变量part1boot、part2root告知新位置脚本挂载到/tmp/1、/tmp/2重绑引导参数把cmdline.txt中的root...替换为新 root 分区重写 fstab将根分区与/boot挂载点指向part2/part1继承 NOOBS 卡上的配置若 NOOBS 分区存在ssh或ssh.txt文件则拷入 boot 分区开机即启用 SSH存在wpa_supplicant.conf则一并复制开机即连 WiFi处理自动扩容根据内核命令行是否带resize修正init_resize.sh与quiet参数保证首次开机后磁盘扩容正常触发。做完这些再卸载分区Umbrel OS 就能在任意分区布局下顺利启动。实操用 NOOBS 安装 Umbrel OS 最快路径将 NOOBS 引导镜像写入 SD 卡再把 Umbrel OS 的 NOOBS 包两个.tar.xz 三个配置文件拷入 NOOBS 分区开机后在 NOOBS 界面选择 Umbrel OS选择安装root 分区会自动占满剩余空间若希望无显示器部署headless提前在 NOOBS 分区放一个空文件ssh启用远程登录放好wpa_supplicant.conf配好 WiFi重启后直接通过 SSH 进入 Umbrel 面板 即可。小结文件一句话定位os.json系统名片名称、版本、支持机型驱动安装界面partitions.json施工图纸FAT32 boot 可最大化 ext4 root含 SHA256 校验partition_setup.sh验收员首次开机重绑 cmdline/fstab继承 SSH 与 WiFi 配置三件套配合让 Umbrel OS 既享受 NOOBS 的灵活分区与多系统能力又能在任意硬件上正确、安全地落地。想深入了解整套构建流程可继续浏览本仓库的stage0/stage1/stage2各阶段脚本与 config 全局配置。【免费下载链接】umbrel-osumbrelOS development has moved to https://github.com/getumbrel/umbrel项目地址: https://gitcode.com/gh_mirrors/um/umbrel-os创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考