I have run into a small issue with an x130e thinkpad and a 4GB USB stick.

After running fdisk -i on the USB stick, having the stick inserted
at power-on prevents the laptop from booting. It gets stuck with a
black screen, before even showing the first 'Thinkpad' logo screen
where I can enter the BIOS by pressing F1. Eventually the system
resets automatically, but then hangs again as before.

When I remove the stick while the system hangs, the system instantly
resumes booting. I can reinsert the stick and 'reboot' from the boot
loader, and the system comes up properly. 'machine diskinfo' shows
this for the stick:

Disk    BIOS    Type    Cyls    Heads   Secs    Flags   Checksum
hd1     0x81    label   492     255     63      0x0     0xd1aa95e2

This is the partition table created by fdisk -i:

Disk: sd1       geometry: 491/255/63 [7892992 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: A6      0   1   2 -    490 254  63 [          64:     7887851 ] OpenBSD   

Disabling USB boot support in the BIOS fixes the issue but makes
it impossible to use the USB stick as keydisk since the stick
doesn't show up in 'machine diskinfo' anymore.

Zeroing the first MB of the stick also fixes the issue.
'machine diskinfo' now shows:

Disk    BIOS    Type    Cyls    Heads   Secs    Flags   Checksum
hd1     0x81    label   490     255     63      0x0     

The problem also goes away if I manually create a partition table with
'fdisk -e  -c 490 -h 255 -s 63 sd1' that looks as follows:

Disk: sd1       geometry: 490/255/63 [7871850 Sectors]
Offset: 0       Signature: 0x0
            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: A6      0   1   2 -    489 254  63 [          64:     7871786 ] OpenBSD 

'machine diskinfo' for that is:
Disk    BIOS    Type    Cyls    Heads   Secs    Flags   Checksum
hd1     0x81    label   490     255     63      0x0     0x2c0f040e

I bought 3 of these USB sticks and ran into this problem with 2 of them.
I then unwrapped the third one from the packaging and tested it unmodified.
The system boots fine and 'machine diskinfo' shows:

Disk    BIOS    Type    Cyls    Heads   Secs    Flags   Checksum
hd1     0x81    label   985     128     63      0x0     0xb919a6ea

The partition table looks like this in fdisk:

Disk: sd1       geometry: 491/255/63 [7892992 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
*0: 0C      0   1   1 -    491  80  37 [          63:     7892929 ] Win95 FAT32L
 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   

Can anyone explain this problem?

Is it a BIOS/UEFI firmware bug?
Is it an incompability between OpenBSD's fdisk and the BIOS that can
happen due to diferences in disk geometry detection heuristics?
Is it a bug in OpenBSD"s fdisk?

Reply via email to