"Якщо ви хочете зробити яблучний пиріг з нуля, спочатку винайдіть всесвіт." -- Карл Саган
Розмітка диска
| Розділ | Розмір | Файлова система | Мітка |
|---|---|---|---|
| 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 # Attach the image and mount partitions into mnt_image/
sudo make run # Mount + bind virtual filesystems + enter chroot shell
sudo make umount # Unmount everything and detach the loop device
Створення образу з нуля
Щоб створити новий порожній образ диска (20 ГБ) з таблицею розділів і форматованими файловими системами:
sudo bash scripts/build_os.sh
Структура проекту
Fleur_de_Lys.img # The disk image
mnt_image/ # Mount point (created by make mount)
Makefile # Mount, run, and unmount targets
docker/ # Multi-stage Docker build environment
Dockerfile # Stage 1 & 2 build layers
engine/ # Build scripts (fleur-build.sh, etc.)
recipes/ # Software build instructions by stage
etc/
os-release # Distribution identity
scripts/
build_os.sh # Create and partition a new disk image
build_img.sh # Image creation helper
mount.sh # Legacy mount script
tests/
version-check.sh # Verify host toolchain requirements
Середовище Docker Toolchain
Набір інструментів та проміжні системні інструменти створюються за допомогою багатоступеневого Docker-білду:
- Stage 1 (toolchain-builder): Ініціалізує компілятор (gcc/clang), binutils та glibc.
- Stage 2 (temp-tools-builder): Створює всі крос-компільовані утиліти (bash, coreutils, python, meson, ninja, тощо) у
/tools.
Щоб побудувати середовище інструментів:
cd docker
make build
