m2Giles' OS
这些是我根据需求定制的 universal blue 镜像版本。所有内容都是基于 m2os 的标签。
Bazzite 是 gnome 版本。Bazzite Desktop 版本包含 nvidia 驱动程序。ISO 是为 aurora/bazzite/bluefin/cosmic 构建的,并且是构建产物。
请注意,这也是我在对 Universal Blue 进行更改之前进行实验的地方。
偶尔,我会在 Fedora 主要版本发布期间构建 beta 版本。
标签
桌面镜像
这些镜像旨在用于桌面环境。它们都基于 Bluefin 的 stable-daily。
Aurora 从 Aurora 构建,Bluefin 从 Bluefin 构建,Cosmic 从 base-main 构建。
所有镜像都支持 zfs。Nvidia 镜像还包含 nvidia。
这些镜像额外添加了以下内容:Docker、Incus 和 Steam,以及不同的编辑器。一种合理的理解方式是,将这些镜像视为没有 virt-manager 但包含 steam/lutris 的 -dx 镜像。
- aurora
- aurora-nvidia
- bluefin
- bluefin-nvidia
- cosmic
- cosmic-nvidia
Bazzite 镜像
这些镜像基于 Bazzite 的 Gnome 镜像。bazzite 基于 gnome-nvidia,bazzite-deck 基于 gnome deck 镜像。
这些镜像包含多个类似 -dx 的项目,例如多个编辑器、docker 和 incus。
- bazzite
- bazzite-deck
Ucore 镜像
这些镜像基于 ucore:zfs 镜像。它们主要只是从 Docker 添加 Docker,而不是使用 moby-engine 和 incus。
- ucore
- ucore-nvidia
如何安装
桌面/Bazzite 镜像
桌面版和 Bazzite 镜像的 ISO 通过一个 action 构建,并作为 artifact 上传。这些 artifact 在发布中提供下载链接。它们以 zip 格式压缩。ISO 使用 Kinoite 版本,这意味着你需要在 Anaconda 中创建一个用户。每个发布都包含一个带有 ISO 链接的变更日志。
最新 ISO: https://github.com/m2giles/m2os/releases/latest
请注意,artifact 在 90 天后会被删除,但 ISO 每周都会更新。
Ucore
使用 coreos 安装程序,并在 ignition 文件中切换到以下镜像之一。
Rebasing
你可以使用以下方法将系统 rebase 到 m2os 镜像:
TAG=bluefin
sudo bootc switch --enforce-container-sigpolicy "ghcr.io/m2giles/m2os:$TAG"
将 TAG 替换为指定的镜像。这也是切换到 Ucore 的方法。
验证
镜像验证
本仓库中的所有镜像均使用 sigstore 的 cosign 进行签名。您可以通过运行以下命令来验证签名
TAG=bluefin
cosign verify --key "https://raw.githubusercontent.com/m2Giles/m2os/refs/heads/main/cosign.pub" "ghcr.io/m2giles/m2os:$TAG"
再次将 TAG 替换为指定的镜像
SBOM 验证
每个 Release 都会使用 anchore 的 syft 生成一个 SBOM。这些 SBOM 也会使用 sigstore 的 cosign 进行签名。每个 release tag 都会将 SBOM 作为工件(artificat)连同签名文件一起附加。您可以通过运行以下命令来验证 SBOM。
TAG=bluefin
cosign verify-blob --key "https://raw.githubusercontent.com/m2Giles/m2os/refs/heads/main/cosign.pub" --signature "$TAG.sbom.json.sig" "$TAG.sbom.json"
再次将 TAG 替换为指定的镜像。
DIY
本仓库基于 Universal Blue Image Template 构建,并进行了大量添加。
可以使用提供的 Justfile 和 just 在本地构建所有镜像和 ISO。例如,要构建 m2os:bluefin,只需执行:
just build bluefin