Bug#239111: Grub is shockingly bad code

Robert McQueen robot101 at hadesian.co.uk
Mon Jan 12 18:15:52 UTC 2009


severity 239111 grave
thanks

Robert Millan wrote:
> The whole approach is wrong, so maybe it makes sense to avoid it, or maybe
> it's too late for that, and we should issue a critical debconf warning when
> XFS is detected.
>
> I will have to think about it.

The problem is that Debian's patch to try and make it work on XFS makes
it /worse/. It turns "grub-install fails" into "grub-install fucks my
system". There's no question we should just fix that ASAP by applying a
patch which just does freeze immediately followed by unfreeze. That's
why I raised the severity, and I still consider this RC for lenny
because the upgrade instructions in NEWS.Debian encouraged me to do
something which bricked my system.

(Note that although I didn't try it yet, I'm almost certain that Ben's
approach with a helper binary to run FIBMAP ioctl won't help any more
than calling sync() will. sync is /not/ broken in XFS - if you call it
then it does flush the data to disk - the "problem" is that it considers
metadata synced to the journal as safely sync()'d, so calling it isn't
sufficient to udate the dentry's for grub to read directly.)

Given even xfs_freeze is broken in etch's kernel, we can't make
grub-install work reliably there, but if we put freeze/unfreeze between
copying the files and invoking grub then it will a) not hose people's
systems under etch, and b) will work with lenny's kernel. There's also
no need for a critical warning, because grub-install has to be done by
the user manually anyway. We should just include the correct advice.

If you'd answer my question about which kernel / grub versions are
actually incompatible, then we can choose between the two behaviours.
If etch's grub can boot lenny's kernel, we can tell XFS users to just
update grub after rebooting, otherwise we can direct them at some manual
install instruction and say "please freeze and unfreeze the filesystem,
run sync a few times, and then have a cup of tea, between copying the
stage* files and running the grub shell".

Regards,
Rob





More information about the Pkg-grub-devel mailing list