I'm also working on a change to libc6's postinst in bug #672177 to not call telinit u at all, because upstart will lose all of its state if it is restarted. Instead, we need to touch /var/run/init.upgraded to force the restart of upstart just before unmounting the root filesystem.
So, in the case of a chroot/busybox init, this would do nothing. If one is upgrading from sysvinit to upstart (dapper -> hardy upgrades must still be supported IIRC) then this has to be handled delicately, and maybe already is, I haven't looked at whether update manager or one of the maintainer scripts does something clever here.
I'm also working on a change to libc6's postinst in bug #672177 to not call telinit u at all, because upstart will lose all of its state if it is restarted. Instead, we need to touch /var/run/ init.upgraded to force the restart of upstart just before unmounting the root filesystem.
So, in the case of a chroot/busybox init, this would do nothing. If one is upgrading from sysvinit to upstart (dapper -> hardy upgrades must still be supported IIRC) then this has to be handled delicately, and maybe already is, I haven't looked at whether update manager or one of the maintainer scripts does something clever here.