]> code.ossystems Code Review - openembedded-core.git/commitdiff
initramfs-live-boot: disable systemd-update-done.service on live images
authorCarlos Alberto Lopez Perez <clopez@igalia.com>
Thu, 31 Aug 2017 12:23:35 +0000 (14:23 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 1 Sep 2017 22:59:55 +0000 (23:59 +0100)
When systemd is used, it will invoke a service on first boot that triggers
a rebuild of ldconfig caches (rebuild dynamic linker cache).

This is fine on the first boot of a system that has been installed, but it
makes no sense on a live system. The worst part is that rebuilding this
caches is slow and it causes the live system to take longer to boot.
(I measured this in 30 seconds longer on a standard PC system booting
core-image-sato live from an USB memory).

Disable this by touching /etc/.updated and /var/.updated on the live initramfs.

For more details see https://bugzilla.redhat.com/show_bug.cgi?id=1201725 and
https://www.freedesktop.org/software/systemd/man/systemd-update-done.service.html

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-core/initrdscripts/files/init-live.sh

index 441b41c9d63abe067160d7acf721137eadb1efdb..46cab6cc77a786a5066438e73c553f38a96a5e5c 100644 (file)
@@ -84,6 +84,10 @@ boot_live_root() {
     # device node creation events were handled, to avoid unexpected behavior
     killall -9 "${_UDEV_DAEMON##*/}" 2>/dev/null
 
+    # Don't run systemd-update-done on systemd-based live systems
+    # because it triggers a slow rebuild of ldconfig caches.
+    touch ${ROOT_MOUNT}/etc/.updated ${ROOT_MOUNT}/var/.updated
+
     # Allow for identification of the real root even after boot
     mkdir -p  ${ROOT_MOUNT}/media/realroot
     mount -n --move "/run/media/${ROOT_DISK}" ${ROOT_MOUNT}/media/realroot