Skip to content

v2.0.0 — Persistent RootFS Release

Choose a tag to compare

@NguyenTrongPhuc552003 NguyenTrongPhuc552003 released this 20 Dec 06:51
· 475 commits to main since this release
d9442e5

Milestone Release: Full Transition to EXT4 Disk-Based Root Filesystem

This release marks the completion of the long-awaited persistent storage mode, retiring the initramfs-based workflow in favor of a real EXT4 disk image (disk.img). Users now experience dramatically faster subsequent boots, true filesystem persistence, and a clean, automated Debian root setup — all while preserving the native macOS build experience.

Tested extensively on macOS Sequoia and Tahoe with RISC-V (rv64) and ARM64 targets, booting modern v6.* kernels into a fully functional Debian environment.

Key Milestones in this Release

  • Feature: Persistent EXT4 Disk Image Boot

    • Complete replacement of initramfs.cpio with a persistent disk.img (ext4) mounted as /dev/vda.
    • Direct population of the disk image using mke2fs -d — no loop devices or fuse mounts required on macOS.
    • Stored safely within the case-sensitive APFS sparseimage volume (/Volumes/kernel-dev).
  • Feature: Fully Automated Root Filesystem Setup

    • scripts/rootfs.sh now handles debootstrap stage 1 (foreign mode) on the host.
    • Smart /init script automatically executes second-stage only on first boot (using /.rootfs-setup-complete marker).
    • Subsequent boots skip unpacking entirely → near-instant shell access.
  • Feature: Updated QEMU Integration

    • scripts/qemu.sh refactored for disk-based boot with correct virtio-blk configuration.
    • Unified console, networking (SSH forwarding :2222→:22), and virtio-gpu support across architectures.
  • Refactor & Cleanup

    • Removed all legacy initramfs generation and variables.
    • Clean separation of concerns in rootfs.sh, qemu.sh, and common.env.

Quick Start (Build & Boot RISC-V)

  1. ./run.sh doctor
  2. ./run.sh branch v6.18
  3. ./run.sh patch patches/v6.18/0001-*.patch
  4. ./run.sh arch riscv
  5. ./run.sh config
  6. ./run.sh build
  7. ./run.sh rootfs
  8. ./run.sh qemu

Architectures Supported: RISC-V (rv64), ARM64 (aarch64), ARM (32-bit virt).
Tested Kernels: v6.18 (with provided macOS compatibility patches).