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シェルに入る
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