It is pearOS, but with Debian Base. Yes! It uses vanilla debian, less bugs, easier, better etc.
A Debian base means the vast APT package ecosystem, a more conservative/stable release cadence, and broader out-of-the-box hardware support than a rolling-release base β while keeping the same pearOS look, feel and app set.
build-iso.sh is a generic Debian live-ISO engine: package list, extra APT repo, package selection, branding and boot menu/theme names all come from a profile under profiles/<name>/, not from the script itself.
sudo ./build-iso.shNote: The build script must be run as root since it needs to create chroot environments and install packages β if not already root, it re-executes itself via pkexec (or sudo as a fallback).
It accepts the following flags:
--profile <name>Distro profile to build, fromprofiles/<name>/. Default:pear(Pulsar OS).--branch stable, replacing stable withforkyorrolling(mapped to Debian'strixie,forkyandtestingsuites respectively).--localto package from the packages in the/PKGfolder, which must be in the same folder that contains the/ISOfolder--nvidiaBuild ISO image with privative drivers (BROADCOM, NVIDIA, etc...)--clean-baseDelete the cached base Debian chroot and rebuild it from scratch.--clean-targetDelete the working target rootfs and re-clone it from the base cache, even if one already exists from a previous run.--chrootDrop into an interactive shell inside the target rootfs right before compression (proc/sys/dev are still mounted), then stop -- never falls through to packaging the ISO in the same run. The target rootfs is never deleted automatically: if one already exists (from an earlier--chrootsession, a finished build, or days ago), any run ----chrootor plain -- reuses it as-is and skips straight past repo/package install. Pass--clean-targetto force a fresh one.
The ISO boots via Ploader (pearOS's own rebrand of rEFInd 0.14.1, a prebuilt EFI binary+theme vendored under profiles/<name>/ploader/) for UEFI, with syslinux as the BIOS/legacy fallback -- there's no bootloader choice to make.
sudo pacman -S --needed \
squashfs-tools syslinux xorriso mtools dosfstools \
binutils libisoburn sassc imagemagick psmisc \
fakeroot rsync jq curl unzip wget gitYou'll also need mmdebstrap from the AUR (e.g. yay -S mmdebstrap), since it bootstraps the Debian chroot regardless of the host distro.
sudo apt-get install -y \
mmdebstrap squashfs-tools isolinux syslinux-common \
xorriso mtools dosfstools binutils unzip sassc imagemagick psmisc \
debian-archive-keyring rsync jq curl wget fakeroot gitThe build script itself checks for missing dependencies and tells you what to install β you don't need to check manually beforehand.
| Package | Purpose |
|---|---|
mmdebstrap |
Bootstrap the base Debian chroot |
squashfs-tools |
Compress the rootfs into a SquashFS image |
isolinux / syslinux-common |
BIOS boot binaries (isolinux.bin, *.c32 modules) for the ISO -- installed into the profile's own chroot, not the host |
xorriso |
Create hybrid ISO images (BIOS + UEFI) |
mtools |
Manipulate FAT filesystems (EFI image inside ISO) |
dosfstools |
Format FAT partitions (EFI image) |
binutils / libisoburn |
Linker and ISO manipulation tools |
sassc |
SCSS compiler for Plymouth themes |
imagemagick |
Image processing for branding assets |
psmisc |
Provides fuser to kill leftover processes on port 5900 |
fakeroot |
Build packages without real root privileges |
rsync |
Sync the base chroot into the working target |
jq / curl / wget / unzip / git |
Download and extract resources during build |
A profile lives under profiles/<name>/ and provides:
profile.confβ display name, package-name slug, ISO volume label/filename prefix, Plymouth theme name, boot-icons sourcepackages.listβ themmdebstrapbootstrap package listrepo.shβ definesprofile_setup_repo()/profile_teardown_repo(), configuring the profile's own APT repo and keyring inside the chrootpackages.shβ definesPROFILE_REPO_PACKAGES,PROFILE_COMMON_PACKAGES,PROFILE_BACKPORTS_PACKAGES,PROFILE_LOCAL_PIN_GLOBcustomize.shβ definesprofile_customize(), the post-install branding/extra-apps stepploader/β the vendored Ploader EFI binary (ploader_x64.efi) and boot theme (theme/)syslinux/β the BIOS boot menu background (splash.png)boot-icons/β asset files (the profile's APT signing key, if any, is embedded directly inrepo.shinstead of a separate file)
profiles/pear/ is the existing Pulsar OS setup. Adding a second, completely different distro is just adding a new profiles/<name>/ directory β the engine in build-iso.sh doesn't change.
sync-rootfs.sh re-clones build/rootfs-target-<branch> from the already-bootstrapped build/rootfs-base-<branch> and reinstalls the local .deb packages from PKG/debian/build/packages, without redoing the full base bootstrap. Useful while iterating on packages. Accepts --branch|-b <branch> and --nvidia.
Result: booted, installed pearOS and booted it β
Success score: 100/100
| Test | Score |
|---|---|
| Boot | 100/100 |
| UI sanity | 100/100 |
| Installable | 100/100 |
| Usability | 100/100 |
Usability checks:
| Check | Result |
|---|---|
| login + desktop | β |
| UI sanity (installed) | β top 99% / dock 100% |
| Konsole opens | β |
| os-release says pearOS | β |
| sudo apt-get dist-upgrade | β |
| Pafari opens | β |
| Calculator opens | β |
| Notes opens | β |
| Finder opens | β |
| Kate opens | β |
One screenshot every 10s.
10sβ
20sβ
30sβ
40sβ
50sβ
60sβ
70sβ
80sβ
90sβ
100sβ
110sβ desktop ready, then clicked Install pearOS in Welcome β
120sβ pearOS installer loading β
130sβ pearOS installer loading β
140sβ Language screen, then selected English β
150sβ Language screen, then clicked Next β
160sβ Recovery screen, then selected Install pearOS Goldwing β
170sβ Recovery screen, then clicked Continue β
180sβ Installer welcome, then clicked Continue β
190sβ Terms and Conditions, then clicked Continue β
200sβ
210sβ
220sβ
230sβ
240sβ
250sβ
260sβ
270sβ Calamares β
280sβ Calamares: Welcome, clicked Next β
290sβ Calamares: Location, clicked Next β
300sβ Calamares: Keyboard, clicked Next β
310sβ Calamares: Partitions, selected Erase disk β
320sβ Calamares: Partitions, clicked Next β
330sβ Calamares: Summary, clicked Install β
340sβ Calamares: installing (2 min) β
350sβ Calamares: installing (4 min) β
360sβ Calamares: installation finished β
370sβ Installed system: first boot β
380sβ Installed system: first boot β
390sβ Installed system: first boot β
400sβ Installed system: first boot β
410sβ Installed system: first boot β
420sβ Installed system: reached the login screen / desktop β
430sβ First boot: country β
440sβ First boot: transfer β
450sβ First boot: languages β
460sβ First boot: accessibility β
470sβ First boot: data & privacy β
480sβ First boot: PearID β
490sβ First boot: create account β
500sβ First boot: account filled in β
510sβ First boot: terms β
520sβ First boot: location services β
530sβ First boot: time zone β
540sβ First boot: analytics β
550sβ First boot: screen time β
560sβ First boot: Piri β
570sβ First boot: look β
580sβ First boot: updates β
590sβ First boot: ready β
600sβ First boot: applying settings β
610sβ Login screen β
620sβ Login screen β
630sβ Login screen β
640sβ Login screen β
650sβ Login screen β
660sβ Login screen β
670sβ Login screen β
680sβ Login screen β
690sβ Login screen β
700sβ Login screen β
710sβ Logging in β
720sβ Logging in β
730sβ Logging in β
740sβ Logging in β
750sβ Logging in β
760sβ Installed system: desktop β
770sβ Konsole opened β
780sβ Konsole: cat /etc/os-release β
790sβ Konsole: apt-get dist-upgrade succeeded β
800sβ App: Pafari opened β
810sβ App: Calculator opened β
820sβ App: Notes opened β
830sβ App: Finder opened β
840sβ App: Kate opened β
Result: menu bar + dock look as expected β
Compared against the reference tests/ui-reference/debian/desktop.png (% of pixels within Β±16 per channel; pass β₯ 90%).
| Area | Similarity |
|---|---|
| Top bar (first 30 px) | 96.8% |
| Dock (last 100 px) | 100.0% |
This project is released under the GNU Pubilc License v3 or later
Copyright: Alexandru Balan @ Pear Software and Services S.R.L. based in Romania, Dacia Boulevard 133, floor D, Sector 2, Bucharest C.I.F.: 50888207
Latest boot / first-boot / usability test sequence: seq-pi/README.md
