I think the block address was actually valid, since it has been checked to be
within the partition containing it. The problem might well be in the bios that
reports the total_sector of the disk, with which the block address got checked
later and the error was logged.
In biosdisk module there's workaround to the total_sectors.
> /* Some buggy BIOSes doesn't return the total sectors
> correctly but returns zero. So if it is zero, compute
> it by C/H/S returned by the LBA BIOS call. */
> total_sectors = ((grub_uint64_t) drp->cylinders)
> * drp->heads * drp->sectors;
I did some math, and find the maximum CHS sectors (0xfc0000) lies within the
partition, as the partition started from 0x4800 and ended beyond 0x156d678
where the offended reading occured. This can also explain why the error was
sporadically happened, as it was depending on the placement the filesystem has
done for the new copy of grub-install files.
Would it be possbile for you to test debug package to see what total_sector
really is ? I think that is the key to know what's going wrong.
Thanks.