Booting Ubuntu Linux with the Chameleon bootloader

May 16th, 2009

Apple / Mac

***Credit goes out to RCC2k7 over Ubuntu Forums. He wrote the instructions; I just made them easy to find.***

linux penguinUbuntu and Chameleon: wouldn’t it be great if they got along? You could completely ditch Windows and simply run Linux and Mac OS X. By default, you are unable to do so.  The issue lies with a conflict between GRUB, Ubuntu’s default bootloader, and Chameleon, the bootloader widely used for booting hackintoshes/hackbooks.

GRUB and Chameleon both install themselves onto the MBR (Master Boot Record). The MBR can only remember the most recently installed bootloader, disallowing you to boot OS X from GRUB and Linux from Chameleon.

To satisfy both GRUB and Chameleon, you need to run a couple of commands in the Ubuntu/Linux  Terminal. Doing so will move GRUB from the MBR to the actual Linux partition, allowing Chameleon to recognize Linux and accordingly list it as a bootable OS. To achieve this, simply do the following:

1. Boot into Ubuntu.

2. Launch Terminal.

3. Type df and press RETURN or ENTER.

4. Note the first entry on the list – the one mounted as /. This is the one we want. In my case it was listed as /dev/sda3.

5. Type sudo grub-install /dev/sda3 – replace /dev/sda3 with the correct entry for your system.

6. Enter your Password and press RETURN or ENTER.

7. Close the terminal window and restart your system.

8. Boot into OS X and reinstall Chameleon.

9. Leave a comment below about how everything went for you.

While you’re at it, you may want to access your Ubuntu files from within OS X.

If you found this guide useful then feel free to make a donation by clicking the link at the end of the Authors Mini-Biography. Any amount truly does help.

, , , , , , , , , , , ,

About Thomas

Thomas is a self-proclaimed guru (just ask him). He enjoys long walks on the beach, running Mac OS X on his Inspiron 1525, and tweeting about nonsensical life happenings. You can follow Thomas on twitter, email him, or search the interwebs for all his personal information. Neither should be too difficult.

View all posts by Thomas

142 Responses to “Booting Ubuntu Linux with the Chameleon bootloader”

  1. whchaz1027

    All I can say is, THANK YOU! I’m about to resetup my OSes, install ubuntu along with Windows in order to boot ubuntu under Windows and windows under Mac OS X. I really believe that there’s a shortcut on this job, and my browser direct me here.

    And now, just 2 problems left to be solved, in order for me to become satisfied with my setup.

    THANKS A LOT Sir Thomas.

    Reply

  2. Ben

    I want to dual boot windows 7 and ubuntu without osx so how can i install chameleon in windows or ubuntu

    Reply

  3. Lenkzler

    In my case I make 2 hard drive for 2 OS is :

    hda in sata01 for OSX
    hdb in sata02 for red hat enterprise linux 5.5 x86_64

    1. before fix this trouble I disconnect hda (osx) from computer and leave only hdb in sata02 for rhel then boot it
    2. open terminal type : fdisk -l

    [root@localhost ~]# fdisk -l

    Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/sda1 * 1 13 104391 83 Linux
    /dev/sda2 14 121601 976655610 8e Linux LVM

    3. type : df

    [root@localhost ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
    942098076 4606736 888863628 1% /
    /dev/sda1 101086 12544 83323 14% /boot
    tmpfs 1029464 0 1029464 0% /dev/shm

    Question : where is my sdaX for install GRUB sudo grub-install /dev/sdaX

    Thank in advance

    https://lh4.googleusercontent.com/-exWvKPCYOwg/Tqp6hDi1ktI/AAAAAAAACsw/4wX38NmqvFY/s489/Screen%252520shot%2525202011-10-28%252520at%2525204.47.45%252520PM.png

    Reply

    • Thomas

      You’re using an LVM so things are a little different for you. In Terminal, type pvdisplay and note the entry listed for PV Name:. You can then use this entry for step 5.

      Reply

  4. Rivo

    I have follow your instruction.. but still chameleon cannot detect the linux partition while booting.
    Ps: The Linux Partition using ext4 Journaled

    regards,
    Rivo

    Reply

  5. Gary

    This worked brilliantly! Thanks so much! Was about to bash my head against the wall with frustration.

    Reply

  6. Marionumber1

    Could I COPY, not move GRUB to the partition? Which would retain it in the MBR? Does grub-install do that or not?

    Reply

  7. amin

    Thanks
    in my case installing grub was sucsess only by force (sudo grub-install /dev/sd** -f)

    Reply

  8. Julian

    Hey guys,
    I installed OSx86 10.6.6 properly on my pc, After that I installed ubuntu, but chameleon is still loading, and only showing my Hackintosh volume to boot.
    Any of you got any ideas, for solving this problem?
    Tanks for caring.
    Julian

    Reply

  9. jserv

    Hi,
    I get an error when I try this method. Here is what I get:

    joedesu1@j-P55A:~$ df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sdd1 73744616 3852128 66146440 6% /
    none 4085852 292 4085560 1% /dev
    none 4092704 212 4092492 1% /dev/shm
    none 4092704 88 4092616 1% /var/run
    none 4092704 0 4092704 0% /var/lock
    joedesu1@j-P55A:~$ sudo grub-install /dev/sdd1
    /usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
    /usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
    /usr/sbin/grub-setup: error: if you really want blocklists, use –force.
    joedesu1@j-P55A:~$

    What am I doing wrong? Thanks in advance.

    Joe

    Reply

    • Thomas

      Your setup is just playing a little “hard to get.” ;)

      As suggested, try adding the -force flag. Type “sudo grub-install /dev/sdd1 –force” and see if that works for you.

      Reply

      • jserv

        Hi,
        Seems to have gotten me to a next level. Here is what I get now:

        More than one install_devices?
        Usage: grub-install [OPTION] install_device
        Install GRUB on your drive.

        -h, –help print this message and exit
        -v, –version print the version information and exit
        –modules=MODULES pre-load specified modules MODULES
        –root-directory=DIR install GRUB images under the directory DIR
        instead of the root directory
        –grub-setup=FILE use FILE as grub-setup
        –grub-mkimage=FILE use FILE as grub-mkimage
        –grub-probe=FILE use FILE as grub-probe
        –no-floppy do not probe any floppy drive
        –recheck probe a device map even if it already exists
        –force install even if problems are detected
        –disk-module=MODULE disk module to use

        INSTALL_DEVICE can be a GRUB device name or a system device filename.

        grub-install copies GRUB images into /boot/grub (or /grub on NetBSD and
        OpenBSD), and uses grub-setup to install grub into the boot sector.

        If the –root-directory option is used, then grub-install will copy
        images into the operating system installation rooted at that directory.

        Report bugs to .

        What should I do now? Thanks

        Joe

        Reply

  10. Alex Teplov

    Hello! I’ve got a problem!
    I’ve got a PC with a GUID hard drive, but i have my OSX partition formated, so there is only Ubuntu there right now.
    I boot using GRUB2 but i want to install Chamelion and to boot using it.
    How can i do it using Ubuntu?

    Reply

  11. Anthony

    Hi, I’ve followed your guide, and I had quite a strange issue.

    First time booting up Chameleon after reinstalling it, Linux showed up fine – I selected it and booted up. I used it for a short period, then rebooted. This time when it rebooted, Linux didn’t show up in Chameleon.

    When I used the Linux partition, I didn’t change anything which should have affected the boot process. Furthermore, after I reinstalled Chameleon again, the exact same thing happened (first boot after reinstalling Chameleon, Linux shows up, next boot it doesn’t).

    Thanks for any help

    Reply

  12. John

    Hi, thanks thomas for the info i will test… i have now iTAKOS and win7 run perfect in my pc, but i will install ubunto in my pc (excuse my bad English)

    Reply

  13. Anupam

    What if I want to boot Windows instead?

    Reply

  14. Outis

    Hi, your blog was the first hit that came up when I searched for “grub vs chameleon” today.

    I’ve been tinkering with hackintosh on my new netbook for less than a month now. It’s fun, but the Intel Atom CPU sure is much slower than a Core 2 Duo.

    It’s pretty easy to boot OS X from Grub. I haven’t had the time to read through all the comments to your blog entry to see if that’s been mentioned already. Perhaps you can update your blog entry to reflect that. If OS X is in partition 3, the menu.lst entry for Grub can just be:
    title Mac OS X
    rootnoverify (hd0,2)
    chainloader +1

    My queest for the day was the search for information on which bootloader was the better one to use as primary. If Grub is the primary bootloader and you choose OS X from its menu, you will get the Chameleon menu screen unless you have quiet boot turned on. That’s a lot of timeouts to wait upon for unattendend booting.

    Reply

    • Steen

      Hmm, cool about the OS X in GRUB thing, I’ll look at it.
      If booting takes too long, set the timeout for GRUB to something like 3 seconds. The timer stops once you press a button, so you don’t need much time for that. Then set Chameleon on quiet boot.
      Or switch around if you like the looks of Chameleon better. You could also just set the timeout to 0 then it’ll boot the first option instantly, good alternative to quiet boot.

      Reply

  15. Matt

    Thanks for the posting. I followed the instructions and got things working for a while but now when I try booting to the Ubuntu partition Grub goes to grub rescue with “error: no such partition”. Booting from USB to the Ubuntu installer shows my Ubuntu partition intact and I when I run Ubuntu from the USB drive I can mount the partition from Gnome through the Places menu.

    Any suggestions on fixing grub? Is there a way to reinstall grub from the live USB back onto the partition? When I try grub-install with the partition mounted via gnome in /media I get an error message about it not being mounted in /dev. I might be missing a basic Linux command to properly mount the partition into /dev, I’m new at Linux.
    Thanks

    Reply

    • Thomas

      I’d love to give you some helpful information, but I have extremely limited knowledge in Linux. Sorry.

      Reply

      • Matt

        I found more info on Ubuntu sites about reinstalling GRUB from the ubuntu live CD/USB. This site has info http://ubuntuforums.org/showthread.php?t=1195275 (Section 13- Reinstalling GRUB 2 from LiveCD). Those instructions installed GRUB2 on the MBR, but from there I was able to restart, and follow your original instructions to install GRUB on the Ubuntu partition and then reinstall Chameleon. I fixed this a few weeks ago and haven’t had any problems since.
        Cheers

        Reply

  16. Lex

    Great tutorial! Okay, so I tried it and have everything… well, almost everything working. I installed OS X with Chameleon 2 RC4 and used the free space to install Ubuntu Netbook Remix 10.04 (GRUB2!?) following the tutorial word by word. I typed [df] in a terminal, [sudo grub-install --force /dev/sda5] and ignored all the warnings. Afterward I booted with OS X USB into HD OS X, installed Chameleon 2 RC4 again and rebooted, removing the USB…

    Everytime I boot it goes automatically to GRUB menu and not to Chameleon. The only way for me to boot back into OS X is with the USB stick. If I boot with USB OS X I do see Linux as an option and I can boot through Chameleon via Grub to Ubuntu.

    Any suggestions would be very much appreciated.

    Reply

  17. Steen

    Erm, okay, I know this is a bit off the guide, but I’m trying to do the same, but with Jolicloud (Which is based on the Linux kernel). Jolicloud doesn’t have a terminal (Of what I can see) so I’m trying to install GRUB from an Ubuntu Live CD. I already know that the root partition of Jolicloud is /dev/sda3, and I even tried mounting it first. But whenever I run “grub-install /dev/sda3″ it returns “Could not find device for /boot”
    Exploring the mounted device, showed me that there was a /boot directory. It’s just not on a different partition as I already had 3 other partitions. 2 for Windows, 1 for OS X. What should I do?

    Reply

  18. Rishi

    Hi Thomas,
    After I move GRUB to the Ubuntu partition, how do I boot into OS X? GRUB overwrote Chameleon, right? So it’s no longer located on the MBR? Thanks for the guide and your help!
    -Rishi

    Reply

  19. D A

    Thank you very much. I recently found an old 160gb PATA drive and decided to put ubuntu on it. After doing so Chameleon did not recognize it, yet I was able to boot into both systems by holding f12 at boot. I read your tutorial, followed all the instructions and it now works perfectly. Thanks!

    Reply

  20. HsingH

    Hey guys…. every time I do this it breaks my bootloader and gives me (Error 17: Cannot Mount Partition) when I try to load Red Hat through Chameleon…. any ideas? I have three HD (one linux, one osx, and one windows7) and there is only one partition on the linux drive. It is possible for me to boot the HD from the bios and it works…. sometimes (always if I don’t install the grub again) can anyone help me out…. Thanks….

    Reply

  21. Jai

    OK.. I have been all night up to solve the triple-boot OSX, WIN 7 and Kubuntu and FINALLY I GOT IT RIGHT.

    This method worked for me. Still you have to give credit to this forum author…

    I had win 7 installed and then OSX (iATKOS 7) and was working fine. I installed kubuntu and then lost chemeleon. Only Grub was loading that didn,t boot me into OSX. Now I was stuck with ugly grub boot that didn’t boot me into OSX.

    After reading several forms, this worked for me.
    - using iATKOS install DVD, I installed only chemeleon. (thanks to this forum)
    - next, got back chemeleon but I lost win 7 login. I was able to boot into kubuntu and OSX. Tried Win 7 install dvd to repair but didn’t work
    - luckly, I had ACRONIS BOOT CD (with Disk Director and true image)
    - used this cd and boot into Disk Director. Made win 7 partition active
    - Using win 7 install DVD, did repair and this time it worked.
    - Now I was only booting into win 7
    - booted back into ACRONIS DISK DIRECTOR boot cd and now made OSX partition active.

    Thats it..now all 3 OS works…Chemeleon looks awesome.

    Good Luck..

    Reply

    • Thomas

      Jai- All you really had to do was follow the few, very simple steps in this guide after installing Kubuntu and you would have achieved the same results.

      Reply

  22. Mark

    Thomas I have been using the terninal now to load my software & I tried the command you told me yestreday & it worked. Thanks so much for all you help . Thanks Mark

    Reply

  23. Mark

    Thomas , I enetered the original command & got the same response do I eneter something different to force it? Sorry for writting so many responses I just love Ubuntu & want to keep it running . Thanks Mark

    Reply

  24. JohnK

    Mark,

    I received exactly the same message. I went ahead with the command though and no apparent damage was done.

    Reply

  25. Mark

    Thomas, I am getting closer the command worked but gave me a warning saying /usr/sbin/grub-setup:warn:Attempting to install GRUB to a partition instead of the MBR. This is a bad idea../usr/sbin/grub-setup:Warn:Embedding is not possible. GRUB can only be installed in the setup by using blocklists. However blocklists are UNRELIABLE and its use is discouraged.. /usr/sbin/grub-setup: errorr: if you really want blocklist use — force.

    Reply

  26. Mark

    Hi Thomas, I emailed them again this morning hope you receive them . Thanks Mark

    Reply

    • Thomas

      Yes, I did receive your emails this time. The correct command would be sudo grub-install /dev/sda1. I know that you tried this command last time and got a “command not found” error, but I think that was because you forgot to leave a space between “grub-install” and “/dev/.”

      Reply

  27. Mark

    Hi Thomas, I sent screen shot of terminal & first shot Ubuntu 300 hd & other hard drives along with last three shots of Ubuntu hard drive . I tried in the terminal sudo grub-install/dev/sda1 & it said command not found tried dev/sda5 thought in that partion of Ubuntu hard drive might pichuop in Chameleon command not found is all I get in response . When I installed Ubuntu I clicked Guided use entire disk EXT 4 & adavanced Options checked install boot loader. Thanks for trying to help Mark

    Reply

  28. Mark

    Hi Thomas, Yes I typed in the Ubuntu terminal df first & that brought up another screen showing detail’s then I typed sudo grub-install/dev/sda3 & it said no such command . should I type sudo grub-install/dev/sda1. When I go into the hardrive on Ubuntu showing all three drive I click on the Ubuntu drive & it show file can I change it there. Thanks Mark

    Reply

    • Thomas

      Find the disk with Ubuntu installed on it and replace /dev/sda3/ with that info. I can’t really be more specific than that. If you’d like, send me a screenshot of what you get after typing df and I can tell you what to type.

      Reply

  29. Mark

    Hi I have three hard drive one with OSX Snow Leopard & 2nd with Windows 7 & third one Ubuntu 10.04 . I have chameleon loaded on the OSx drive & can boot OSx & Windows does not show Ubuntu in Chameleon . I changed bios to load Ubuntu first & it load no grub showing when it loads. I went to the terminal & type what you wrote on the first step said no order found . When I open Ubuntu it show all three hard drives dev/sda1 ubuntu & dev/sda2 win & dev/sda3 OSx can I put Chameleon on the Ubuntu & acess all three drive that way. I am a beginner and just trying my best Please help when you have time . Thanks Mark

    Reply

    • Thomas

      When you say you typed the first line into Terminal and got the error, I’m assuming you meant sudo grub-install /dev/sda3 and not df. Remember that you have to replace /dev/sda3 with the correct information for your own Ubuntu Drive. This should resolve your issue.

      Reply

  30. JohnK

    Thomas,

    Thanks for the response. I followed your guide and now am able to boot OSX, Windows 7, and Ubuntu from Chameleon. I do still have one issue that you might be able to help me with. When I boot into OSX, just as the UI appears I get a dialog reading as follows: “Disk Insertion The disk you inserted was not readable by this computer”. It then gives me the choices of “Initialize”, “Ignore”, and “Eject”. I don’t see the dialog if I remove the Ubuntu drive so I’m sure that one is what OSX is complaining about.

    The end result is that I cannot mount the Ubuntu drive in OSX. I really don’t care about that problem, rather it is just the irritation of seeing that message every time I boot.

    Thanks for any help you may be able to provide.

    John

    Reply

  31. JohnK

    Thomas,

    I’m sorry that my comment offended you. That was not my intent. The way I read your guide it appeared to me that you were addressing the problem in the context of Chameleon and Grub being in two different partitions on one drive. Thanks for your help.

    John

    Reply

  32. Alexander Brown

    Thomas – I know this is a bit unrelated, but could you help me? I installed Vista AFTER OS X, and now I am dual booting with the Vista Boot Manager. However, I want to replace that with Chameleon. I’ve been thinking about simply reinstalling it, but will that render my OS X unbootable?

    Help would be appreciated.

    Reply

    • Thomas

      Alexander Brown- My apologies for the delayed response. To use Chameleon over the Vista bootloader, simply follow the first set of red commands in this guide. Do note that though the commands list to create a new partition, you can simply skip that step and select your current HFS+ partition. So, to reiterate, the commands you would follow would be list disk, select disk, list partition, select partition, active. This will set your OS X partition as the active partition, thus making it the default bootloader. Also note that Chameleon may have to be reinstalled after following this.

      JohnK- That was the intent of the post, though I should have specifically listed that multi-drive booting was supported as well. My apologies for the confusion.

      Reply

  33. JohnK

    Did you actually read my post? This thread is about multibooting on one drive. My question regards booting from three separate drives.

    Reply

    • Thomas

      I did read your post, and I understood it completely. My question to you now is if you actually tried my guide. As long as you install GRUB to the partition, it will work for you. Next time actually try the guide before being a smart ass in the comments.

      Reply

  34. JohnK

    I have a slightly different problem. I first installed OSX896 on a drive and got everything working. I then installed Windows 7 on a second drive. When I boot into Chameleon it sees both OSX86 and Windows 7. I can boot into either one with no problem. Last night I installed Ubuntu on a third drive. But when I boot into Chameleon it still sees only OSX86 and Windows 7 – not Ubuntu. I reinstalled Chameleon but still have the same problem. As a side not when I boot into OSX86 through Chameleon OSX immediately tells me there is an unrecognized drive and wants me to eject it or initialize it. Any ideas?
    Thanks.

    Reply

  35. Alexander Brown

    Is this guide for installing Ubuntu BEFORE or AFTER OS X is installed?

    Reply

Trackbacks/Pingbacks

  1. Replaced Chameleon with Grub...Help. - May 19th, 2010

    [...] no error message, it just restarts after a few seconds. I've tried to move Grub using this method: Booting Ubuntu With The Chameleon Bootloader|Daily Blogged But haven't gotten any love. At this point I'm thinking the best bet would be to overwrite GRUB [...]

Leave a Reply