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

How to use dual boot on Raspberry Pi?
In fact, there are at least two ways to use dual boot (or multi-boot) on a Raspberry Pi:
– NOOBS: The default installer from the Raspberry Pi Foundation can do that 
– BerryBoot: An alternative for power users
Once you have the good tools, the installation is easy 

In this post I’ll show you how to use both and some extra tips about the multi-boot on Raspberry Pi

Dual boot on Raspberry Pi

Let’s start by 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’ll rather use multi-boot
Because there are a lot of distributions you can install on Raspberry Pi (there are 3 or 4 Raspbian 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:

  • Raspbian Lite: for basic services, like a web server, a torrentbox or anything else
  • OSMC: to watch videos (locally or with Netflix/Youtube) and listen to music
  • Lakka or Retropie: to play games sometimes, without losing all your ROMs and data each time you want to play

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

What do I need to use it?

You don’t need a lot of things
In fact, it’s just two or more operating systems that you install on the same SD card

The only thing you should think about is your SD card
Maybe for a basic installation a 8G SD card will be enough
But think about it, in one year, after adding GitHub downloads on Raspbian, movies and music and OSMC and a ton of ROMs on Retropie, how many space do you need?

So, I recommend starting with the biggest SD card you have, maybe 64G or more
By doing this you won’t have any space issue later
If you don’t have big SD cards, check my recommend product page for the best one to buy

Multi boot with NOOBS

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

What is NOOBS?

NOOBS stands for “New Out Of Box System”
It’s a tool to facilitate the installation process of a new operating system

Most of the time, you’ll have it already installed on the SD card when you buy a Raspberry Pi kit
And you can also create a new SD card with NOOBS on it

I don’t like this tool for basic installation and I often write that you don’t need NOOBS to install Raspbian on your SD card (check my Raspbian installation guide here)
I find this more complex for beginners than flashing directly the Raspbian image with Etcher

But for multi-boot, NOOBS 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

Prepare a new SD card

Enough theory, let’s move on to practice
As there is no image for NOOBS, 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 NOOBS for multi boot, I recommend doing this

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

This procedure is for Windows users, but you can do the same thing on Mac or Linux
On Linux use Gparted, on Mac OS you have 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 NOOBS before so I have a lot of partitions
    But most of the time you’ll have two
  • 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)

It was the more complex step from this tutorial 🙂
You can move to the next paragraph to continue the NOOBS installation

Download NOOBS

NOOBS is available on the official website from the Raspberry Pi Foundation
Click on the Downloads section or follow this link

There are two versions available:

  • NOOBS: Offline mode, all systems installers are already on the SD card
  • NOOBS Lite: Online mode, NOOBS will download only the needed files

I recommend taking the NOOBS Lite version
Except if 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 NOOBS to 2 or 3 GB (check the previous paragraph)

Put NOOBS 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 safely 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 NOOBS interface
If you use a wireless connection, there is an extra step

Configure the WiFi connection

If you don’t have any RJ45 cable available, you need to use the WiFi connection
As we chose the “NOOBS Lite” version, you need to download operating systems, so it’s not possible to use it without internet

On the first boot, NOOBS 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 your prefer)
  • After a few seconds, you are connected

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

NOOBS menu

The main menu from NOOBS look like this

You have access to a lot of systems, including:

  • Raspbian (Full, Lite, Standard)
  • 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
  • Screenly OSE: Operating system for digital signage
  • RISC OS: An ancient operating system, available for Raspberry Pi, I don’t really know yet what it is useful for
  • Windows 10 IoT Core: The Windows system adapted for the Raspberry Pi device
  • ThinLinX 30-day trial

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

Select systems

Now, our goal is to create a dual boot on the SD card (or a multi-boot maybe)
Check every system you want to use

It updates the needed space in real time under the menu
Keep an eye on it if you have an SD card smaller than 30G

In my case, I checked all the systems to test it for you 🙂

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 🙂

Note: I had an issue with LibreElec, if you have an error about an inaccessible meta file, try to un-check it

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:

noobs boot menu

Choose the operating system in the list and confirm
You can change at any boot, losing no 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

NOOBS 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 Ubuntu, Retropie or any “exotic” system, it’s not possible natively with NOOBS

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 to create multi-boot SD cards
It’s an alternative to NOOBS

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 others differences with NOOBS
BerryBoot is a true bootloader (and not only an installer).
NOOBS will create a partition for each system and “emulate” on boot an SD card smaller that the one you have
BerryBoot will keep a compressed file of each system and you can install other systems later

In short, NOOBS 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 than for NOOBS, so I’ll go faster

  • Download the file corresponding to your Raspberry Pi from the official website
    I don’t know exactly what they call “the quad-core” version, but this was not working on my brand new Raspberry Pi 3B+
    So tried the “original” link first
  • Extract the archive content to a new folder
  • Format your SD card as for NOOBS (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:

berryboot configuration menu

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 strength from BerryBoot, as you can choose an external device to install and run your systems
You can also encrypt the destination disk

For the test, I chose the SD card
Wait a few seconds for the SD card preparation

Systems selection

You have now access to the system selection tool

berryboot system selection

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, …
But in the Network settings you can also select a custom repository to get a lot more systems in 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 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 install
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

Related questions

How do I add another system on NOOBS? If you selected two systems on NOOBS 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 NOOBS? BerryBoot allows you to set a default OS to boot each time as NOOBS is booting the last one. But it may not be a good thing for everyone. It’s not possible to change this directly in NOOBS, but you can try this tutorial I found. Basically, there is a configuration file with the partition to start first and you can change this.

Is there another alternative to NOOBS and BerryBoot? To what I know, not really. But there is a NOOBS alternative called PINN that you can try. It seems to be a NOOBS improvement, that you can use to install also Arch Linux, OpenElec and Retropie on your Raspberry Pi. I didn’t try it yet, so I can’t give you an opinion about this.

How to resize the partitions created by NOOBS? Unfortunately, there is no way to do this automatically. Raspi-config doesn’t support NOOBS partitions and no menu offers this feature in NOOBS 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 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 other to find a free space. Not sure I’ll try 🙂 You can find good pieces of information about how NOOBS manages partitioning on this GitHub page

sdcard noobs partitions

Conclusion

That’s it, you now know two ways of using 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 NOOBS or BerryBoot

NOOBS 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

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

 

Leave a Comment