Fleur De Lys
Shell

Fleur De Lys

"如果你想从头开始制作苹果派,首先得创造宇宙。" —— 卡尔·萨根

磁盘布局

该镜像使用 GPT 分区表:

分区 大小 文件系统 标签
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

前提条件

需要一台具备以下工具的 Linux 主机:

  • losetupmountchroot(util-linux)
  • F2FS 和 bcachefs 文件系统支持(f2fs-toolsbcachefs-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