WSL 普通用户登录出现问题:
Sleeping for 1 second to let systemd settle
nsenter: 打不开 /proc/31/ns/time: 没有那个文件或目录
解决方案
使用 root 用户登录,使用以下命令以 root 身份启动 wsl:
wsl --user root
登录系统后,使用下面的执行下面的脚本即可。
#!/bin/bash
self_dir=$(pwd)
echo "Uninstalling ubuntu-wsl2-systemd-script"
sudo rm -rf /usr/sbin/start-systemd-namespace
sudo rm -rf /usr/sbin/enter-systemd-namespace
sudo rm -rf /etc/sudoers.d/systemd-namespace
cd /var/tmp
if [ -f "/etc/bash.bashrc" ]; then
sudo grep -v "# Start or enter a PID namespace in WSL2
export USE_WSLG_SOCKET=false
export USE_WSLG_SOCKET=true
source /usr/sbin/start-systemd-namespace" /etc/bash.bashrc > tmpfile
sudo mv tmpfile /etc/bash.bashrc
fi
cd $self_dir
脚本来自 https://github.com/FiestaLake/ubuntu-wsl2-systemd-script/blob/master/uninstall.sh
处理完成就可以使用自己的用户登录了。
后续处理
若出现:
/etc/bash.bashrc: 行 3: /usr/sbin/start-systemd-namespace: 没有那个文件或目录
bash: /usr/sbin/start-systemd-namespace: 没有那个文件或目录
再次通过 root 登录,注释 /etc/bash.bashrc
的第三行即可。