If you issue timedated's SetTimezone D-Bus call and strace the daemon, you see that it fails because of this:
symlink("../usr/share/zoneinfo/Europe/Berlin", "/etc/.localtime4e49606a750b8c2c") = -1 EROFS (Read-only file system) Which means that timedated is trying, entirely sensibly, to atomically overwrite the /etc/localtime symlink with the new timezone. This doesn't work with our ro-/etc scheme that we have on our device images. There will be a similar problem with updating /etc/timezone atomically too, but that's a file instead of a symlink. The rough workaround that we have in mind (suggested by cjwatson, thanks) is to create a writable directory and make /etc/localtime /etc/timezone /etc/adjtime be symlinks to files/symlinks as appropriate inside there, which are themselves atomically updated. Do this for the fallback case (EROFS) only. It does mean that we'll need to play whack-a-mole with anything else which thinks it can update these, sadly. I wonder if it'd be better to revisit making the whole of /etc writable on our images and deal with the conffile issues another way. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1227520 Title: Timezone changes are not working due to ro /etc and bind mounts To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1227520/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs