[Bug 255072] boot (legacy): no progress beyond 'BIOS DRIVE D: is disk1'

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 08 Jan 2022 11:34:28 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255072

--- Comment #23 from Toomas Soome <tsoome@freebsd.org> ---
(In reply to spell from comment #22)


Could you post the disk properties -- actual ones you see from OS tool like
gpart or such, and what you get from probing in biosdisk.c (sector size, number
of sectors; I guess it is detecting EDD).

The disk IO in early loader is about detecting partition type and reading
partition table - what type of partitioning is used on that disk? In case of
GPT, we read disk start *and* disk end to be sure there is no corruption.

Secondly, disk IO is from the time we attempt to discover zfs pools, that will
read every candidate partition start and end (pool config has 4 copies).

After that we have hopefully established our boot file system and will start to
read loader files.

Usually, when there is a problem with disk IO, we see failure while detecting
partitioning or, while probing for zfs pools.

So, what to look for: certainly sector number for read - if we do fit inside
the disk. Reading past disk end can crash many BIOS systems.

Second possible issue is if the disk read will read more than we have buffer
space - memory corruption. Possible way to test this guess would be to read 1
sector at a time. We use low memory buffer space for realmode INT13 calls and
that memory area is 16k, so single sector read will (hopefully) not trash past
that buffer end...

-- 
You are receiving this mail because:
You are the assignee for the bug.