Easily create your own custom Live Linux distribution, remix, or spin. Building your own Live Linux ISO is easier than ever using Debian Live-Build. By building on Debian Stable, your ISO remains secure, supported, and future proof even as new Debian versions are released.
This guide shows you how to create a reproducible Debian Stable Live ISO with optional persistence, custom user settings, wallpaper customization, and support for both modern UEFI and legacy BIOS systems.
How to Create Your Own Custom Live Linux Distro (Debian Stable)

What You Will Build
- A bootable Debian Stable Live ISO
- Hybrid ISO for USB or DVD
- Optional persistent storage
- Custom desktop environment
- Custom live username and passwords
- Custom wallpaper and branding
Important Architecture Note
Debian Live creates one ISO per architecture.
- amd64 for modern 64-bit systems
- i386 for legacy 32-bit systems
You must build each architecture separately. A single ISO cannot contain both.
Step 1: Install Live-Build (Debian Stable Host)
Start with a running Debian Stable system:
su -
apt update
apt install live-build
Step 2: Create Build Directory
mkdir live
cd live
lb clean
Step 3: Configure Debian Stable Build
Example for amd64:
lb config \ --architectures amd64 \ --binary-images iso-hybrid \ --distribution stable \ --archive-areas "main contrib non-free-firmware" \ --debootstrap-options "--variant=minbase" \ --bootappend-live "boot=live persistence components username=pendrivelinux hostname=pendrivelinux"
Notes:
- Use
--architectures i386for 32-bit builds. non-free-firmwareensures WiFi and modern hardware support.- Using
stablekeeps the guide future-proof.
Step 4: Add Desktop and Packages
Create a package list:
mkdir -p config/package-lists echo xfce4 lightdm network-manager sudo chromium gparted nano >> config/package-lists/desktop.list.chroot
XFCE is recommended for fast Live USB performance.
Step 5: Set Live User and Root Password
Create a hook file:
mkdir -p config/hooks/live
nano config/hooks/live/010-user-settings.hook.chroot
Add:
#!/bin/sh echo "pendrivelinux:livepassword" | chpasswd echo "root:rootpassword" | chpasswd
Make executable:
chmod +x config/hooks/live/010-user-settings.hook.chroot
This ensures reproducible builds instead of manual shell edits.
Step 6: Customize Wallpaper
Copy your wallpaper:
mkdir -p config/includes.chroot/usr/share/backgrounds
cp mywallpaper.jpg config/includes.chroot/usr/share/backgrounds/
For XFCE default wallpaper, create:
mkdir -p config/includes.chroot/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml
Then configure the wallpaper path inside:
xfce4-desktop.xml
This ensures new live users inherit the branding automatically.
Step 7: Build the ISO
Return to root if needed:
su -
cd live
lb build
The finished ISO appears as:
live-image-amd64.hybrid.iso
Step 8: Test in Virtualization
QEMU:
qemu-system-x86_64 -cdrom live-image-amd64.hybrid.iso -m 2048
For UEFI testing, enable EFI in your VM settings.
Step 9: Write ISO to USB
Identify device:
lsblk
Write to USB:
dd if=live-image-amd64.hybrid.iso of=/dev/sdX bs=4M status=progress sync
Replace /dev/sdX with the full device, not a partition.
Step 10: Enable Persistence (Optional)
Create a second partition labeled persistence:
mkfs.ext4 -L persistence /dev/sdX2 mount /dev/sdX2 /mnt echo "/ union" > /mnt/persistence.conf sync umount /mnt
Persistence works because we included persistence in boot parameters earlier.
Troubleshooting
- Build fails: Ensure you are root.
- No WiFi: Confirm non-free-firmware included.
- Persistence not working: Verify label is exactly "persistence".
- ISO not booting: Confirm hybrid ISO and BIOS/UEFI settings.
Live-Build Drops to an Interactive Shell During Creation?
While building a minimal Debian Live ISO (especially when optimizing for the smallest possible GUI build), you may encounter a point where the process drops into an interactive shell. This is normal in certain configurations and does not mean the build failed.
Why This Happens
This typically occurs when:
- A package fails to install inside the chroot environment
- A hook script pauses execution
- There is a configuration issue in
config/package-lists/ - A dependency is missing in a minimal build
When building extremely small images, missing recommended packages or firmware can trigger this behavior.
What You Should Do
At the shell prompt, you are inside the live-build chroot environment.
- Carefully read the error message displayed above the shell.
- Run:
apt-get update - Attempt to manually install the missing package:
apt-get install package-name - If successful, exit the shell:
exit - The build process will resume.
If You Want to Abort
If something is seriously broken:
exit 1
This will stop the build so you can fix your configuration.
Common Minimal GUI Pitfalls
- Forgetting to include
live-boot - Removing
taskseltoo aggressively - Excluding required Xorg dependencies
- Using
--variant=minbasewithout adding required packages manually
Pro Tip for Ultra-Small GUI Builds
If you are aiming for the smallest possible ISO with a graphical environment, start with:
lb config --distribution stable --debian-installer false --archive-areas "main contrib non-free non-free-firmware" --binary-images iso-hybrid --variant=minbase
Then manually add only:
xorg
openbox
lightdm
live-boot
live-config
network-manager
This approach keeps the ISO extremely lean while remaining compatible with both BIOS and UEFI systems.
Future-Proofing Your Build
Building on Debian Stable ensures long term reliability and hardware compatibility. Avoid testing or unstable branches if your goal is maximum boot reliability across older and newer systems.
Frequently Asked Questions
Can I build both amd64 and i386?
Yes. Run the entire build process separately for each architecture.
Is Debian Stable the best choice?
Yes for production, rescue tools, classrooms, and portable USB systems. Testing or unstable are not recommended for reproducible live builds.
Can I remove the Debian installer?
Yes. Omit installer options if you want a pure live-only ISO.
Final Thoughts
Using Debian Stable ensures your custom Live Linux ISO remains secure, reliable, and compatible with modern hardware. By structuring your build using package lists, hooks, and includes.chroot, your project becomes fully reproducible and easy to maintain long term.
Pair your custom Debian remix with multiboot tools like YUMI for deployment across multiple systems. You now have your own distro factory.