multi boot on raspberry pi

How to use dual boot on Raspberry Pi? (2 easy ways)

You probably already asked yourself, is there a way to run multiple operating systems on the same SD card?
Yes, it’s possible, and it’s very convenient, as you don’t need to have five cards and flash them, again and again, each time you want to try something else.
For a person like me, who writes articles about different distributions, it’s really a time saver.

PINN is currently the best option to create a dual boot on a Raspberry Pi. After copying the files to an SD card, PINN will start a wizard to let you choose the operating systems to install on the same device. Once done, you’ll get a boot menu to choose the system to start after each reboot.

In this post, I’ll show you how to use it and I will share an alternative if PINN is not for you.

If you’re looking to quickly progress on Raspberry Pi, you can check out my e-book here. It’s a 30-day challenge where you learn one new thing every day until you become a Raspberry Pi expert. The first third of the book teaches you the basics, but the following chapters include projects you can try on your own.

Introduction to dual boot on Raspberry Pi

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

What is a dual boot?

Dual boot means that you can use two different operating systems on the same computer.
Most of the time, we use this for Windows and Linux systems on a PC.

On a computer, 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 start.

On a Raspberry Pi, we’d rather use multi-boot because there are many distributions you can install on Raspberry Pi (there are already 3 or 4 Raspberry Pi OS versions).
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 change to another system, you just need to reboot your Raspberry Pi and select another one in the boot menu.

Why do I need this?

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:

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

What do I need to use it?

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 that is too small, 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 ROMs on Retropie, how much space do you really need?

So, 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.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

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

  • Download PINN from Sourceforge.
  • Format an SD card and create a new partition (1 GB).
  • Copy the PINN files on 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.

Prepare a new SD card

Enough theory, let’s move on to practice.
As there is no image for PINN, you need to create the SD card yourself.

Reset your SD card

This step is not mandatory. If you have a fresh new SD card, you can skip this one.
But if you have already used it, especially if you already use PINN or another tool for multi-boot, I recommend resetting your SD card.

In this step, we’ll remove all the partitions on the SD card and create a new one using all the space.
PINN will manage the disk share for all the systems you want to install.

Update: If you have Raspberry Pi Imager installed, you can do the same thing way faster by using the “Erase” feature in the OS list.

This will create a FAT32 partition, using the whole SD card space, but PINN should resize it to the minimum on the first start, so you can skip the following paragraph and go directly to the Download section.

This procedure is for Windows users, but you can do the same thing on Mac or Linux.
On Linux, I recommend Gparted. On macOS, you can do this with the Disk Utility.

  • Insert the SD card in your computer.
  • Open your file explorer (WIN+E).
  • In the left menu, right click on “This PC” and choose “Manage”.
  • A new window appears: Computer Management.
  • In the left menu, click on “Disk Management”.
  • In this view, you should see at least two hard drives:
    • Disk0: your computer hard drive
    • Disk1 (or more): your SD card
  • Find your SD card drive (there is the disk size on the left to help you).
    In my case I have this:
    sd card partition manager
    I already tried PINN before so I have many partitions.
    But usually, you’ll have only two (boot and system).
  • Remove all the existing partitions.
    Right click on each segment and choose “Delete volume”.
  • At this step, you should have something like this:
    sd remove partition
    If you have something called “Free space” you need to use a right-click and choose “Delete partition” to remove it.
  • Now that your SD card is empty, we’ll create a new partition.
    Right-click on the “Unallocated” space and choose “New simple volume”.
  • A configuration wizard appears.
    Click “Next” to start.
    Then follow these steps:
    • Simple volume size in MB: 1000.
    • Keep the default values in the next screen and click “Next”.
    • Format the file system: Choose FAT32 for the file system and continue:
      format sd card wizard
    • Exit the wizard (“Finish”).
  • After a few seconds, you should see something like this:
    sd card fat32 partition done
    Your SD is now ready with only one partition mounted on your computer (E: in my case).
    If you don’t get this directly, eject and insert again the SD card in your computer, then finally format the partition (I have this issue each time).

This was the most complex step from this tutorial.
You can move to the next paragraph to continue the PINN installation.

Download PINN

PINN is available on Sourceforge.
Click on the Download button on this page.

The Lite version should be fine. Unless you are installing it on a Raspberry Pi with no internet connection, it’ll be faster.

If you choose the Offline mode, you need to increase the partition size for PINN to at least 3 GB (check the previous section).

Put the PINN files on your SD card

Now that your SD card is ready and you have the archive on your computer, you have almost finished.

  • Extract the archive to a new folder.
  • Copy all the files from this folder to the SD card (E: in my case).
  • Eject the SD card from your computer (with the safe remove tool to avoid data corruption).

The SD card is ready.
Insert it in your Raspberry Pi and start it.

Install your systems

After a few seconds, the Raspberry Pi should display the PINN interface.
If you use a wireless connection, there is an extra step.

Configure the WiFi connection

If you don’t have an RJ45 cable available, you need to use the Wi-Fi connection.
As we chose the “PINN Lite” version, you need to download operating systems, so it’s not possible to use it without the internet.

On the first boot, PINN will ask you to configure a wireless connection:

  • Close the error message by clicking “Close”.
  • The Wifi network selection opens.
  • Choose your Wifi network in the list.
  • Then enter your pass phrase (you can also use the WPS button if you prefer).
  • After a few seconds, you are connected.

Move to the next paragraph to choose the operating systems you want to use.

PINN menu

The main menu from NOOBS look like this:

You have access to many options, including:

  • Raspberry Pi OS (Full, Lite, Standard)
  • Twister OS: an upgrade version of RPI OS for desktop usage.
  • Ubuntu or Ubuntu Mate
  • Android (Lineage)
  • LibreElec: Light system for media center.
  • Lakka: Retro gaming system.
  • 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.
  • OSMC: Media center system.
  • RISC OS: An ancient operating system, available for Raspberry Pi, I don’t really know what it is useful for.

If you are interested in something else, you probably need to check the BerryBoot section of this article.
PINN doesn’t allow you to add an operating system that is not on this list.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Select systems

Now, 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 use.

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 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).

The installation process starts.
Wait a few minutes/hours depending on your internet connection.

Try the dual boot

After the installation, reboot your Raspberry Pi.
You’ll get a menu at the beginning, asking you to choose the operating system you want to start.
It looks like this:

Choose the operating system in the list and confirm.
You can change at any boot, without losing data.

This menu stays 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.

PINN limits

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” announced in the title and I never tried it so I can’t show you.

Anyway, if you need to install another system, you can try with BerryBoot, the NOOBS alternative we’ll try right now.

Multi boot with BerryBoot

BerryBoot is the second software I suggest you create multi-boot SD cards.
It’s an alternative to PINN.

Note: I have a detailed tutorial about BerryBoot on Raspberry Pi on this website, you might want to check it for the step-by-step instructions. But keeping reading for the summary.

What is BerryBoot?

BerryBoot is another boot selection screen for Raspberry Pi.
As it’s not released by the Raspberry Pi Foundation, it’s more open to other systems and you can even use an external device to host the operating system (USB stick or hard drive for example).

There are also other differences with PINN.
BerryBoot is a true bootloader (and not only an installer).
PINN will create a partition for each system and “emulate” on boot an SD card smaller than the one you have.
BerryBoot will keep a compressed file of each system and you can install other systems later.

In short, PINN is perfect for beginners, BerryBoot is rather a good choice for power users and testers.

In this post, I’ll teach you how to create an SD card with BerryBoot and several operating systems on your SD card.

SD card preparation

The SD card preparation is almost the same as for PINN, so I’ll go faster:

  • Download the file corresponding to your Raspberry Pi model from the official website.
  • Extract the archive content to a new folder.
  • Format your SD card as for PINN (I gave all details and screenshots previously on this post):
    • Insert your SD card in your computer.
    • Go to your Disk Management tool.
      Depending on your OS, it could be in the computer management tool on Windows, Gparted on Linux or any other partitioning tool.
    • Delete all partitions.
    • Create a new one from 1G or more.
    • Format it in FAT32 (on Windows assign it a letter) .
  • Copy all the files from the extracted archive (the files inside the folder, not the folder itself) and paste them on your SD card (letter D: or E: for example on Windows).
  • Eject safely your SD card and insert it in the Raspberry Pi.

That’s it, your SD card with BerryBoot is ready.
Let’s move to the system installation.

Install your systems

Basic configuration

On the first boot you’ll get a configuration screen like this:

Set your settings as asked:

  • Enable or disable overscan.
  • Configure your network connection.
    It’s mandatory to download OS files.
  • Set your local settings (Wifi country, time zone and keyboard layout).

Click OK to confirm.
For WiFi configuration, it will ask you on the next screen to select your SSID and enter your password.

You can then select the destination drive for the operating system.
It’s one of the strengths of BerryBoot, as you can choose an external device to install and run your systems.
You can also encrypt the destination disk.

During my test, I chose a USB key. The wizard will then prepare the device before the installation.

Systems selection

You have now access to the system selection tool:

Another strength of BerryBoot is the OS selection you have access to.
By default, you already have systems not available on NOOBS: Ubuntu, Retropie, Kali Linux, …
But in the Network settings, you can also select a custom repository to get a lot more systems on this list.

If you want to try this feature, I’ll let you follow this documentation page.
You have to download an image list from the Internet and put it on a share in your local network.

Installation

Now, select an operating system from the list and install it.
You can only install one distribution at a time.
At the end of the installation, click “OK” to reboot the Raspberry Pi.

Try it

After the reboot, you’ll get a menu with only the first system you installed.
Yes, it’s not dual boot.
But you can add another system now!

Instead of booting the system, click on “Edit menu”.
You have now access to a menu from where you can install another system or change the default system to boot.

After installation, each new system will now be available in the boot menu.

💰 Make Money Sharing Your Raspberry Pi Expertise!
Help others navigate the world of Raspberry Pi with your insights.
Become a RaspberryTips Contributor!

Video

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Related questions

How do I add another system with 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 to choose the default OS booting with PINN? BerryBoot allows you to set a default OS to boot each time as PINN is booting the last one. But it may not be a good thing for everyone. It’s not possible to change this directly in PINN, but you can try to edit the PINN configuration file manually to do this.

How to resize the partitions created by PINN? Unfortunately, there is 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 an easy part. 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. Not sure I’ll try 🙂 You can find good pieces of information about how PINN manages partitioning on this GitHub page.

sdcard noobs partitions
Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

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

If you are looking for exclusive tutorials, I post a new course each month, available for premium members only. Join the community to get access to all of them right now!

Conclusion

That’s it, you now know two ways to use dual boot on your Raspberry Pi (or multi-boot).
Depending on what you prefer and what you want to do, it’s your choice to use PINN or BerryBoot.

PINN seems easier for a beginner and for the main distributions.
BerryBoot seems a little more complex but you can install any systems you want, with more configuration features.
And for experimented users, you can also try 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.

Whenever you’re ready, here are other ways I can help you:

The RaspberryTips Community: If you want to hang out with me and other Raspberry Pi fans, you can join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

The Raspberry Pi Bootcamp: Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

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.

Comments are closed.