Re: [PATCH][TAKE 4] THE LINUX/I386 BOOT PROTOCOL - Breaking the256 limit

From: H. Peter Anvin
Date: Fri May 05 2006 - 14:20:23 EST


John Coffman wrote:
It is probably fairly easy to increase the LILO command line to 512 bytes (including terminator). Beyond 512 there are complicating factors:

1. "lilo -R ..." -- the space reserved for the stored command line is 1 sector.
2. configuration option "fallback" -- again 1 sector is the amount reserved.

There are 2 buffers used for the command line. Since these are allocated on sector boundaries, 512 should present no serious problems.


The problem isn't that LILO can't handle more than some number of characters; that's a LILO issue and doesn't affect the kernel.

The problem is that some people have reported that the kernel crashes if booted with LILO and the size limit is more than 255. They haven't so far commented on how they observed that, and that's a major problem.

If the issue is that LILO doesn't null-terminate overlong command lines, then that's pretty easy to deal with:

- If the kernel sees protocol version <= 2.01, limit is 255+null.
- If the kernel sees protocol version >= 2.02, but ID is 0x1X, limit is 255+null.
- Otherwise limit is higher.

When LILO is fixed, it has to bump the ID byte version number.

What ID byte values has LILO used?

-hpa

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/