"처음부터 사과 파이를 만들고 싶다면, 먼저 우주를 발명하라." -- 칼 세이건
디스크 레이아웃
이미지는 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를 실행하여 호스트에 필요한 도구가 있는지 확인하세요.
사용법
모든 명령어는 루트 권한이 필요합니다.
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
