I installed Ubuntu (2.6.15-26-amd64-k8 ) on a primary partition on my SATA harddisk (/dev/sda). I use Grub as boot loader. I can successfully boot Ubuntu and Windows XP (which is installed on another primary partition on the same harddisk).

For backups I use an external SATA harddisk. When I boot with the external drive connected, Grub loads normally. I can boot Windows XP normally. Ubuntu however shows:
Mounting root file system...
Waiting for root file system...

and after a few minutes I end up at a Busybox prompt.

Checking the entries in /dev I discovered that my first harddisk is now /dev/sdb, and the second (external) harddisk is now /dev/sda.

The BIOS is reporting the disks in the correct order, Grub is starting from the correct disk, it can start Windows XP and Ununtu correctly. It's only Ubuntu that sees the drives in the reversed order.

To summarise:
1. boot Windows XP without external disk attached: OK
2. boot Ubuntu without external disk attached: OK
3. boot Windows XP with external disk attached: OK
4. boot Ubuntu with external disk attached: Error

How can I solve this problem with number 4 above (preferably in such a way that the other three are not disturbed)?