Re: Broken initrd compression settings in 3.13

From: Linus Torvalds
Date: Fri Dec 20 2013 - 21:15:37 EST


On Fri, Dec 20, 2013 at 5:39 PM, Andrew Morton
<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 20 Dec 2013 16:41:43 -0800 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> (a) most sane people don't even have lz4 _installed_, so dracut won't
>> actually succeed
>>
>> (b) there's no way to select the compression level (unlike the
>> INITRAMFS_COMPRESSION thing that actually has a choice)
>>
>> (c) even if you *do* have lz4, it doesn't actually work, because
>> while that causes the new F20 dracut to compress the initramfs with
>> lz4, the end result is completely broken, because the F20 "lsinitrd"
>> scripts don't understand the end result, so now the whole kernel
>> install fails.
>>
>> (a) and (b) are very much kernel bugs.
>
> Jeff sent the below this morning. Will that fix (a)?

Yes, it fixes (a), at least to some degree, in that at least
defaulting to bzip2 is a lot more sane than defaulting to lz4. I
suspect most everybody has bzip2 installed. And at least on my current
F20 install, it looks like lsinitrd understands to use zcat, bzcat or
xzcat on the resulting initrd image (and bzcat does that bzip2
decoding).

So I think Jeff's patch at least fixes the symptoms.

That said, I think it does nothing *but* fix the symptoms, and we're
actually still better off with the 3.12 behavior which was to never
set INITRD_COMPRESS at all. Because quite frankly, there's currently
no way for the kernel to know what the right compressor is. bz2 may
well work, but can you guarantee it? I certainly can't..

Now, if we asked the user, that would be a different thing. But right
now we very much don't ask the user, and we just pick one at random.

We're better off not picking a compression method at all, at which
point the distro "installkernel" will do whatever the distro does.

Linus
--
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/