I am trying to setup Ubuntu on an external USB hard drive to see if I can reliably move it between computers. This has been far harder than I thought it would be.

I got the external HDD to boot and run quite well on my laptop (which is 6 months old, core i3, 4gb ram). I can switch between my USB drive's Ubuntu 16.04.2 and my local drive (which has both Ubuntu 16.04.2 and Windows 10). So far, so good.

When I try to boot that same drive on my desktop computer (7 years old, core i7, 12GB ram), it will not boot. When I set the external HDD to be my boot drive (in the bios), I get the following error:

error: file '/boot/grub/i386-pc/normal.mod' not found.

Entering rescue mode...

grub rescue>

When I set my local hdd to be my boot drive and then choose the external hdd from the grub menu, I get the following error:

error: file '/boot/bmlinuz-4.8.0-56-generic.efi.signed' not found.

error: you need to load the kernel first.

Press any key to continue...

Then I get bounced back to the local hdd's grub menu.

My question is, why can this drive boot fine from a newish laptop but not from a more powerful, but older, desktop computer?

I did install Ubuntu on the external drive from the laptop but I have tried many variations including using 17.04 and installing from the desktop. Regardless of what I try (including many of the recommendations from this site) I am unable to get my external drive to boot from my older desktop computer.

Any ideas are welcome.

  • i suspect the grub needed to boot it was installed on the sdd(/hdd) of your laptop - hence why it'll boot there & errors you listed. a fix for this may be installing grub & forcing it to point to usb drive rather than letting it pick (usually first hdd). note: the device name (sdb|sdc) for ext-drive may different between devices so you'll have to use a config that applies to both. (blkid etc) – guiverc Jun 27 '17 at 2:57
  • @guiverc I think I see your point. Is there a tool I can use to check/modify the grub settings? Is it simply editing a file or something I need a utility to access? – John Jun 27 '17 at 9:26

when it comes to EFI/uefi I can't help as I've mostly dealt with legacy mode. most if not all /boot/* files can be modified; but the MBR of the 'boot' drive is a binary sector; so must be overwritten. I also can't help with fixing w10.

i've only done it with commands (and not often enough to remember) so won't in case of misleading/error.

a quick search found https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows https://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/ http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd

the first (help.ubuntu) looks dated; and includes a link to boot-repair (which I recall good luck with once on 14.04; but ages ago). both are dated 2015

the second I've used successfully once; but also had it fail for me too. (2017)

the third I didn't see a date for; I liked it as I recognize the commands, but it provides no explanation so you'll have to rely on man. (I think the third is from How can I repair grub? (How to get Ubuntu back after installing Windows?) which is old)

this isn't an answer; nor what you wanted - but I'm hoping contains some clues so you can help yourself. i've used boxes where an external drive can change according to which usb-port is used (motherboard had more than one usb controller) so in my experience its play until you get it working. I also have no fixing experience with w10 so can't include what it (if anything) it changes. [this is a big comment really!]

| improve this answer | |
  • Thanks for the answer but since I've set the bios to boot from the external drive (on both computers) and it works on my laptop, why would grub need to be repaired to run on the desktop? Also, I've run boot-repair many, many, many times on my desktop with the external drive connected. Again, it works as is on my laptop with the same configuration (bios set to boot from external drive). – John Jun 27 '17 at 16:14
  • the MBR (a single sector meaning 512bytes for any x86 or what we used to call IBM compatible) doesn't allow for much of a program. thus on any OS it really only contains a pointer to another part of the disk. with grub it's called grub part 1. part 1.5 & 2 exists in the /boot partition to which grub points. I suspect the /boot (grub parts 1.5 & 2) are written to the external USB drive; but part 1 is written to the hdd/sdd on the laptop. if what I think is correct; the drive will hang, boot normal hdd or other option but never boot external drive on any other machine except laptop. – guiverc Jun 28 '17 at 5:23
  • note: my last comment relates to a non-EFI/uefi boot; or in legacy mode. its a quick overview (at best) – guiverc Jun 28 '17 at 5:29

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.