multi boot on raspberry pi

How to Dual Boot on Raspberry Pi? (PINN Tutorial)

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

Want to keep Raspberry Pi OS, LibreELEC, RetroPie, or DietPi on the same SD card? You don’t need multiple cards anymore. I’ve been using a dual-boot setup when testing different distributions, and it saves a surprising amount of time.

PINN is currently the easiest way to dual boot on a Raspberry Pi. It installs multiple operating systems on the same SD card and adds a boot menu to select the system at startup.

Want to give it a try? I’ll show you how to set up PINN step by step, so you can install multiple operating systems on the same SD card and switch between them whenever you reboot.

If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!

Introduction to Dual Boot on Raspberry Pi

Let’s start with a quick reminder about dual boot and why you might want to use it on your Raspberry Pi.

What is Dual Boot?

Dual boot means that you can use two different operating systems on the same computer.
For example, we can use this to load both Windows and Linux on the same PC.

On a PC, you can have Windows and Linux installed, and you choose which OS you want to use when you start the computer (with a menu asking you each time you boot). This works by having a separate partition (or more) for each operating system and a small tool on the first sector of your hard drive to ask you which partition you want to load.

ubuntu vs raspberry pi os

On a Raspberry Pi, we might want to use multi-boot because there are many useful Linux distributions you can install. But it’s the same process. You install several systems on your SD card and you choose which one you want to start each time.

If you want to switch to another system, you just need to reboot your Raspberry Pi and select another one from the boot menu.

Why Would I Want to Multi-Boot?

You may need to use multi-boot on a Raspberry Pi if you are using it for different purposes.
For example, you can install these three systems on your SD card at the same time:

Something not working as expected?
You can get answers from real experts in minutes.
Get help with your setup

That’s just an example, but there are a lot of configurations that are possible depending on what you want.

What Do I Need for Multi-Boot on Raspberry Pi?

You don’t need many things. In fact, it’s just two or more operating systems that you install on the same SD card, the hardware you use is not that important.

The only thing you have to think about is your SD card. Think carefully before you start.

If you choose one with too small a capacity, you may have to restart from scratch. So, think about everything you’ll have on that SD card for each operating system: GitHub downloads, movies, music and OSMC, and a ton of gaming ROMs. How much space do you really need?

I recommend starting with the biggest SD card you have, maybe 64G or more.
If you need a new one for this project, I have tested most brands and models here, make sure to check my benchmarks so you pick the best (the price doesn’t change much between all models).

How to Dual Boot with PINN on Raspberry Pi

So, let’s start with the first way to use a dual boot or more on Raspberry Pi.
As I told you, there are two main ways to use multi-boot, the first one is PINN.

Here are the required steps to use dual boot on a Raspberry Pi:

Recommended next step
Master Raspberry Pi in 30 Days

If you want a clearer path than jumping from tutorial to tutorial, my book gives you a step-by-step roadmap to really understand your Raspberry Pi.

Check the book here
  • Download PINN from Sourceforge.
  • Format an SD card and create a new partition (1 GB).
  • Copy the PINN files onto the SD card.
  • Boot and follow the wizard to install several systems on the same SD card.

I will now explain everything in detail.

What is PINN?

PINN is an upgraded version of NOOBS, the installer that was previously offered by the Raspberry Pi Foundation with new Raspberry Pi models, to facilitate the installation process. Since the release of Raspberry Pi Imager, NOOBS no longer exists, but PINN is still there.

For multi-boot, PINN is probably the best tool to use.
It allows you to choose the systems you want to install from a list.
Then it will download and install them in separate partitions on your SD card.

I will let you check their GitHub project for more details.

Flash PINN onto an SD Card

Enough theory, let’s move on to practice. The easiest way to get PINN onto your Raspberry Pi is by using Raspberry Pi Imager. (It’s official software that you can download for free here.)

Here’s how to flash PINN onto your SD card:

  • Launch Raspberry Pi Imager, and make the following selections.
  • Device – Choose the Raspberry Pi board you’ll be using.
  • OS – Scroll down to find Misc utility images.
    Select PINN from the list.
  • Choose which image version you want.

    The older images at the top are stable, which I recommend for Pi 4 and earlier models.
    The bottom choice is beta, which I recommend for Pi 5 and newer models.
  • Storage – insert your SD card (or USB drive) and select it from the list.
  • Writing – click the WRITE button to begin the flashing process.

Imager should create and format all of partitions for you, which is easier than doing all of this manually. It’ll be done relatively fast, and now your SD card is ready for your Raspberry Pi.

Install Your Operating Systems

Insert the SD card into your Raspberry Pi and start it.
After a few seconds, you should see the PINN interface.

Configure the Internet Connection

Since you need to download the systems, we need an internet connection.
– If you’re using a wired connection, it should work automatically. Skip to the next part.
– But if you’re using Wi-Fi, follow the steps below.

Here’s how to configure a wireless connection for PINN:

  • Click Close to remove the error message.
  • Use the dropdowns at the bottom to switch your language and keyboard layout.
    This is important as it affects how passwords are typed.
  • It will scan and show a list of wireless networks.
  • Select your Wi-Fi network.
  • Enter your passphrase and hit OK.

Once connected, you’ll see the main menu appear.

PINN Menu

The main menu will show you many operating systems. It looks like this:

You have access to many options, including:

  • Raspberry Pi OS: versions for Standard, Lite, and Full available.
  • Twister OS: an upgrade version of RPI OS for desktop usage.
  • Ubuntu or Ubuntu Mate
  • Android (Lineage)
  • Batocera: retro gaming system.
  • Kali Linux: ethical pentesting system.
  • Diet Pi: a minimalist lightweight distro.
  • Data partition: A free 512M partition for data or to use it later for something else.
    I think it may also be useful to share data over different systems, in a unique dedicated space.
  • LibreElec: light system for media center.
  • OSMC: Media center system.
  • Volumio: a music streamer.

There are actually too many systems now for me to list here and keep updated, so I recommend browsing through the menus to see what’s possible on the latest version.

Just be warned that PINN doesn’t allow you to add an OS that’s not in their default list. If you’re interested in installing a system that’s not supported, then you’ll probably need to try an alternate route.

Select Systems

Next, our goal is to create a dual boot on the SD card (or a multi-boot maybe).
Check the box for every system you want to install.

The required space is updated in real-time under the menu.
Keep an eye on it if you have an SD card smaller than 30G.
Also, if you want to use a USB drive instead to store everything, you can change the destination device here.

Once done, click the “Install” button in the top menu.
Accept the confirmation message (it will delete everything on the SD card).

You’ll then be able to adjust how much total storage you want to allocate to each system.
You want to give each system enough extra space to work effectively.

When you confirm, the installation process will finally start.
Wait a few minutes or hours depending on your internet connection.

Try the Dual Boot

The first time, a menu will appear, asking you to choose the operating system you want to load.
It looks like this:

Highlight the OS you want (but don’t mark the checkbox), and click BOOT to load it.
You can change this choice on any boot, without losing data.

The next time you restart, you’ll see this boot menu again.
This menu stays on screen for 10s, and then it will boot the previously selected OS.
So if you often use the same OS, you don’t need to choose at each boot.

(To change the default boot behavior, see the FAQ below.)

Limitations of PINN

As you have seen there is a good list of operating systems available in the boot menu, but you don’t have everything. If you want to install any “exotic” system, it’s not possible natively with PINN.

You can probably add other partitions later and install the system manually.
But it’s not the “easy way” as the goal of this post, so I won’t be covering it here.

That’s all! You now know how dual boot your Raspberry Pi (or multi-boot).

Depending on what what you want to do, it’s your choice to use PINN or some other method. PINN is easier for a beginner and for the main distributions. Experienced users might look for other methods, like installing VMWare ESXi to run virtual machines on your Raspberry Pi.

If you are interested to test other distributions than Raspberry Pi OS, check my post about the best-operating systems for your Raspberry Pi.


🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Stuck on this project? Ask me or other Pi users in the RaspberryTips Community. We help each other out and you'll get answers quick. Join and fix it together.

Related Questions

Can I add another system later using PINN?

If you selected two systems on PINN and want to add another, it’s possible. On the boot, you can hold the Shift key to enter the Recovery Mode to access the same installation menu. Here you can check another OS to install, exactly like for the first installation.

How do I choose which OS boots by default with PINN?

PINN’s default behavior is to automatically boot the last OS that was loaded.
If you want to set a default OS to boot instead, you can change this using the boot menu:

  • Moving a choice up or down only changes how the list is displayed.
    This does NOT change the boot behavior or affect booting at all.
  • To boot an OS by default, mark its checkbox.
    This overrides the normal behavior, making this OS the ‘sticky default’ to boot.

Setting a default OS skips the PINN menu. So if you need to manually change which system gets loaded, you’ll have to click the mouse or press SHIFT to bring up this menu again.

How do I resize the partitions created by PINN?

Unfortunately, there’s no way to do this automatically. Raspi-config doesn’t support PINN partitions and no menu offers this feature in PINN directly. So if you want to give more space to one system, you have probably to do it manually, but it won’t be easy.

As you can see below, here is what my SD card looks like after installing almost all the systems available. If I want to increase the partition size for Lakka for example, I have to identify which partition is for Lakka and then move all the others to find a free space.

sdcard noobs partitions

Not sure I’ll try 🙂 You can find good pieces of information about how PINN manages partitioning on this GitHub page.

Can I install an OS that’s not available in PINN?

No, PINN does not allow you to install operating systems that aren’t on its default list.

If you need to install a different OS that’s not supported, you can try using BerryBoot instead.

Not getting the same result?

Even when you follow every step, small differences in OS version, hardware or config can change the outcome. Instead of wasting time guessing, get help from people who have already fixed the same kind of issue.

Ask your question now →
🔒 No risk. Cancel anytime.
  • Get help on your exact issue
  • Access step-by-step videos for tricky setups
  • Browse the website without ads

Similar Posts

2 Comments

  1. Hi Patrick, nice page with lots of hints and tricks on how to’s.

    I’m trying to dual boot from an ssd drive.
    I’d like to use my ssd drive to boot Raspberry, Linux and also use the same ssd for booting my laptop PC running Windows 10.

    Got a trick for that?

    Thanks

    1. Hi Claude,

      I think Berryboot erase the disk completely for the first system, so I’m not sure if there is a way to do this.
      Maybe by creating an empty partition with BerryBoot, and use it to install Windows.

      I think using two disks will be safer.
      Also booting a laptop with Windows running in USB doesn’t seems the best way to do.
      I would have one in the laptop and another for the Raspberry Pi. SSD disks are cheap now.

Leave a Reply

Community members only
Comments are reserved for RaspberryTips Community members. Join the community to ask questions, get help, and interact with other Raspberry Pi users.

Join the community  or  log in