Tested on a pristine UC24 built with a custom `core24` base that uses noble-proposed instead of noble-updates, and ran the same sequence of commands (updating locale, rebooting, ensuring it was the same)
$ systemctl --version systemd 255 (255.4-1ubuntu8.6) +PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified $ localectl status System Locale: LANG=C.UTF-8 VC Keymap: (unset) X11 Layout: (unset) $ sudo localectl set-locale LANG=en_AU.UTF-8 $ localectl status System Locale: LANG=en_AU.UTF-8 VC Keymap: (unset) X11 Layout: (unset) $ cat /etc/locale.conf LANG=en_AU.UTF-8 $ sudo reboot $ localectl status System Locale: LANG=en_AU.UTF-8 VC Keymap: (unset) X11 Layout: (unset) Things are looking good! -- 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/2091657 Title: systemd-localed requires read-only-etc hacks for /etc/vconsole.conf and /etc/locale.conf Status in systemd package in Ubuntu: Invalid Status in systemd source package in Noble: Fix Committed Bug description: [Impact] Ubuntu Core has a read-only /etc, but a writable partition in /etc/writable. In some versions of Ubuntu, the systemd package ships a patch to follow symlinks from /etc/ -> /etc/writable, e.g. for files like /etc/locale.conf. In Core24, this patch needs to be expanded for /etc/locale.conf and /etc/vconsole.conf in systemd-localed. [Test Plan] 1. On a pristine Ubuntu Core system, run "localectl status". Verify that the system locale is set to the default (seems to be "C.UTF-8" based on the current core24 snap). 2. Modify the system locale by running "localectl set-locale LANG=en_AU.UTF-8". The command should complete without error. 3. Check that the locale has changed by running "localectl status". 4. Check that the locale has been saved to /etc/locale.conf 5. Reboot the system, and run "localectl status" again to check that the change has persisted. [Where problems could occur] This hack is designed to be a no-op in non-Ubuntu Core cases. I.e., when /etc/writable does not exist or does not have a link for the given path in etc, the original path is used. As is evident by the ever-expanding nature of this patch, this is not a complete solution. It's possible that more cases will be found where this hack needs to be applied. [Other information] This patch is not carried in supported releases newer than Noble. While this patch is far from ideal, expanding this hack has become the go-to for existing stable releases. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2091657/+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