Date: Wed, 6 Jan 1999 16:17:36 -0800 (PST) From: asami@FreeBSD.ORG (Satoshi Asami) To: rnordier@nordier.com Cc: bde@zeta.org.au, freebsd-current@FreeBSD.ORG Subject: Re: How to Build & Run ELF Kernel Message-ID: <199901070017.QAA02235@silvia.hip.berkeley.edu> In-Reply-To: <199901062357.BAA03690@ceia.nordier.com> (message from Robert Nordier on Thu, 7 Jan 1999 01:57:35 %2B0200 (SAT))
index | next in thread | previous in thread | raw e-mail
Robert, thanks for your reply.
* I'd check particularly whether the FreeBSD slice entry is 100%
* correct.
*
* The old bootblocks use the CHS value (257/1/1 below) to determine
* the slice offset, whereas the new bootblocks use the start value
* (4128768 below) and the disk geometry reported by the BIOS to derive
* a CHS:
*
* [Sample fdisk output]
* sysid 165,(FreeBSD/NetBSD/386BSD)
* start 4128768, size 4305357 (2102 Meg), flag 80 (active)
* beg: cyl 257/ sector 1/ head 1;
* end: cyl 524/ sector 63/ head 254
*
* sector = 4128768 % 63 + 1 = 1
* head = 4128768 / 63 % 255 = 1
* cyl = 4128768 / 63 / 255 = 257
Hmm. All my disks have a FreeBSD partition starting at sector 63
(start of second track of first cylinder). Here's the one that
doesn't work:
===
## fdisk sd0
******* Working on device /dev/rsd0 *******
parameters extracted from in-core disklabel are:
cylinders=263 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=263 heads=255 sectors/track=63 (16065 blks/cyl)
:
The data for partition 2 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 63, size 4225032 (2063 Meg), flag 80 (active)
beg: cyl 0/ sector 1/ head 1;
end: cyl 262/ sector 63/ head 254
===
and the one that does work, on the same machine:
===
## fdisk sd1
******* Working on device /dev/rsd1 *******
parameters extracted from in-core disklabel are:
cylinders=274 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=274 heads=255 sectors/track=63 (16065 blks/cyl)
:
The data for partition 2 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 63, size 4401747 (2149 Meg), flag 80 (active)
beg: cyl 0/ sector 1/ head 1;
end: cyl 273/ sector 63/ head 254
===
As you can see, they are almost identical. The only difference is the
size of the disk/partitions.
As for other items on your checklist (reproduced here):
* o Can't get the disk geometry from the BIOS
It did boot before with the old bootblocks, so it is getting the
geometry, right?
* o The disk geometry would cause division by zero
* o The derived cylinder number exceeds 1023
Both of these shouldn't apply to this case.
* o BIOS fails to read a sector on five consecutive attempts
===
## dd if=/dev/rsd0 of=/dev/null bs=512 count=2048
2048+0 records in
2048+0 records out
1048576 bytes transferred in 1.827534 secs (573765 bytes/sec)
## tail /var/log/messages
:
Jan 6 15:00:25 baloon sudo: asami : TTY=ttyp0 ; PWD=/s/c/home/piedmont/asami ; USER=root ; COMMAND=/usr/local/bin/bash
===
At least it seems quite readable from the FreeBSD kernel. And again,
it was booting fine before I rewrote the bootblocks.
Satoshi
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901070017.QAA02235>
