"如果你想从头开始制作苹果派,首先得创造宇宙。" —— 卡尔·萨根
磁盘布局
该镜像使用 GPT 分区表:
| 分区 | 大小 | 文件系统 | 标签 |
|---|---|---|---|
| p1 | 10G | F2FS | Fleur_de_Lys_Root |
| p2 | 20G | bcachefs | Fleur_de_Lys_Sources |
| p3 | 10G | bcachefs | Fleur_de_Lys_Home |
前提条件
需要一台具备以下工具的 Linux 主机:
losetup、mount、chroot(util-linux)- F2FS 和 bcachefs 文件系统支持(
f2fs-tools、bcachefs-tools) - 标准开发工具链(gcc、g++、make、binutils 等)
运行 bash tests/version-check.sh 以验证主机是否具备所需工具。
使用方法
所有命令都需要 root 权限。
sudo make mount # 挂载镜像并将分区挂载到 mnt_image/
sudo make run # 挂载 + 绑定虚拟文件系统 + 进入 chroot shell
sudo make umount # 卸载所有内容并分离循环设备
从头构建镜像
要创建一个新的空白磁盘镜像(20 GB),包含分区表和已格式化的文件系统:
sudo bash scripts/build_os.sh
项目结构
Fleur_de_Lys.img # 磁盘镜像
mnt_image/ # 挂载点(由 make mount 创建)
Makefile # 挂载、运行和卸载目标
docker/ # 多阶段 Docker 构建环境
Dockerfile # 阶段 1 和阶段 2 构建层
engine/ # 构建脚本(fleur-build.sh 等)
recipes/ # 按阶段划分的软件构建说明
etc/
os-release # 发行版标识
scripts/
build_os.sh # 创建并分区新的磁盘镜像
build_img.sh # 镜像创建辅助脚本
mount.sh # 旧版挂载脚本
tests/
version-check.sh # 验证主机工具链要求
Docker 工具链环境
工具链和中间系统工具通过多阶段 Docker 构建来构建:
- 阶段 1(toolchain-builder): 引导编译器(gcc/clang)、binutils 和 glibc。
- 阶段 2(temp-tools-builder): 将所有交叉编译的实用工具(bash、coreutils、python、meson、ninja 等)构建到
/tools目录中。
要构建工具链环境:
cd docker
make build
