...
What happened is somehow you specified an offset of 0 for the start of the first partition. Block 0 just so happens to be where the partition table is loaded (along with the MBR). So, what happens to be where the MBR and partition table is supposed to be got overwritten by the PBR instead (which looks like an empty partition table, curiously. Hmmm... I wonder what the new PBR looks like. heh. Guess I got some testing to do... 8)
This is workable, but in general, a bad idea for a few reasons (for one, if someone were to re-install the MBR code on your system -- a usually acceptable and safe proceedure -- your system will be in big trouble). You *could* leave your system this way, but I would *really* recommend pulling any data and config off the thing and re-partitioning the system.
In general, you want to leave the first track unallocated. In *your* case, your first OpenBSD partition should start at sector 63, not zero. That comes from your drive's geometry, reported by fdisk: "geometry: 4865/255/63" (it will vary on different drives, BIOSs, and interfaces).
More info on what is going on, plus what those annoying TLAs I just threw around meant: http://www.openbsd.org/faq/faq14.html#Boot386
BTW: Good problem report, good details. 8)
Nick.
I' m in the same situation on an old notebook armada without CD drive
nor NIC...only a floppy :-(
And because I couldn't make the Cirrus Logic 7548 graphics card work
under xfree86 (in openbsd that is, haven't tried it on linux yet), I
decided to remove openbsd keeping the data in the other partitions
intact, because the only way to backup/restore is through the parallel
port connection This is the way I worked until now- I used linux to copy
the installation files in a folder in the ext2 fs. But now I cannot boot
linux because linux's fdisk sees only the opebsd's partitions (msdos' is
worse...sees an empty disk like openbsd's).
There should be a way to restore the MBR into the dos compatible format...I don't care loosing the disklabel...
My goal is to save the data on the fat32 and ext2 partitions.
Aggelos. :-\
PS: I attached output from openbsd's fdisk and disklabel and linux's fdisk
# /dev/rwd0c:
type: ESDI
disk: ESDI/IDE disk
label: ST91420AG flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 2794
total sectors: 2816352
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 1552320 0 4.2BSD 2048 16384 328 # (Cyl. 0 - 1539)
b: 165312 1552320 swap # (Cyl. 1540 - 1703)
c: 2816352 0 unused 0 0 # (Cyl. 0 - 2793)
i: 544257 1717695 MSDOS # (Cyl. 1704*- 2243)
j: 552321 2262015 ext2fs # (Cyl. 2244*- 2791)
Disk: wd0 geometry: 698/64/63 [2814336 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
------------------------------------------------------------------------
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused Disk /dev/hda: 64 heads, 63 sectors, 698 cylinders
Units = cylinders of 4032 * 512 bytes
I managed to reconstruct the MBR from the disklabel info, using fdisk.