** Description changed: [ Impact ] * wsl-setup as the name suggests is specific for Ubuntu on the WSL platform. Other Ubuntu products and experiences are not affected. It holds some configuration data specific needed for smooth integration with that platform as well as the initial setup script invoked by the platform itself when creating a new instance, thus it's seeded for Ubuntu on WSL images. * WSL historically faced instability with their binary interoperability feature (the ability of a Windows binary be started from a Linux shell). Things that touch upon binfmt_misc registration could break it. As of WSL 2.5.7, they implemented a robust solution based on systemd generators injected into the distro by the platform itself. `systemd-binfmt.service` was an example of problematic systemd unit for WSL, thus we used to ship a configuration override to prevent that service from running on WSL, despite some niche users reporting issues against such practice [see 1]. Now, with the latest stable versions of the platform having the root cause addressed we can safely remove this override. * Users setting up new instances of WSL from images containing the patches herein proposed will find no issues to setup custom binfmt handlers. Similarly upon upgrading the wsl-setup package, users will find systemd-binfmt.service no longer disabled. Users still running older versions of WSL will find up-to-date documentation about this topic at: https://documentation.ubuntu.com/wsl/latest/explanation/binfmt/ * Secondly, our setup script fails to set up a new instance when the Windows user name contains non-ascii characters [see 2]. That's a real bug with "catastrophic" impact, meaning the new instance is never ready, as failure of that script implies unusable instance for the WSL platform. It was recently addressed upstream and needs to be backported into all current LTSes affected by that bug. + + * For Jammy and Noble we'll see changes introduced in version 0.5.9, + which are all related to cloud-init. wsl-setup version 0.5.8 would break + on Plucky and later due cloud-final.service no longer existing. Those + are transparent on Jammy and Noble, meaning that we check for cloud- + init-local.service systemd unit that exists on all current LTSes and + follow the semantics we needed to sync with cloud-init during first + boot. Those changes are still desirable because we moved the routine to + sync with cloud-init to its own script, which allows external processes + to check if the instance's initialization is done. We leverage that on + the Windows side of the Ubuntu Pro for WSL system. + [ Test Plan ] BINFMT ------- 1. Make sure your WSL version is 2.5.7 or later. 2. Either set up a new WSL instance or start an existing one. 3. Install wsl-setup from proposed. 4. Assert that the override file (/usr/lib/systemd/system/systemd-binfmt.d/wsl.conf) no longer exists. 5. Reload all daemons with `sudo systemctl daemon-reload` 6. Check that `systemd-binfmt.service` is active with: `systemctl status systemd-binfmt` 7. Launch a windows app (notepad.exe) and close it. Interop should still work. 8. Install `qemu-user-static` and `binfmt-support` and check again. Those packages will change binfmt registrations. 9. Launch a windows app again. Prior to the current version of wsl-setup, this would fail. SETUP SCRIPT -------------- 1. Make sure to have a Windows user name with some special characters, like `João` or `Sebastièn`. 2. Make sure you don't have any custom cloud-config data at: %USERPROFILE%\.cloud-init\ and %USERPROFILE%\.ubuntupro\.cloud-init\ . 3. Download the latest WSL image from releases.ubuntu.com/wsl. - 4. Open PowerShell and import that image as a new instance (instead of the regular creation that would fail): wsl --import Ubuntu2 ~\Downloads\Ubuntu2\ <PATH-TO-THE-DOWNLOADED-IMAGE> + 4. Open PowerShell and import that image as a new instance (instead of the regular creation that would fail): wsl --import Ubuntu2 ~\Downloads\Ubuntu2\ <PATH-TO-THE-DOWNLOADED-IMAGE> 5. Start the instance with `wsl -d Ubuntu2`. You'll be root. 6. Install the patched version of wsl-setup from proposed 7. Run the script /usr/lib/wsl/wsl-setup That script will copy the Ubuntu font to %LOCALAPPDATA%\Microsoft\Windows\Fonts; write its path into the Windows registry for the terminal to use it, and then create a Linux user named after the Windows user name (removing some invalid characters). Prior to this patch it would fail due invalid characters in the font destination path (an encoding issue actually). + + CLOUD-INIT (JAMMY AND NOBLE ONLY) + ---------------------------------- + + Asserts that existing behaviour won't change. To avoid a long + repetition, refer to ISO QA "WSL_cloud-init" test case: + https://iso.qa.ubuntu.com/qatracker/milestones/450/builds/336438/testcases/1835/results + + 1. Follow the ISO QA "WSL_cloud-init" test case using an image built + with wsl-setup containing the patches herein proposed. No deviation from + the tests should happen. [ Where problems could occur ] binfmt: Users still running version of WSL older than 2.5.7 might be surprised by eventual interoperability breaks if they take actions similar to the ones mentioned in the test plan above. We no longer consider those to be our main users, as there were already two stable releases of WSL since the fix was implemented. setup script: Another mistake in that script causing it to fail would result in unusable new instances. [ Other Info ] Upstream GH issues: [1] binfmt: https://github.com/ubuntu/wsl-setup/issues/11 [2] non-ascii username (setup script): https://github.com/ubuntu/wsl-setup/issues/23
** Changed in: wsl-setup (Ubuntu Noble) Milestone: None => ubuntu-24.04.3 ** Changed in: wsl-setup (Ubuntu Questing) Milestone: None => ubuntu-25.10 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2118617 Title: [SRU] Ubuntu on WSL install fails on non-ASCII usernames To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/wsl-setup/+bug/2118617/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs