Trying to boot bsd system after upgrade to openBSD 3.8.
The boot loader (/boot) seems unable to read disk, gives the following output:
probing: pc0 com0 apm mem[639k 509M a20=on]
disk: hd0+*
>> OpenBSD/i386 BOOT 2.10
Open(hd0a:/etc/boot.conf): Unknown error: code2 20
boot>
booting hd0a:/bsd: open hd0a:/bsd: Unknown error: code 20
failed(20). Will try /obsd
boot>
booting hd0a:/obsd: open hd0a:/obsd: Unknown error: code 20
failed(20). Will try /bsd.old
boot>
booting hd0a:/bsd.old: open hd0a:/bsd.old: Unknown error: code 20
failed(20). Will try /bsd
boot>
...
Turning timeout off.
boot>
When I enter 'ls' at the 'boot>' prompt, the same 'Unknown error: code 20' message is given.
On a working system, the response to 'ls' is a listing of the '/' partition.
So, I hooked up the drive in question as a second drive on the working BSD system, and I am able to mount the non-booting hard drive. The /boot and /bsd files are present and readable. I even copied the /bsd to the working system '/' as bsd.test, and was able to boot using that kernel. The problem seems to be that the boot loader /boot is not able to see files in the hd0a partition.
The "*" listed after the "file: hd0+*" is supposed to be because the disk does not have a valid OpenBSD disk label on it. I've tried to restore one with "disklabel -R", but no success yet.
We're looking for an expert.
Hi Chuck.
If you'd read the documentation, you'd know that OpenBSD doesn't have LBA support. This means that /boot needs to be in the first 1024 cylinders of the disk. Tell everyone at SOL I said hi :D
problems with OpenBSD Booting
Randi,
Great to hear from you. I hope you are doing well! Yeah, I actually did catch that the boot loader needs to be in the first 1024 cylinders. We are actually working on a really interesting problem, and we might be closing in on the solution.
We have disks where the fdisk partition offset is 0 (not 63). It looks like when we try to use disklabel to write a new partition boot record, that it is corrupting the MBR.