On Thu, 2007-11-01 at 11:57 -0700, H. Peter Anvin wrote:
> Doug Ledford wrote:
> > 
> > Correct, and that's what you want.  The alternative is that if the BIOS
> > can see the first disk but it's broken and can't be used, and if you
> > have the boot sector on the second disk set to read from BIOS disk 0x81
> > because you ASSuMEd the first disk would be broken but still present in
> > the BIOS tables, then your machine won't boot unless that first dead but
> > preset disk is present.  If you remove the disk entirely, thereby
> > bumping disk 0x81 to 0x80, then you are screwed.  If you have any drive
> > failure that prevents the first disk from being recognized (blown fuse,
> > blown electronics, etc), you are screwed until you get a new disk to
> > replace it.
> > 
> 
> What you want is for it to use the drive number that BIOS passes into it 
> (register DL), not a hard-coded number.  That was my (only) point -- 
> you're obviously right that hard-coding a number to 0x81 would be worse 
> than useless.

Oh, and I forgot to mention that in grub2, the DL register is ignored
for RAID1 devices.  Well, maybe not ignored, but once grub2 has
determined that the intended boot partition is a raid partition, the
raid code takes over and the raid code doesn't care about the DL
register.  Instead, it scans for all the other members of the raid array
and utilizes whichever drives it needs to in order to complete the boot
process.  And since it does reads a sector (or a small group of sectors)
at a time, it doesn't need any member of a raid1 array to be perfect, it
will attempt a round robin read on all the sectors and only fail if all
drives return an error for a given read.

-- 
Doug Ledford <[EMAIL PROTECTED]>
              GPG KeyID: CFBFF194
              http://people.redhat.com/dledford

Infiniband specific RPMs available at
              http://people.redhat.com/dledford/Infiniband

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to