I have investigated this some more. I will provide a solution for UCK (Ubuntu Customization Kit) but it might apply to other contexts as well.
It is actually 3 distinct issues: The main problem is the missing init scripts. This is a result from UCK deactivating initctl (see also in the output of uck-chroot-rootfs: "Deactivating initctl..."). This makes invoke-rc.d fail when trying to run upstart jobs (Ubuntu uses upstart (not init) for the services in question). The "/etc/init.d/* not found" is a followup error and actually misleading. The fix described previously (modifying .prerm/.postinst files) does work, but it's better to fix it globally and not for each affected package. I found it's best to do it right in invoke-rc.d. Just change all "exit 100" to "exit 0" in /usr/sbin/invoke-rc.d (in the chroot!). That will generally ignore missing init scripts. Don't forget to revert the change afterwards. The second problem is the missing /scripts directory ("Can't open /scripts/casper-functions" error). This can be fixed with the following command (in the chroot!): ln -s /usr/share/initramfs-tools/scripts /scripts The third problem is that the UCK applies a hack on the zz-update-grub scripts which in my case creates an invalid syntax and thus breaks the upgrade as well (dependency problems on the linux-image-generic package). The fix is described in my comment #10. In order to avoid applying these patches manually each time, I modified UCK to apply it when entering chroot, and revert it when exiting (amongst the other stuff that UCK does in these stages). It's all in /usr/lib/uck/remaster-live-cd.sh. I made a fork of the UCK source code on github and applied the changes. You may just get the follwing file https://raw.githubusercontent.com/jox/UCK/master/libraries/remaster- live-cd.sh and replace your /usr/lib/uck/remaster-live-cd.sh with it (this time *not* in the chroot...). You might also apply the attached patch as follows: $ cd /usr/lib/uck $ sudo patch -p2 remaster-live-cd.sh.bak < \ /path/to/fix-uck-missing-initd-scripts-1.patch (The path in the patch is different since it is from the source code. Running patch with -p2 from the directory the file is located will apply it properly.) You may view the changes on github as well: Fixed missing /scripts dir in chroot. https://github.com/jox/UCK/commit/2f14005cd47845d7496e6a2b1bdd72a553fd6be2 Fixed "grub-probe postinst/postrm hack" in chroot. https://github.com/jox/UCK/commit/d2e2ffbbae80392357b8bf442d28678f9298c52a Added hack to invoke-rc.d in chroot to ignore missing init scripts. https://github.com/jox/UCK/commit/4c8277459c42f089fd73e6ae9a25d3e73177f491 Hope this helps ** Patch added: "Patch to apply fixes to /usr/lib/uck/remaster-live-cd.sh" https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142/+attachment/4190563/+files/fix-uck-missing-initd-scripts-1.patch -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1325142 Title: failure to update libpam-systemd in 14.04 due to missing logind init script Status in “systemd” package in Ubuntu: Fix Released Status in “systemd” source package in Trusty: Triaged Status in “systemd” source package in Utopic: Fix Released Bug description: Hi, while running inside an i386 lubuntu 14.04 chroot, upgrading libpam- systemd to version 204-5ubuntu20.2 fails leaving dpkg in a broken state. 'apt-get -f install' from within the chroot will not fix it, but if the build is made bootable and put into a iso/VM you can recover that way in a live session. the problem seems to be the /var/lib/dpkg/info/libpam-systemd:i386.prerm script failing to bring down the logind daemon with 'invoke-rc.d systemd-logind stop', because invoke-rd.d is only looking for the /etc/init.d/ script (doesn't exist) and not /etc/init/systemd-logind.conf (does exist). ? Reading package lists... Building dependency tree... Reading state information... The following packages will be upgraded: libpam-systemd 1 upgraded, 0 newly installed, 0 to remove and 113 not upgraded. 3 not fully installed or removed. Need to get 0 B/25.2 kB of archives. After this operation, 1024 B of additional disk space will be used. (Reading database ... 113986 files and directories currently installed.) Preparing to unpack .../libpam-systemd_204-5ubuntu20.2_i386.deb ... invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found. dpkg: warning: subprocess old pre-removal script returned error exit status 100 dpkg: trying script from the new package instead ... invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found. dpkg: error processing archive /var/cache/apt/archives/libpam-systemd_204-5ubuntu20.2_i386.deb (--unpack): subprocess new pre-removal script returned error exit status 100 invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found. dpkg: error while cleaning up: subprocess installed post-installation script returned error exit status 100 Errors were encountered while processing: /var/cache/apt/archives/libpam-systemd_204-5ubuntu20.2_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1) Our build logs available upon request, but the scripts to setup the chroot to recreate it are here: https://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/bin/build_chroot_nightly.sh https://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/bin/inchroot_nightly.sh In a web-search I notice a few others running into the same bug, chatter on irc at [18:10], http://irclogs.ubuntu.com/2013/05/28 /%23ubuntu-devel.txt someone else's build log: https://launchpad.net/~qutim/+archive/qutim/+build/6039800 launchpad bug #1323575 seems to be a duplicate of this one. perhaps related to older launchpad bug #1305395 ? note we are also suffering from a failure with update-initramfs, not sure of the root cause of that one but I thought I'd mention it in case they were related, since they both started happening about the same time, a couple weeks ago. (launchpad bug #1317602) It all worked ok after the inital releases of 14.04, so something to do with a package update since then. thanks, Hamish To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142/+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