Your problem is quite common; what happened is Grub was installed to the MBR (Master Boot Record) of your Windows drive so that you could boot into Grub on start up, but Grub's boot files are located on your external drive; thus you can't boot when you disconnect your external drive.
So if you can set your BIOS to boot the external drive on start up instead of the internal drive, then you can install Grub to the MBR of the external drive and boot either Ubuntu or Windows from the Grub menu; also you can restore the Windows MBR to your internal drive so you can boot into Windows when your external drive is disconnected.
If that sounds good to you, go ahead and boot into Ubuntu, and do:
Code:
sudo grub
grub> find /boot/grub/stage1
grub> find /grub/stage1
One of the above commands should return your main Ubuntu partition (or /boot partition if you have one) in the form of (hdX,Y) where X and Y are numbers, for example (hd0,4), but use whatever it returns as follows:
Code:
grub> root (hdX,Y)
grub> setup (hdX)
grub> quit
Next open up your Grub's menu.lst:
Code:
gksudo gedit /boot/grub/menu.lst
And change the "#groot=(hdX,Y)" where X and Y are numbers to:
At the end of the file, change your Windows entry (if you have one) to:
Code:
title Windows XP
root (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
Save the file, and run:
And let me know if you can boot the external drive OK. The last step would be to restore the Windows MBR to your Windows drive, which if you have a Windows Install CD, you can do by going to the "recovery console" and run:
Anyway, let me know how it goes.
Bookmarks