On Sun, 10 Jul 2022, Izumi Tsutsui wrote:
IIRC libsa/sa/ufs.c requires large heapsize to read blocksize, from ffs, so sometimes it fails to load on blocksize=65536 fs. (but I'm nots sure 64KB blocksize is valied on FFS because newfs(8) man page just says 4KB-32KB for it)
On Mon, 11 Jul 2022, matthew green wrote:
FWIW, i've been using 64K block *and frag size FFS for over a decade without any problem, on a file system that almost always has extremely large files on it.
I think what's happening here on x86/amd64 systems with a 64k or larger FS block-sizes is that: a) the no. of sectors exceeds the count allowed in the INT 13h disk-read call (less likely), or, b) the buffer allocated in sys/lib/libsa/ufs.c:724 crosses a 64k x86 segment boundary (more likely). I see that sys/arch/i386/stand/lib/biosdisk_ll.c:242 sets cold=1 which will most likely result in situation b) for any of the bootxx_* bootloaders. It should be documented somewhere that block-sizes > 32k are a problem for the BIOS bootloaders on the x86/amd64 arch... -RVP