-
Notifications
You must be signed in to change notification settings - Fork 1
Boot fails on 64M minix file systems #209
Description
A few years back - on ELKS - the max size of minix file systems was increased from 32M to 64M. That has worked fine since, probably rely used on ELKS, while on TLVC, 64M has been the standard for HD file systems since the fork.
There have been occasional boot failures (code 4, bad kernel signature) but too rare to chase.
Recently that has changed. For whatever reason, most likely file systems filling up with whatever debugging entails (such as big dummy files, 10 or 20 variants of the kernel, whatever...) plenty of space invites to laziness as far as deleting is concerned.
So, a new kernel is more likely to end up in the upper half of the 64M file system. That - as it turns out makes ut unbootable. The boot code uses an unsigned int to hold the block to read, and shifts it left before calling disk_read. With obvious consequences for kernel (and indirect map) blocks above 32k.
@ghaerr, this is the reason for the problems reported in #205 (comment) - so the unlimited bootopts implementation is in the clear (as far as this is concerned).
I'm looking at ways to fix this right now. The extremely tight space make changes tricky.
This presumably also being a problem on ELKS, you may want to take a look, @ghaerr.