Multibooting the Raspberry Pi

berryboot

Those of us have been dual booting Linux, Windows, and OS X operating systems for a while will be familiar with bootloaders such as GRUB and its ilk. Surprisingly, though, we haven’t seen a bootloader for the most popular computer of the last year – the Raspberry Pi. It makes sense to have a bootloader for the Raspberry Pi; with dozens of different distributions from Raspbian, Occidentalis, and a bunch of  more esoteric distros, we’re surprised we’re only just now seeing a proper bootloader for the Raspi.

Berryboot is extremely simple to install – just copy it onto a FAT formatted SD card and you can install multiple OSes on your Raspberry Pi. On booting, Berryboot shows a dialog box of all the installed operating systems, with new ones able to be installed over the internet from a Berryboot menu.

You can grab Berryboot over on the gits. Berryboot also works with those Allwinner A10 single board computers, but the Hackaday tip line hasn’t seen hide nor hair of those boards.

23 thoughts on “Multibooting the Raspberry Pi

  1. Alright, I’ve played with berryboot some. It’s really pretty annoying, and I would fix it if I knew how (compiling it has not gone well for me).
    Firstly, it will do headless operation! Simply add ‘vncinstall’ to cmdline.txt. Sadly, vnc is the only way you are getting in.
    Secondly, while you can install to multiple devices (USB drives, sd cards), it will only read from one of them at a time.
    Thirdly, it’s error tolerance is awful: If the device it expects a system on is missing the system (or, in the case of a USB drive, not plugged in), it won’t give the option to look elsewhere, berryboot just assumes you want to reformat everything. There is no way to tell it to look elsewhere from that state, only reformat and redownload.
    If you run headless, you will not get a usable command line from berryboot. Easily solved by putting ssh on it, but you’ll have to do that yourself.

    Essentially, it needs some work (put ssh on, fix the no system found state, put a console on screen 0), though it has a lot of potential.

  2. I’ve had a rasPi “multi-bootloader” ever cince it existed…. It’s call swap the SD card. Honestly Class 6 4gig cards are like $4.00… I have a nice handfull of them for the RasPi

    1. Yep, I agree, if I am gonna run headless, then I don’t want to have to do anything to boot.

      I have never multi booted, waste of time, if I want a windows and Linux box, then I have two boxes. Or I run Linux in a vm.

          1. @Kris Lee: You don’t need anything too special, just a multi-core PC with lots of RAM.

            On the software side, all you need is a hypervisor like Xen, ESXi, or Hyper-V. (There are legitimate free packages of all three out there, some more full-featured than others.) Some let you manage them locally (with a keyboard and mouse plugged right into the host), but some need to be configured remotely with a tool or web interface, so you don’t want to do this with your only PC.

            Once you have your host up and running, you can run pretty much any OS on it you want, depending on the hardware it supports and how much memory you have. You still have to think about licensing with commercial OSes, just bear in mind that a VM counts as a PC. If you can get a Microsoft TechNet or Dreamspark account, you’ll have access to full copies of most Microsoft products for non-production experimental use. (BSD and Linux naturally don’t cost anything.)

            Most desktop processors now support virtualization extensions. Some midrange desktop processors can pass hardware directly to VMs (so you can have your graphics card tied to a VM for gaming support, for example). That increases performance, but isn’t a requirement. Pretty much any processor made in the last 5 years will do virtualization no problem.

            You’ll need a lot of RAM to run multiple OSes side by side, but thankfully desktop DDR3 is dirt cheap and you don’t need fully buffered error correcting memory just to play with some VMs. If you run a lot of VMs together off of one spinning disk you might run into disk bottlenecks, but just two or three on a reasonably fast disk shouldn’t be too bad. If you get a couple 7200 RPM SATA disks and spread your virtual disk files around you can help reduce this problem. (Don’t use ‘green’ drives, that’s just asking for trouble.)

        1. VMs have always felt like magic to me. No matter how much I learn about them and how they work it’s always “I have a computer running inside my computer :O”

          Has anyone else installed Windows 3.11 inside of DOSbox just for the hell of it? That start up sound gives me the warm fuzzies. :3

          1. I might have done by now, if I could get DOSbox on Android running any faster, seriously, I’ve seen x86 emulated faster on a 14mhz 68020. Though to be fair to dosbox it was intended for slowing multi ghz x86es down to original PC/AT speeds so old games would work better.

    2. My SD-card slot on the RP broke the same moment I tried to put in the card for the first time. I fixed it with some sugru, but now I’m not able to swap SD-cards so it would be more then cool if there was a bootloader which I could use to chose to boot from my USB pen drive which I can get out and write on it on my PC without problems.

      Second thing is, I don’t have a SD-card reader for my PC, not on my ThinkPad, not on my MacBook and not on my iMac, but all of them do have USB.

      And third, I kind of think that it is a software problem which could be quite easily solved, you know like grub does it.

  3. My pi has multiboot , If i put in the 32gb sd I get a media center.
    If i put in one of the other 12 sd cards it has what ever is on those.

    I dono this seems pointless when changing a drive is as easy as swapping an sd.

  4. Berryboot has been around for months now. It’s a nice idea just too limited. Last time I used it you can not update any of the installed OS’s as it would break the bootloader.

    1. Also I remember asking for CEC support for this on the RPi forums when this was at v1.1 and being told that there was no plan for it by the dev. Looks like he changed his mind for v2.0. Guess he got over his issues with the “undesirable dependency on the Broadcom /opt/vc/lib userspace libraries”.

    2. Dunno if it’s changed in later versions, but when I looked at the first versions of berryboot it was merely a chroot wrapper, which is obviously a bit different to a ‘real bootloader’.

  5. Getting a bootloader with a GUI working on an ARM device is actually non-trivial – the differences between the different devices mean it’s a lot harder than on x86. uboot does technically allow multiboot, but it’s not particularly easy to use. So props to this guy for getting one working.

  6. Some of you guys seem to be forgetting what the RPi is for…

    In a TWC having multiple SDs isn’t trivial. Heck, they may only have 1 or 2 per machine, and letting little hoodlums swap them out isn’t a good idea. If you are going to be using the RPi for multiple situations, it makes sense from a UE to *be able* to boot different installs.

    Also, I use it this way b/c I don’t like swapping SDs in my LEGO case. So, a 32GB card w/ BerryBoot, Raspbian, OpenElec/Xbian, and PuppyLinux let me do what I want to w/ it.

    As a side note, I got XBian to work w/ BerryBoot. See http://forum.xbian.org/thread-477.html (I’ll need to update it to Alpha 5 soon).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s