Forest OS

A free and open source operating system, written from scratch. A Bluethefox project, hosted by Enclica.

Download

The releases are published to github under the links below, we do not track where you download or how.

Latest release   All releases

Releases

Version Date File Notes
No tagged release yet — build from source using the steps below.

Which image do I need?

Every release ships the same system in two formats. Pick based on how you want to boot:

ImageUse forHow to writeLive, persistent, or installer?
.iso (live / CD)
forestos-bios-32bit.iso
Trying Forest OS without touching your disk; CD / DVD boot; USB boot via image writer. USB: dd, Rufus / balenaEtcher.
CD/DVD: burn as image, not as data file.
Live — amnesic by default. Reboot wipes changes unless you set up persistence on the USB stick.
.img (raw USB, bootable)
forestos-bios-32bit.img, forestos-uefi-64bit.img
USB sticks, real hardware, and QEMU (-drive format=raw). Already contains bootloader stages + kernel. Raw block copy only: dd on Linux/macOS, Rufus (DD mode) or balenaEtcher on Windows. Do not copy the file onto a FAT32 stick. Live + installable disk. Boots live; can be installed to internal disk from the live session. Add a persistent overlay to keep files across reboots.
Installer There is no separate installer image yet — the live ISO / IMG is the installer. Boot it, then install from the live session when an installer is documented in the release notes. Same as above. If a release notes page says “installer”, it means “boot the live image and run the installer from inside it”.

Persistent overlay note. ISO (live/CD) sessions are amnesic: everything in RAM disappears on reboot. To keep files on a USB stick, use the raw .img and leave unpartitioned space after it (or add a second partition labelled FOREST-DATA / an overlay file once the release documents one). Do not fill the whole stick — the image must be block-copied first, then the leftover space becomes persistence. If your release has no overlay support yet, treat every boot as a fresh live session and copy work off before rebooting.

Build it yourself

This is the recommended route while the project is young, and it always gives you the current state of the tree.

git clone https://github.com/Enclica-Forest/Forest.git
cd Forest
export FOREST="$(git rev-parse --show-toplevel)"

Then let the build tool do the rest — it installs missing host packages, builds the cross-toolchain, compiles userspace, assembles the initrd and produces bootable images:

./createos.sh            # menu-driven
./createos.sh --quick    # 32-bit BIOS, defaults, no questions

Building the toolchain is the slow part, and it only happens once.

If you'd rather drive the build yourself, the Docs page has the step-by-step sequence, and MAKE_AN_OS.md covers every option.

What a build produces

FileWhat it's for
forestos-bios-32bit.imgRaw BIOS disk image (USB dd, bootable) — write to a USB stick with dd / Rufus (DD mode) / balenaEtcher, or boot in QEMU as a drive. Live; add a persistent overlay partition for persistence.
forestos-uefi-64bit.imgRaw UEFI disk image (USB dd, bootable) — same as above, for UEFI machines. Requires UEFI boot, Secure Boot off (see note below).
forestos-bios-32bit.isoLive / CD image (hybrid BIOS + UEFI ISO) — boot live from CD/DVD or USB, try without installing. Amnesic unless persistence is configured.
esp.imgEFI System Partition, for UEFI boot. Not written on its own — it is assembled into the UEFI .img / hybrid .iso.

Running it

Easiest route, from the fern directory:

make run

Or drive QEMU yourself. The BIOS build is a raw disk image, so it goes in as a drive rather than a CD:

qemu-system-i386 -drive format=raw,file=$FOREST/foreboots/build/forebo.img \
                 -serial stdio -vga std

Writing it to real hardware

Write the whole image — it already carries the bootloader stages and the kernel. Always write the .img / .iso as a raw block image, never as a single file inside an existing FAT32/exFAT partition. Back up the stick first: writing destroys everything on the target device.

Linux

Find the stick (lsblk -o NAME,SIZE,MODEL), unmount it, then dd:

lsblk -o NAME,SIZE,MODEL
sudo umount /dev/sdX* || true
sudo dd if=forestos-bios-32bit.img of=/dev/sdX bs=4M status=progress conv=fsync
sync

For the live ISO the same command applies, with the .iso as if=:

sudo dd if=forestos-bios-32bit.iso of=/dev/sdX bs=4M status=progress conv=fsync
sync

macOS

diskutil list
diskutil unmountDisk /dev/diskN
sudo dd if=forestos-bios-32bit.img of=/dev/rdiskN bs=1m conv=sync
diskutil eject /dev/diskN

Use /dev/rdiskN (raw) for speed, and triple-check N — it is the whole disk, not a partition like diskNs1.

Windows — Rufus / balenaEtcher

Check the device node twice. dd to the wrong one destroys whatever is on it, with no confirmation and no undo. If the stick shows up much smaller than its label after writing, that is normal — the image partition table is small; expand / add a persistence partition into the leftover space.

Secure Boot note. Forest OS images are not signed with a Microsoft key, so Secure Boot must be off / in Setup Mode / with a custom enrolled key before UEFI boot will succeed. Symptoms of leaving it on: “Verification failed”, “Access denied”, or a silent return to the boot menu. Enter firmware setup (usually F2 / Del / F12 / Esc at power-on), find Secure Boot under Boot / Security, set it to Disabled, then boot the USB via the one-time boot menu. Re-enable it when you return to your normal OS if you wish.

Please don't install this on a machine you need. Forest OS is a work in progress. It comes with no warranty of any kind — see sections 15 and 16 of the GPL v3.

Verifying a download

Checksums (SHA256SUMS / .sha256) are listed alongside each release on GitHub. Always verify before writing to USB:

# Linux — check every file listed in SHA256SUMS:
sha256sum -c SHA256SUMS

# ...or check a single image:
sha256sum forestos-bios-32bit.img
sha256sum forestos-bios-32bit.iso

# macOS:
shasum -a 256 forestos-bios-32bit.img
shasum -a 256 forestos-bios-32bit.iso

# Windows (PowerShell):
certutil -hashfile forestos-bios-32bit.img SHA256
certutil -hashfile forestos-bios-32bit.iso SHA256

Compare the printed hash with the value on the release page. If they differ even by one character, do not boot or flash the file — re-download it. A sha256sum -c result of OK means the image is intact.