Subject: Re: big disk not bootable
To: None <netbsd-help@netbsd.org>
From: David Laight <david@l8s.co.uk>
List: netbsd-help
Date: 03/12/2002 09:58:16
> Here's my problem today: A big scsi drive isn't bootable ("os not found").

I don't know where that message comes from!
It isn't (obvious) in the netbsd mbr, mbr_bootsel or start_bootsect
code.  So I wonder what is in sector 0?

> It boots fine when using a CD's boot loader and using "boot sd0a:netbsd".

Something is wrong with the mbr or pbr code.
Maybe the BIOS is doing some checks of its own!
> 
> The drive is some 60GB raid device. It appears as one disk.
> 
> NetBSD disklabel disk geometry:
> cylinders: 57272 heads: 32 sectors/track: 64 (2048 sectors/cylinder)

I'm not sure whether these have to match the geometry reported
by the hardware...
> 
> BIOS disk geometry:
> cylinders: 1024 heads: 255 sectors/track: 63 (16065 sectors/cylinder)
> 
> Partition table:
> 0: <UNUSED>
> 1: <UNUSED>
> 2: <UNUSED>
> 3: sysid 169 (NetBSD)
>     start 64, size 117292992 (57271 MB), flag 0x80
>         beg: cylinder    0, head   1, sector  1
>         end: cylinder  951, head  31, sector  0
> 
> 
> Also, tried "installboot -f /usr/mdec/biosboot.sym /dev/sd0a".

Try using the mbr_bootsel code, if the menu comes out then the
mbr has been loaded.
> 
> The installer chose "set by hand":
> cylinders: 57272
> heads: 32
> sectors: 64
> 
> (He said these were the same as used under Red Hat.)
So :-)  What would the defaults have been?

> Now, I see that sysinst says: "If you have the BIOS set up to use > 1024
> cylinders just truncate that number to 1024 here." So he should have set
> it to "1024".

Don't think that is relevant!
> 
> I find it strange that the "offset" (under NetBSD) is 64.

This is because the partition has been put on a cylinder boundary.
(as known to netbsd, not to the bios)
> 
> Or any other ideas to make it bootable?

I'm guessing that your BIOS is validating the mbr (sector zero)
before executing the mbr code.
It may not like the partition starting on a non-sector boundary.

You might get around this by using the mbr_bootsel code as follows:
1) create another partition that is cylinder aligned and mark it
   as the active partition
2) configure the mbr_bootsel code to boot your netbsd partition.

Note that netbsd will access the disk based on the disklabel, so
it doesn't matter if you truncate the netbsd partition in the mbr
in order to create the other partition - just don't ever write
to it (hopefully the BIOS doesn't read the pbr sector in).

Some BIOS have been known to object to the format of the pbr
(see comments in start_bootsect.S), I don't think the 'fix'
in there is actually good enough....

	David

-- 
David Laight: david@l8s.co.uk