Skip to content

CRLF in /etc/wsl.conf silently fails to use config #12502

@ahupp

Description

@ahupp

Windows Version

Microsoft Windows [Version 10.0.26100.2894]

WSL Version

2.3.26.0

Are you using WSL 1 or WSL 2?

  • WSL 2
  • WSL 1

Kernel Version

5.15.167.4-1

Distro Version

Ubuntu 24.04.1 LTS

Other Software

n/a

Repro Steps

Create an /etc/wsl.conf with CRLF line endings, enabling systemd. Boot WSL, it will skip the config and use /init. The offending wsl.conf file:

$ xxd < /etc/wsl.conf
00000000: 5b62 6f6f 745d 0d0a 7379 7374 656d 6420  [boot]..systemd
00000010: 3d20 7472 7565 0d0a 0d0a                 = true....

If I replace the line endings with just LF, it will use systemd as expected:

$ xxd < /etc/wsl.conf
00000000: 5b62 6f6f 745d 0a73 7973 7465 6d64 3d74  [boot].systemd=t
00000010: 7275 650a 0a                             rue..

I have not checked if this just effects systemd, or all config.

Expected Behavior

WSL would either accept CRLF identically to LF, or fail with an explicit error at startup if the config could not be parsed.

Actual Behavior

adam@DESKTOP-R4CAFH5 ~> xxd < /etc/wsl.conf
00000000: 5b62 6f6f 745d 0d0a 7379 7374 656d 6420  [boot]..systemd
00000010: 3d20 7472 7565 0d0a 0d0a                 = true....
adam@DESKTOP-R4CAFH5 ~> ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2616  1760 hvc0     Sl+  22:18   0:00 /init

Diagnostic Logs

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions