2019-08-21 16:41:46 |
Alkis Georgopoulos |
bug |
|
|
added bug |
2019-08-21 16:45:03 |
Alkis Georgopoulos |
description |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist. |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist. |
|
2019-08-21 16:49:35 |
Alkis Georgopoulos |
description |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist. |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist.
`dmesg` reports:
Trying to unpack rootfs image as initramfs...
Initramfs unpacking failed: write error |
|
2019-08-21 16:50:32 |
Alkis Georgopoulos |
description |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist.
`dmesg` reports:
Trying to unpack rootfs image as initramfs...
Initramfs unpacking failed: write error |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist.
`dmesg | grep -i initramfs` reports:
Trying to unpack rootfs image as initramfs...
Initramfs unpacking failed: Decoding failed |
|
2019-08-21 17:00:16 |
Ubuntu Kernel Bot |
linux (Ubuntu): status |
New |
Incomplete |
|
2019-08-21 17:45:51 |
Alkis Georgopoulos |
linux (Ubuntu): status |
Incomplete |
Confirmed |
|
2019-08-24 08:26:42 |
Alkis Georgopoulos |
summary |
Concatenated lz4 initrds don't work |
Mixed compression initrds partially work |
|
2019-08-24 08:32:14 |
Alkis Georgopoulos |
description |
Concatenating multiple initrds works fine with gzipped initrds.
(microcode+gzip+gzip) => the kernel properly decompresses that
With lz4, it can't decompress anything after the first lz4:
(microcode+lz4+whatever) => it doesn't decompress whatever.
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create an lz4 (or gzip or uncompressed cpio, it doesn't matter):
# date > date.txt
# echo date.txt | cpio -oH newc | lz4 > date.img
Concatenate them:
# cat initrd.img.original date.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The additional file doesn't exist.
`dmesg | grep -i initramfs` reports:
Trying to unpack rootfs image as initramfs...
Initramfs unpacking failed: Decoding failed |
Updated description:
The kernel supports loading multiple initrds, like: [cpio microcode, gzip initrd.img].
Appending yet another initrd after that only works for selected compressions, not all of them. I'm not sure if this is a bug or a feature request.
So for example, this works: [cpio microcode, xz initrd.img, gzip extra.img]
And this doesn't: [cpio microcode, lz4 initrd.img, gzip extra.img]
To reproduce:
Get vmlinuz and initrd.img from an eoan daily build and put them in a directory.
Create a compressed extra.img:
# date > date.txt
# echo date.txt | cpio -oH newc | gzip > extra.img
Concatenate them:
# cat initrd.img.original extra.img > initrd.img
Boot them:
# kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh
Then inside kvm:
# ls /date.txt
The date.txt file doesn't exist when initrd.img is lz4, while it appears if it's xz.
`dmesg | grep -i initramfs` reports:
Trying to unpack rootfs image as initramfs...
Initramfs unpacking failed: Decoding failed |
|
2019-10-05 08:36:50 |
Reupen Shah |
bug |
|
|
added subscriber Reupen Shah |