How do I force the SATA drive to be /dev/sda when IDE drive is present?

reikred at gmail.com reikred at gmail.com
Wed Jun 18 15:53:38 UTC 2008


Richard Shaw wrote:
> 2008/6/18 Mikkel L. Ellertson <mikkel at infinity-ltd.com>:
>> Kevin J. Cummings wrote:
>>> The kernel assigns SCSI device names in the order it finds them from
>>> searching the hardware.  That's usually the boot device first.  Check to see
>>> if you can change the boot order in your BIOS, that usually helps.
>>>
>> This is not going to help - the kernel does its own search, and does not
>> rely on the BIOS order. (Grub does.) You could change the initrd so it only
>> has the SATA drivers, so the SATA drive would be the first one found.
>>
>> Mikkel
> 
> Let me know if my thought process gets off track, but if the BIOS
> points to the right boot device and grub listens to the BIOS that will
> at least get you to the initrd, right? From that point couldn't you
> specify the correct drive by label or UUID?
> 
> Richard
> 

Thanks for the inputs, this is not quite solved yet and I think I 
should expand on the background to put this in context:

What I am trying to do is to clone (rsync) F7 from the SATA drive to 
the IDE drive (which also contains a bootable F7, just a different one 
which is less up to date). I want to update (rsync) the IDE drive and 
use it as my main drive from now on, and free up the SATA for other 
uses. I know how to run grub-install and make things work
once I get past the partition-mkfs-rsync process.

So: I want the SATA to be my live system, and the IDE I want to muck 
around with both at partition and filesystem level.

Here are some of the problems I encounter, and why some of the more 
obvious tricks are not so usable.

1. The IDE always becomes /dev/sda{1,5,6,...,etc} if present.

1a. my fstab on both drives specifies /dev/sda{1,5,6,...,etc} explicitly.

2. Labels are problematic, because if there are two drives with the 
same labels then F7 and F8 has the strange behavior that it will mount 
  the LAST partition found that has a matching label name. This will 
often be from from the other drive, rather than the one that you 
booted from. What F7 should do (I think)  is "look for the label on 
the boot drive first, and use that one if it exists". No such luck.

3. I'd rather not have to boot a rescue cd and hack /etc/fstab and/or 
e2label when I try to boot with both drives, and then hack back again 
  later.

4. BIOS settings affects which drive's GRUB track gets executed,
but not the device name assignments.

5. UUID I do not know too much about, but it seems that it requires
hacking fstab back and forth, even worse than labels.

6. What I really need is a way, on the grub commandline, to force the 
sata drive to be /dev/sda, and I will be in business. That is my 
original question.

7. I wanted to circumvent the whole boot problem by attaching the IDE 
  post-boot using a usb-to-ide/mini-ide/sata converter to mount the 
IDE. Unfortunately the coverter only works for mini-ide and sata 
drives, and ide disks do not become mountable.

I agree with Mikkel that BIOS settings do not help me. Maybe I should
try something more radical like booting the IDE=/dev/sda and erase the 
boot track and partition table of /dev/sda on the live system, using 
dd if=/dev/zero of=/dev/sda count=1 bs=512. It just might work.

What really gets me is that the opposite process, i.e. cloning the 
system from the IDE drive to the SATA drive, went very smoothly a few 
months ago, for obvious reasons. But the reverse is very difficult 
because of the device ordering and name assignment.

I wish I knew how to hack initrd....or maybe not :).





More information about the fedora-list mailing list