I have a Macbook Pro that is currently running OSX. I installed ubuntu on a Windows laptop I had lying around to try it out. I liked it a lot but I didn't want to commit any space to it on my internal storage on my Macbook Pro (my internal storage is not very large to begin with).

I wanted to install ubuntu to a larger external (bootable) hard drive. I downloaded ubuntu 12.04 (.iso file), and then I burned the image to a DVD. I booted up my Mac in the "try ubuntu" mode. Then I setup my wireless connection and clicked "install ubuntu". Then I clicked the "something else" option.

This is the guide I used to partition my hard drive

Note: I made sure to select my external hard drive (Seagate 500 gb external drive) for the boot loader installation

Once I had everything partitioned correctly, I started the installation which took about 15 minutes. I rebooted my Mac and it booted directly into ubuntu. I installed a bunch of updates and then I shut my computer down. I wanted to boot up OSX again so I removed the hard drive and turned my computer on. It came up with the no such device: grub rescue error.

Here is a question about the error for those who are unfamiliar:

So what this means is that even know I told the installer to put the boot loader on the external hard drive, it put it on my internal hard drive. It took me days of screwing around to try to get grub off, I ended up just restoring my Macbook from my Time Machine.

This is obviously a problem in ubuntu 12.04. It seems like if you want to install ubuntu 12.04, you should probably just partition your internal because it has issues with installing to an external hard drive. I don't want to install ubuntu on my internal hard drive because if I do that neither OS will have a practical amount of space.

Now here is my question:

Is the problem fixed in ubuntu 13.04? If the problem is not fixed in 13.04, is there a build of ubuntu where it is not a problem?


How can I install Ubuntu on an external USB Hard drive WITHOUT installing Grub (or Grub2) onto my Mac internal storage?


Just a theory here, but might be worth trying. Could you boot to your Ubuntu on the external HDD, run Boot-Repair and select Advanced Options. Assuming you don't have Boot-Repair installed:

Referenced from this source:

(Open a terminal, and type (or copy-paste) the following command:

sudo add-apt-repository -y ppa:yannubuntu/boot-repair && sudo apt-get update

Press Enter, then type the following command:

sudo apt-get install -y boot-repair && boot-repair

Once Boot-Repair is installed, you should be able to choose Advanced Options, then choose which OS to boot by default (OS X in your case). You would also want to choose "Place GRUB into: " and select the partition that you have Ubuntu installed into (your external drive).

Theoretically, this should keep GRUB from interfering from your OS X bootloader while giving you the option to boot Ubuntu when your External HDD is connected. I'm at work currently and therefore away from my Ubuntu Desktop, so I am unable to try this. Let me know how it goes! Good luck!

| improve this answer | |
  • Don't do this. If you bork your EFI install you will spend HOURS (maybe days) trying to get it to back. You never want to install grub on /dev/sda in your case. – coteyr Jun 22 '13 at 11:12
  • To be clear that's not a bad idea but if you add grub to sda at any time with GPT on on a mac and no MBR emulation, well.... Time Machine and Internet Recovery. – coteyr Jun 22 '13 at 11:13
  • @coteyr so then, install it to /dev/sdb instead. – mchid Dec 19 '14 at 15:13

Ok, here is my "best" answer.

First, grub-update should write it's updates to the device represented by "/" when doing update-grub. That's the core of your problem.

'apt-get' will run update-grub from time to time, and if update-grub tries to write to the wrong device... Then your back to the nightmare of trying to get the Mac to actually boot far enough to even read a CD. In addition there doesn't seem to be a way I can find to get update-grub to not run.

What I have done in the past to get this to work is cludgy, but it works.

  1. get refit up and running.
  2. Next Install Ubuntu and Grub-pc to the USB device.
  3. Boot Into linux,
  4. apt-get install grub-efi
  5. reboot

What this does is leaves the MBR version of grub on the usb device and instead "updates" the efi version of grub. This makes an extra entry in refit, but has little effect (other then annoying).

Unfortunately it also means you have to update grub by had from a recovery CD every single time. You can't update it from your local install because grub-update would write to the wrong device again during install, and the normal grub-update is only writing to EFI files.

It does however keep the USB version of Linux booting, and without borking your hard drive to the point that your trying to find pre-Lion install disks to get it to work again.

The very best answer would be to just disable auto running of grub-update, but I have yet to find a way to do that.

| improve this answer | |
  • Have you tried to install grub to the MBR of the external drive (assuming /dev/sdb) just run sudo grub-install --root-directory=/ /dev/sdb ? Then, set the external drive as the first bootloader device so that when it's connected it will run grub from there. – mchid Dec 19 '14 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.