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.

Comments

  1. Fractal says:

    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. jc says:

    What? what about u-boot ?

  3. fartface says:

    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

    • Mike Bradley says:

      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.

      • g19fanatic says:

        or better yet run Windows on a VM

        • Anonymous says:

          Or better yet run them both under a bare-metal hypervisor.

          • Kris Lee says:

            What hardware you need for that?

          • Kostas says:

            @chris lee

            just an arduino and some cables

          • Anonymous says:

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

        • Blue Footed Booby says:

          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

          • RoadWarrior222 says:

            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.

    • Jeena says:

      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.

  4. netsurf says:

    The cubieboard is built on an A10. Have you guys just not seen it?

    http://cubieboard.org/

    I picked one up to toy with along side my RaspberryPI — it’s a very capable board. Coincidentally, it’s the one I’m using Berryboot on.

  5. Addidis says:

    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.

  6. Has anyone succeeded to make a headless Raspberry PI setup with fully encrypted SD card, which allows entering the disk encryption password remotely?

  7. Kris Lee says:

    What hardware you need for that?

  8. Andy Mc says:

    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.

    • Andy Mc says:

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

    • Andrew Scheller says:

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

  9. R says:

    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.

  10. Curtis says:

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

  11. I need to determine if my hard drive is online at boot time, can this be done with this boot loader?
    Like Grub has a failback option.

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

Follow

Get every new post delivered to your Inbox.

Join 97,582 other followers