Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was installing Ubuntu on a computer on which Windows XP was already installed. The computer has multiple hard drive bays, so I decided to remove the XP HDD and install Ubuntu on a blank HDD when it was the only HDD in the system. Unfortunately, if I now try to boot Ubuntu with the Windows XP drive in the second slot, nothing will boot. However, if Windows XP is in the first slot, it will boot fine.

Can anybody explain why this happens? When I was checking out the BIOS to see if something was messed up, I discovered that when Ubuntu is in the first slot, the BIOS doesn't recognize any HDDs. However, if XP is in the first slot, the BIOS recognizes both drives. Any hypotheses about why this happens?

Edit: Here's the setup. I have an old server with seven SCSI HDD slots. I have five identical 68 Gb SCSI drives, but I can keep only two plugged in. XP is still installed on the first drive, but I reinstalled Ubuntu on the second drive and had Grub overwrite the XP bootloader on the first drive. Now, the setup works fine, and I can use Grub to load either XP or Ubuntu.

However, if I plug in another identical blank HDD in the third slot, the computer recognizes only the XP drive and doesn't boot. Grub starts to load, then gives me a "disk not found" error. Running ls from the grub rescue prompt only shows one drive with two partitions.

I guess this is a BIOS problem, but I'd still like to know what triggers it. What about a blank drive could cause the BIOS to freak out?

share|improve this question
add comment

2 Answers 2

up vote 0 down vote accepted

From the sound of it, you've got Ubuntu and Grub on one drive, and Windows and its bootloader on the other drive. There's no software crosstalk at all, yes? If that's really the case, if the BIOS finds both drives OK when they're connected in one configuration, but fails to find the drives when they're connected in another, it seems to me to be a BIOS problem -- not a problem with your operating systems.

  • It might be a Master/Slave jumper setting that's wrong, if and only if these two drives are IDE drives on the same channel, but if they're on separate channels or they're SATA drives, that's not the case. If these are IDE drives on the same channel, you should set the jumpers on both drives to Cable Select. If that doesn't work properly, set one drive to Master and one drive to Slave.

    I have seen issues with drives from different manufacturers, where a Western Digital drive did not work correctly when set to Slave with a Seagate drive as Master. The same drives worked fine when jumpered the other way, and the Western Digital worked fine as Slave to another Western Digital drive. The moral is, you've got three possible jumper settings for two drives on an IDE channel: Master/Slave, Slave/Master, Cable Select/Cable Select. If one of them doesn't work, try another one.

  • It could also be a case of motherboard controller chipset weirdness, in that it doesn't interact well with the Ubuntu drive in that particular configuration (due to a firmware bug in the motherboard controller or the drive controller).

  • Finally, it might be a weird case of BIOS-gets-confused-easily, and you might fix the issue by clearing the CMOS and resetting the BIOS to defaults after connecting the drives differently.

It's also possible you're not telling us the state of the software accurately, and you've gotten Grub installed to the MBR of the XP drive but not the MBR of the Ubuntu drive. If that's the case, and the BIOS tries to boot from the Ubuntu drive, it'll probably spit out an error like "No Operating System" or similar. You can fix that by booting into Ubuntu and running the command grub-install /dev/sdX, but you'll need to replace "sdX" with the proper drive for that to work. If you can tell us a little more about your setup, we can be more help.

share|improve this answer
add comment

Check the jumpers on the drives. Maybe one of them is pre-set to "Master", while the other one is set to "Cable select".

share|improve this answer
    
no. set one to Master and one to Slave, or set both to Cable Select. CS is an all-or-nothing proposition -- it uses the cable location instead of jumpers to decide which drive is Master and which is Slave. if you jumper one drive to Master and the other to Cable Select and then plug the CS drive into the Master position, your system won't boot. –  quack quixote Feb 12 '10 at 4:33
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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