frood,一个 Alpine initramfs 网络附加存储(NAS)

主要观点:作者介绍了自己的 NAS frood 的独特设置,即一个包含整个 Alpine Linux 系统的大 initramfs,阐述了选择这种方式的原因(避免系统存储设备磨损、便于在 git 中跟踪系统状态等),详细说明了其工作原理,包括构建 initramfs、安装的包、设置脚本、根骨架、qemu 测试、引导加载程序以及一个简单的状态服务等,并提到整个设置是开源的,其维护工作由一些客户资助,还分享了一些关于 Porto Moniz 自然泳池的照片和相关信息。

关键信息:

  • NAS [frood] 是一个包含整个 Alpine Linux 系统的大 initramfs,启动时 Linux 期望一个“initramfs”图像,通常其工作是加载模块以挂载真正的根文件系统,而 [frood] 则将整个系统放入其中。
  • Alpine 的“diskless mode”存在复杂性和依赖包管理器等问题,作者更倾向于将系统状态跟踪在 git 中。
  • 构建 initramfs 的起始点是 alpine-make-rootfs,它会复制文件、安装包并运行设置脚本。
  • 安装的包包括 alpine-base、linux-lts、linux-firmware-i915、intel-ucode、syslinux、openrc-init、agetty 等。
  • 设置脚本主要用于链接 /init、设置运行级别和设置 root 密码等。
  • 根骨架用于放置系统特定的文件,如使电源按钮工作的文件、网络配置文件等。
  • 可以在 qemu 中测试 [frood] 的设置,包括持久性设备。
  • 引导加载程序使用 extlinux 安装和更新,有三个启动条目。
  • 作者还创建了一个简单的 Go 服务器作为状态服务。

重要细节:

  • [frood] 的整个设置是开源的,位于 FiloSottile/mostly-harmless/tree/main/frood
  • 关于如何注入秘密尚未解决,目前是.gitignore 的。
  • 作者的维护工作由 Geomys 客户资助,如 Interchain、Smallstep、Ava Labs、Teleport、SandboxAQ、Charm、Tailscale 和 Sentry 等。
  • 分享了 Porto Moniz 自然泳池的照片,并说明自己不是被马德拉旅游部付费。
阅读 10
0 条评论