Raspberry Pi Multiboot: BerryBoot, PINN, and Native Pi 5 Options

raspberry pi multiboot berryboot setup

Raspberry Pi multiboot lets you run multiple operating systems from a single storage device and select which one loads at boot. The right method depends on your Pi model. BerryBoot works on Pi 3 but has not been updated since 2020 and does not support Pi 4 or Pi 5. PINN (the active fork of NOOBS) supports Pi 3 and Pi 4 with a maintained GUI installer. Pi 5 has native multiboot support through the rpi-eeprom boot order configuration without needing a third-party manager. This guide covers all three methods with correct scope for each.

Last tested: BerryBoot 2.0r29 on Pi 3 Model B+ | PINN 3.9.10 on Pi 4 (4GB) | Pi 5 native boot on Raspberry Pi OS Bookworm 64-bit | May 2025

Key Takeaways

  • BerryBoot’s last release was 2020. It does not support Raspberry Pi 4 or Pi 5 and has no active development. It remains functional on Pi 3 for existing users, but any new Pi 4 or Pi 5 multiboot project should use PINN or native boot order configuration instead.
  • PINN (Pi Installer for New NOOBS) is the actively maintained successor to NOOBS, supporting Pi 3 and Pi 4. It provides a GUI for installing multiple OS images to separate partitions on a single SD card or USB drive. NOOBS itself has been deprecated and should not be used for new installs.
  • Pi 5 does not need a boot manager for multiboot. The Pi 5’s EEPROM supports a configurable boot order that can cycle through SD card, NVMe, and USB storage devices. Each device holds a complete independent OS install. There is no boot menu required and no single point of failure across the OS installations.

Choosing a Raspberry Pi Multiboot Method

The three current options divide cleanly by Pi model and what you want from a multiboot setup.

Raspberry Pi multiboot method comparison: BerryBoot for Pi 3, PINN for Pi 3 and Pi 4, and native boot order for Pi 5

BerryBoot stores all OS images as squashfs files on a single partition and mounts the selected one at boot. Every OS shares the same boot partition and filesystem layer. This approach saves storage space but means all OS images live on one card with no isolation between them. If the card fails, everything goes. BerryBoot is appropriate for Pi 3 owners who want to run two or three OS images from a single 32GB SD card and are comfortable with the maintenance status.

PINN installs each OS to its own separate partition on a shared SD card or external USB drive. The PINN bootloader presents a menu at startup. Each OS is more isolated than in BerryBoot, and PINN can install directly from the internet during first setup. PINN is the correct choice for Pi 4 users who want a managed multiboot setup with a GUI installer. It supports Pi 3 and Pi 4 but not Pi 5.

Pi 5 native multiboot uses separate physical storage devices: one OS per SD card, NVMe, or USB drive. The Pi 5’s EEPROM boot order determines which device is tried first. This is the most robust approach because each OS is completely independent with its own storage hardware. Swapping the default OS means changing the EEPROM boot order or physically reordering the devices. There is no GUI menu at startup. For the complete Pi 5 native multiboot guide, see Pi 5 Multiboot SD USB NVMe: Complete Setup Guide.

  • Unterstützt einspurige PCIe 2.0-Schnittstelle (500 MB/s Spitzenübertragungsrate)
  • Unterstützt Geräte, die den M.2-M-Key-Edge-Anschluss verwenden. Unterstützt Geräte mit dem Formfaktor 2230 oder 2242
  • Kann angeschlossene M.2-Geräte mit bis zu 3 A versorgen. Inklusive Power- und Aktivitäts-LEDs

Setting Up BerryBoot on Raspberry Pi 3

BerryBoot runs only on Pi 3 models (3B, 3B+, 3A+). Do not attempt this on Pi 4 or Pi 5. The BerryBoot image is available from the project’s GitHub repository at github.com/maxnet/berryboot. Download the latest release zip (2.0r29 as of 2020). You need a 16GB minimum SD card, a USB keyboard, and an HDMI display for the first-boot setup wizard.

Extract the zip contents directly to a FAT32-formatted SD card. Do not use an image writer tool. BerryBoot’s distribution is a zip of boot files, not a disk image:

# On Linux host -- format SD card as FAT32 first:
sudo mkfs.vfat -F 32 /dev/sdX1

# Mount and extract:
sudo mount /dev/sdX1 /mnt/boot
sudo unzip berryboot-*.zip -d /mnt/boot
sudo umount /mnt/boot

Insert the SD card into the Pi 3 and power on. BerryBoot’s setup wizard appears on first boot. Connect to your network when prompted, then select OS images to install. BerryBoot downloads and installs images directly from its online repository. Available images include Raspberry Pi OS Lite, LibreELEC, and several other Pi-compatible distributions.

After OS installation, BerryBoot reboots to a menu showing all installed systems. The default timeout before booting the last-used OS is 10 seconds and is configurable in BerryBoot’s settings menu. To add more OS images later, hold Shift during the countdown to re-enter the BerryBoot menu, then select “Add OS.”

Expected result: The BerryBoot menu appears within 30 seconds of powering on, lists all installed OS images, and boots the selected image within 60 seconds. If the Pi shows a blank screen after the rainbow splash, the SD card was not prepared correctly as a zip extraction. Verify that bootcode.bin is in the root of the FAT32 partition, not inside a subdirectory.

BerryBoot’s storage model means all OS images share the card. The root filesystem for each OS is read-only (the squashfs image). User data and OS modifications are stored in an overlay on the same card. If the card fills up, all OS instances are affected. Allocate at least 4GB per OS image plus 2GB headroom when sizing the card. A 32GB card fits three average-sized OS images comfortably.

Setting Up PINN on Raspberry Pi 4

PINN is available at github.com/procount/pinn. Download the latest release zip. Like BerryBoot, PINN distributes as a zip of boot files, not a disk image. Prepare the SD card the same way: format as FAT32, extract the zip to the card root.

# Format SD card as FAT32:
sudo mkfs.vfat -F 32 /dev/sdX1
sudo mount /dev/sdX1 /mnt/boot
sudo unzip PINN_*.zip -d /mnt/boot
sudo umount /mnt/boot

Boot the Pi 4 with the PINN card inserted. PINN presents a GUI OS installer on first boot. Select the OS images you want to install. PINN downloads them from its online repository and installs each to its own separate partition. Installation time depends on image size and network speed. A full Raspberry Pi OS Desktop installation takes 10 to 20 minutes on a typical home connection.

PINN can also install OS images from a local USB drive rather than the network, which is useful for offline installs or for OS images not in PINN’s online repository. Convert the OS image to PINN format by extracting it and creating a os.json descriptor file following the PINN documentation at github.com/procount/pinn/wiki.

After initial installation, PINN presents a boot menu on every startup. The default selection timeout and the default OS are configurable from within PINN’s settings. To add additional OS images after initial setup, hold Shift during the PINN timeout countdown to re-enter the installer.

Expected result: PINN’s OS selection screen appears within 20 seconds of power-on. After selecting an OS, it boots within 60 seconds. Each OS runs from its own partition and cannot see the other OS partitions during normal operation. If PINN does not appear and the Pi boots directly to an OS, the SD card was not formatted as FAT32 before zip extraction, or the zip was extracted into a subdirectory rather than the root.

PINN supports running OS installations from an external USB drive while using the SD card only for the PINN bootloader. This extends available storage and moves per-OS write activity off the SD card, which reduces card wear. Configure this in PINN’s advanced settings during first-boot setup.

Native Multiboot on Raspberry Pi 5

Pi 5 native Raspberry Pi multiboot does not use a boot manager. Each OS lives on its own physical storage device. The Pi 5’s EEPROM contains a configurable boot order that determines which device is tried first: SD card, NVMe via M.2 HAT+, or USB storage. To change which OS boots by default, update the EEPROM boot order.

The practical advantage over BerryBoot or PINN is isolation. Each OS is completely independent: separate filesystem, separate kernel, separate everything. Updating or breaking one OS has no effect on the others. The disadvantage is that you need multiple physical storage devices, which costs more than splitting a single SD card.

To update the Pi 5’s boot order from within a running Raspberry Pi OS install:

sudo raspi-config

Navigate to Advanced Options, then Boot Order, and set the preferred device order. The change takes effect after reboot. Alternatively, edit the EEPROM config directly:

sudo rpi-eeprom-config --edit

Set BOOT_ORDER=0xf416 to try SD card first, then NVMe, then USB, then restart. The full Pi 5 native multiboot setup with NVMe and USB SSD configuration is covered in detail at Pi 5 Multiboot SD USB NVMe: Complete Setup Guide. For choosing between Pi 4 and Pi 5 for a new multiboot build, see Raspberry Pi 5 vs Pi 4: The Honest Breakdown. For Pi 5 NVMe boot setup specifically, see Raspberry Pi 5 NVMe Boot: Complete Setup Guide.

Expected result: The Pi 5 boots the OS on the highest-priority storage device. If that device is not present or fails to boot, it automatically tries the next device in the BOOT_ORDER sequence. No menu appears. Verify the active boot order with rpi-eeprom-config | grep BOOT_ORDER.

FAQ

Does BerryBoot work on Raspberry Pi 4 or Pi 5?

No. BerryBoot’s last release was version 2.0r29 in 2020 and it does not support Pi 4 or Pi 5. The project has no active development. Pi 4 users should use PINN instead. Pi 5 users should use the native EEPROM boot order configuration, which does not require a third-party boot manager.

What is the difference between BerryBoot and PINN for Raspberry Pi multiboot?

BerryBoot stores all OS images as squashfs files on a single shared partition, mounting the selected image as a read-only filesystem at boot. PINN installs each OS to its own separate partition on the SD card or external USB drive. BerryBoot is lighter on storage space; PINN provides better OS isolation. BerryBoot supports Pi 3 only. PINN supports Pi 3 and Pi 4 and is actively maintained. PINN also replaced NOOBS as the official-adjacent multi-OS installer after NOOBS was deprecated in 2021.

How many operating systems can BerryBoot or PINN install on one SD card?

As many as the card’s storage allows. BerryBoot typically fits 3 to 5 standard OS images on a 32GB card because squashfs images compress well. PINN installs each OS to a full partition, so available count depends on each OS’s installed size. A 32GB card comfortably holds 2 to 3 full desktop OS installs with PINN. A 64GB card extends this to 4 to 6. There is no hard limit set by either tool; the constraint is purely storage capacity.

Is NOOBS still the right tool for Raspberry Pi multiboot?

No. NOOBS was deprecated by the Raspberry Pi Foundation in 2021 and replaced by Raspberry Pi Imager for single-OS installs. PINN (Pi Installer for New NOOBS) is the actively maintained community fork that continued NOOBS’s multiboot functionality. New multiboot projects should use PINN, not NOOBS. The PINN GitHub repository at github.com/procount/pinn has current releases and documentation.

Can I add a new OS to BerryBoot or PINN after the initial setup?

Yes for both. In BerryBoot, hold Shift during the boot countdown to re-enter the BerryBoot menu, then select “Add OS.” In PINN, hold Shift during the PINN timeout countdown to re-enter the PINN installer. Both tools can download new OS images from their online repositories or install from locally prepared image files on a USB drive. PINN additionally supports installing OS images that are not in its online list by providing a local os.json descriptor and image file.

References:


About the Author

Chuck Wilson has been programming and building with computers since the Tandy 1000 era. His professional background includes CAD drafting, manufacturing line programming, and custom computer design. He runs PidiyLab in retirement, documenting Raspberry Pi and homelab projects that he actually deploys and maintains on real hardware. Every article on this site reflects hands-on testing on specific hardware and OS versions, not theoretical walkthroughs.

Last tested: BerryBoot 2.0r29 on Raspberry Pi 3 Model B+. PINN 3.9.10 on Raspberry Pi 4 Model B (4GB). Pi 5 native boot on Raspberry Pi OS Bookworm 64-bit.