昨天一切正常。今天下午,我重启了电脑,因为课堂上的一些文件下载拖慢了我的笔记本电脑。重启并打开 Ubuntu 后,它默认为root@<mysystem>:~#
。我可以su <username>
,但它会将该用户默认为目录。即使在该用户下,像和打开 VSCode/root
这样的命令也不起作用。explorer.exe
code .
我在 WSL 1 上运行 Ubuntu
答案1
将 WSL 从 C 盘移至 D 盘后,我也遇到了同样的问题。使用以下方法可以轻松解决此问题 -
ubuntu config --default-user <your-username>
希望这可以帮助。
答案2
我能想到的故障排除步骤(如果发生这种情况我会尝试):
您的普通用户
/home/<username>
目录还存在吗?如果是,那么以 root 用户身份查看时,里面的一切看起来是否“正常”?除其他事项外,里面的文件是属于普通用户还是属于 root?如果它们属于 root,那么这可能是我们需要进一步研究的问题。
使用以下命令启动 Ubuntu:
wsl ~ -u <Ubuntu_username> -e bash --noprofile --norc
如果您以该用户身份登录(您的提示会有所不同),那么您的系统中可能出现了问题
~/.bashrc
(尽管可能是不同的文件)。如果上述命令不起作用,请在编辑中将任何错误消息或结果添加到您的问题中。然后检查文件中是否存在该用户
/etc/passwd
。旁注:
explorer.exe
不起作用的原因可能是su <username>
通过“Linux”方法设置用户的路径,但是当您在 WSL 上“正常”启动 Ubuntu 时,WSL 会将 Windows 路径添加到 Linux 路径中。使用后su <user>
,尝试运行/mnt/c/WINDOWS/explorer.exe
- 我希望它会起作用,但请在评论中确认结果(无论哪种方式)或(最好)编辑您的问题。您在评论中提到 WSL1,它使用的文件系统与 WSL2 不同,而且它更“脆弱”。您提到在必须重新启动时,文件下载出现了问题。您是否有可能尝试直接将文件下载
C:\Users\<youruser>\AppData\Local\Packages\...
到 Ubuntu 中?如果是这样,那么可能损坏了主目录。如果您使用过\\wsl.localhost\Ubuntu
或,\\wsl$\Ubuntu
那么这应该不是问题。不过,除非我们真的无法通过上述所有诊断,否则我不确定是否要跳到这个结论并开始“恢复”。但是,如果您有可能使用该
AppData
路径访问 WSL1,请告诉我,以便我们在需要进一步排除故障时记住这一点。