i might be going off in the wrong direction, as i am unfamiliar with this code, 
but i
think i understand this a bit better now.  it seems that the first problem was 
that
$fsname/$fsname.c calls atainit.  this function returns a the head of the ata 
partition list
on first call, nil otherwise.  thus when sdataifc.pnp() is called by _sdinit() 
no partitions
are found.  the reason for this return scheme is to prevent the same partition 
from
being added to the list of devices twice.

i wrote a function to put into sdataifc that returns the head ptr exactly once, 
independent
of calls to the original pnp function.  this fixes (a term of art) the first 
problem.  interestingly, no
partitions are recognized, just full disks.  i believe that there are only 
stubs for recognizing
partitions.  perhaps someone with more knowledge could correct me.  

however this still fails to boot because (back in $fsname/$fsname.c) 
otherinit() and dosfs
do not seem to have a mechanism for selecting the proper device.  i believe 
that dosinit()
is catching the second device first (that is, the cdrom).  it appears that 
dosinit() knows about
dos partitions, so it doesn't appear that partitioning problems are to blame.

would an LLBA disk have a signature that would confuse it?

- erik

Reply via email to