Fleur De Lys
Shell

Fleur De Lys

"Als je een appeltaart helemaal zelf wilt maken, moet je eerst het universum uitvinden." -- Carl Sagan

Schijfindeling

De image gebruikt een GPT-partitietabel:

Partitie Grootte Bestandssysteem Label
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

Vereisten

Een Linux-host met de volgende beschikbare onderdelen:

  • losetup, mount, chroot (util-linux)
  • F2FS- en bcachefs-bestandssysteemondersteuning (f2fs-tools, bcachefs-tools)
  • Standaard ontwikkelingsgereedschapsketen (gcc, g++, make, binutils, etc.)

Voer bash tests/version-check.sh uit om te controleren of uw host over de vereiste hulpmiddelen beschikt.

Gebruik

Alle opdrachten vereisen root-rechten.

sudo make mount       # Koppel de image en mount partities in mnt_image/
sudo make run         # Mount + bind virtuele bestandssystemen + open chroot-shell
sudo make umount      # Ontkoppel alles en koppel het loop-apparaat los

De Image vanaf de Basis Bouwen

Om een nieuwe lege schijfimage (20 GB) te maken met de partitietabel en geformatteerde bestandssystemen:

sudo bash scripts/build_os.sh

Projectstructuur

Fleur_de_Lys.img      # De schijfimage
mnt_image/            # Mountpunt (aangemaakt door make mount)
Makefile              # Mount-, run- en unmount-doelen
docker/               # Multi-stage Docker-bouwomgeving
  Dockerfile          # Stage 1 & 2 bouwlagen
  engine/             # Bouwscripts (fleur-build.sh, etc.)
  recipes/            # Software-bouwinstructies per fase
etc/
  os-release          # Distributie-identiteit
scripts/
  build_os.sh         # Maak en partitioneer een nieuwe schijfimage
  build_img.sh        # Hulpprogramma voor image-creatie
  mount.sh            # Verouderd mount-script
tests/
  version-check.sh    # Controleer vereisten van host-gereedschapsketen

Docker-Gereedschapsketenomgeving

De gereedschapsketen en tussenliggende systeemhulpmiddelen worden gebouwd met behulp van een multi-stage Docker-build:

  • Stage 1 (toolchain-builder): Bootstrap de compiler (gcc/clang), binutils en glibc.
  • Stage 2 (temp-tools-builder): Bouwt alle cross-gecompileerde hulpprogramma's (bash, coreutils, python, meson, ninja, etc.) naar /tools.

Om de gereedschapsketenomgeving te bouwen:

cd docker
make build