This bug was fixed in the package initramfs-tools - 0.147ubuntu1 --------------- initramfs-tools (0.147ubuntu1) plucky; urgency=medium
* Merge from Debian unstable. Remaining changes: - Harmonize kernel module installation with dracut's behavior: - Do not install ARM/RISCV specific modules on other architectures. - Revert "autopkgtest: Fix test failure when built-in drivers request firmware". This workaround is not needed on Ubuntu. - support mounting of loopback devices via loop*= parameters - Add vfat and nls modules to the initramfs. - Drop hooks/keymap, scripts/init-top/keymap, and associated code; console-setup takes care of this in Ubuntu. - Allow scripts and hooks to specify OPTION=VAR, and unless VAR is set to something other than "n", the script will not be included. - Add new initramfs-tools-bin package containing a binary that uses libudev to wait for udev to create the udev device, or wait for udev to finish processing if we catch it in the act, and returns the filesystem type as already probed by udev. - Automatically blacklist vga16fb when vga= or video= specified on kernel command-line. - Add hwaddr= alias for BOOTIF= for compatibility. - Set hostname at boot, for the benefit of mdadm autoassembly. - Add Hyper-V paravirtualised device drivers to the initramfs to allow booting of stock images in a Hyper-V guest. - ppc64el: enable PowerPC NX Crypto Coprocessor - Add support for uppercase and lowercase uuids. - Ensure we have a /usr/sbin directory in initramfs-tools-core - Make busybox-initramfs a real runtime dependency, fixing kernel install failures with cryptsetup - init: Don't interpret "rootdelay" as a static sleep. - scripts/local: Let rootdelay determine the wait-for-root timeout. - Increase rootdelay to 180s on powerpc/ppc64/ppc64el - Support roottimeout= as the authoritative name for rootdelay= since the Ubuntu interpretation of rootdelay is *not* a delay and this causes inconsistent behavior depending on whether the kernel or an initramfs is interpreting it. - Revised mountroot failure support. This is now deprecated and effectively removed. However, to prevent breakage in other packages the add_mountroot_fail_hook function is still present as an empty stub. - Add a new 'fixrtc' script that tries to set the system clock forward based on the last mount time of the root disk; without this kludge, systems without a working RTC will end up in a perpetual reboot loop. - Restore the framebuffer hook and script, copying KMS and other framebuffer drivers into the initramfs, but make them optional; you need to set FRAMEBUFFER=y for these to be included. - netinfo_to_resolv_conf: Add support for IPv6 - resume: only resume when the partition contains a resume image - Fix resuming a hibernate session from a swapfile - scripts/functions: by default, when setting up networking, use dhclient if we're asked to do DHCP explicitly, or if we otherwise are expected to do things automatically. - split out IPv6 options in its own cmdline parameter: ip6= ; always use dhclient in this case if the value set is anything other than 'off' or 'none'. Furthermore, parse anything other than 'on', 'dhcp' or 'any' as the name of an interface. - rework the stop conditions so that we properly handle the ROUNDTTT loop, timing out after a short period of time and trying again after a short sleep. - add a 'done' parameter for both ip= and ip6= so that we can properly exit the ROUNDTTT loop once we know that either there is no work to do, or that we've achieved what we wanted (that is, to bring up IPv4, IPv6, or possibly both). - Just let dhclient scan the interfaces if none is specified for IPv6. (previously unnoted) - Do not handle ip=rarp specially (ipconfig hasn't supported it for some time) - Call dhclient in simple cases for IPv4 (this makes some small observable changes -- for example ip=bootp will now make a DHCP request too -- but nothing that seems important). - Do not let dhclient processes hang around past the pivot and have them respect the shorter timeouts ipconfig was given. - hook-functions, mkinitramfs, scripts/functions: support usage of dns after configure_networking. - Add unit tests for DNS support - scripts/functions: write netplan config files to /run/netplan for network devices configured with configure_networking. - Adjust testsuite for correct expected netplan output. - Add tests to parse netplan.yaml with netplan generate. - scripts/functions: include a new option to skip enslaved network devices. - Auto activate qeth devices on s390x hosts, when using ip= ip6= command lines. - Add support for creating VLANs via vlan=eth0.1:eth0 on kernel commandline, and as VLAN= conf.d snippet. - Emit empty dictionary in the ethernets section, for static vlan configs without any matches, as otherwise it is invalid config. - Skip attempting to chzdev enable VLAN device - Work out the kernel modules required to support ZFS filesystems and add them as necessary. - Add modules for nvme path components on multipath nvme. - Drop usage of klibc-utils' fstype in favor of always using udev blkid. - Use set -a/+a around loading conf snippets, to autoexport hook configuration variables. This thus allows packaged hooks to configure each other. - Fix PATH to include /usr/local. - Fix resume failure due to resume=UUID=... in certain cases - Always mount loop-mount filesystems read-write; ntfs-3g and vfat can't remount yet. - Provide a clearer error on mount failure of the Windows host filesystem - scripts/local: Re-execute cryptroot local-block script. - Force copy pthread and libgcc_s libraries via a stub binary. To avoid circular shared library dependencies between compiler and libc, libpthreads chooses to dlopen libgcc_s, instead of linking against it. However, we have no way to parse/know what it needs. And even when we hardcode to include libgcc_s1, we don't have a way to know which libgcc_s1 is needed on a given system and from which path to include it. But there is a hook-function to copy a binary and all of its shared library dependencies. Thus create a stub empty executable, with shared linking against pthreads and gcc_s1 and always include it in the initrd. This way at initrd creation time, ldd is used to correctly resolve these shared library dependencies and correctly copy them into the initrd. This removes hardcoding paths as to where these libraries must be copied from on the host. - Lower the compression levels for zstd and lz4 Following the discussion on the mailing list, we have reached a conclusion to lower the default compression levels: - For lz4, the compression level is lowered to 2 from 9 - For zstd, the compression level is lowered to 1 from 9 - Include dax and nfit modules, also needed for pmem devices. - Add char/hw_random drivers - Reinstate build-time shellcheck (but leave shellcheck out of autopkgtests as per debian bug #992798) - Bring up networking if ip6 is specified on cmdline. - Add qemu-net-dnsmasq autopkgtest to test DHCPv6 - test: Ignore remaining systemd-udevd processes - Replace dhclient by dhcpcd - scripts/functions: do not fail to configure networking too quickly. In particular make sure an unsuccessful attempt to run DHCP takes at least $ROUNDTTT seconds. - Install intel_lpss_pci and spi_pxa2xx_platform kernel modules for keyboard on MacBook Pro 2017 - Install surface_aggregator_registry for keyboard on Surface Laptop 4 - Restore nvdimm and dax pmem-related modules - configure_networking: - Increase minimum timeout to 30 seconds - Fix configuring BOOTIF when using iSCSI - Set interface MTU if provided by the DHCP server - autopkgtest: Test hostname already set in initrd - resume: always write valid resume device to /sys/power/resume - hook-functions: Print error message on copy_file failure to ease debugging cases like LP #1641230. - Use 3cpio for unmkinitramfs/lsinitramfs if available (for massive speedup) and let initramfs-tools-core suggest 3cpio - persist hostname provided by DHCP only if not set yet - configure_networking: Configure IPv4 or IPv6 based on iBFT IP address - Add iBFT test cases to qemu-net-iscsi autopkgtest - scripts/functions: gateway4/gateway6 are depreated in netplan config, generate routes instead initramfs-tools (0.147) unstable; urgency=medium [ Ben Hutchings ] * [34f9acd] hook-functions: Add reset drivers when MODULES=dep (Closes: #1027458) * [025ce79] unmkinitramfs: Create temporary directory for initramfs parts * [25b0c61] unmkinitramfs: Fix detection of EOF marker * [ca1a68b] unmkinitramfs: Restore split to "early" and "main" subdirectories (Closes: #1100008) * [bbbe1d3] unmkinitramfs.8: Update and expand description of multi- archive handling [ Chris Hofstaedtler ] * [297a9e2] hook-functions: avoid aborting in chroots * [319cdc9] Tighten /dev/pts permissions (Closes: #1095991) [ Scott Moser ] * [cec12d7] hook-functions: add squashfs driver (LP: #1501834) [ Benjamin Drung ] * [a6884dc] test: let run_qemu* take extra kernel parameters as single parameter * [5401bf3] test: support setting a disk label in build_fs_ext2 * [ab1fe4e] test-common: introduce intermediate _run_qemu_default_devices * [20c564a] Add qemu-net-iscsi autopkgtest (LP: #2091904) * [716491a] mkinitramfs: add --version parameter * [65166a6] update-initramfs: add --version parameter * [2334de3] kernel/postinst.d: check for correct update-initramfs provider * [7ef4755] Fix spelling mistakes in d/changelog * [3ed4077] hook-functions: Move UFS storage drivers to block class (LP: #2081020) * [19b85a5] Filter block kernel modules by symbol regex from dracut (LP: #2031841) * [4069428] update-initramfs: add -s parameter (LP: #1466965) * [7f2ed35] Avoid updating the initramfs twice for some cases (LP: #1466965) * [dad2c90] test: run quick copy-file autopkgtest first * [32aa743] Bump Standards-Version to 4.7.2 -- Benjamin Drung <bdr...@ubuntu.com> Mon, 31 Mar 2025 12:39:18 +0200 ** Changed in: initramfs-tools (Ubuntu) Status: Triaged => Fix Released -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to initramfs-tools in Ubuntu. https://bugs.launchpad.net/bugs/1466965 Title: update-initramfs is called twice for the same kernel Status in dpkg package in Ubuntu: New Status in initramfs-tools package in Ubuntu: Fix Released Status in dpkg package in Debian: New Bug description: When installing/upgrading packages (e. g. a kernel and initramfs-tools), the same initrd is generated twice. Example from Ubuntu 24.04 (noble): ``` $ apt-get install --no-install-recommends -y zstd initramfs-tools linux-image-generic [...] Setting up initramfs-tools-core (0.142ubuntu25.5) ... Setting up initramfs-tools (0.142ubuntu25.5) ... update-initramfs: deferring update (trigger activated) Processing triggers for libc-bin (2.39-0ubuntu8.4) ... Processing triggers for linux-image-6.8.0-54-generic (6.8.0-54.56) ... /etc/kernel/postinst.d/initramfs-tools: update-initramfs: Generating /boot/initrd.img-6.8.0-54-generic Processing triggers for initramfs-tools (0.142ubuntu25.5) ... update-initramfs: Generating /boot/initrd.img-6.8.0-54-generic ``` This behavior is caused by the kernel postinst running `run-parts /etc/kernel/postinst.d` where `/etc/kernel/postinst.d/initramfs-tools` calls update-initramfs. The initramfs-tools package uses the update- initramfs dpkg trigger. This trigger is executed later and calls `update-initramfs -u` (which updates the initrd for the latest kernel). Original report =============== A discussion that has come up before, but I figured I'd file a bug. When you 'apt-get install <some-packages>' often times: a.) update-initramfs is called more than once for the same kernel b.) update-initramfs might not even be called (such as in bug 1466960). some conversation with infinity in #ubuntu-devel [1] indicates that he and apw have discussed how to do solve this. [1] http://irclogs.ubuntu.com/2015/06/19/%23ubuntu-devel.html#t18:04 ProblemType: Bug DistroRelease: Ubuntu 15.10 Package: initramfs-tools 0.103ubuntu15 ProcVersionSignature: User Name 3.19.0-21.21-generic 3.19.8 Uname: Linux 3.19.0-21-generic x86_64 ApportVersion: 2.17.3-0ubuntu4 Architecture: amd64 Date: Fri Jun 19 18:19:15 2015 Ec2AMI: ami-00000425 Ec2AMIManifest: FIXME Ec2AvailabilityZone: nova Ec2InstanceType: m1.small Ec2Kernel: aki-00000002 Ec2Ramdisk: ari-00000002 PackageArchitecture: all ProcEnviron: TERM=xterm-256color PATH=(custom, no user) XDG_RUNTIME_DIR=<set> LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: initramfs-tools UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/1466965/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp