I tried all the COMPRESS= methods available in /etc/initramfs-
tools/initramfs.conf in both eoan and bionic.

For each one, I ran:
date > date.txt
echo date.txt | cpio -oH newc > date.img
update-initramfs -u
cat initrd.lz4 date.img > initrd.img
kvm -m 512 -kernel vmlinuz -initrd initrd.img -append rdinit=/bin/sh

The results show that:
xz works in both eoan and bionic,
gzip and bzip2 regressed in eoan,
lzma, lzop and lz4 never worked.

=== EOAN ===
Linux kernel x86 boot executable bzImage, version 5.2.0-10-generic 
(buildd@lgw01-amd64-046) #11-Ubuntu SMP Tue Jul 30 19:19:46 UTC 2019, 
RO-rootFS, swap_dev 0x8, Normal VGA

SIZE     FILENAME      WORKS?
 9016056 vmlinuz
43335408 initrd.xz     yes
43339869 initrd.lzma   no date.txt
63081861 initrd.bzip2  no date.txt
68362761 initrd.lzop   no date.txt
68364423 initrd.gzip   no date.txt
77600825 initrd.lz4    kernel panic


=== BIONIC ===
Linux kernel x86 boot executable bzImage, version 4.15.0-58-generic 
(buildd@lcy01-amd64-013) #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019, RO-rootFS, 
swap_dev 0x7, Normal VGA

SIZE     FILENAME      WORKS?
 8302232 vmlinuz
39946592 initrd.xz     yes
39942761 initrd.lzma   no date.txt
56997316 initrd.bzip2  yes
61043794 initrd.lzop   no date.txt
61046528 initrd.gzip   yes

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1840945

Title:
  Concatenated lz4 initrds don't work

Status in linux package in Ubuntu:
  Confirmed

Bug 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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1840945/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to