WSL2 Ubuntu启动后目录为何非D:WSL2Ubuntu?

摘要:你在 D:WSL2Ubuntu 里导入了 WSL2 Ubuntu,为什么 wsl -d Ubuntu 启动后目录不是 D:WSL2Ubuntu? 这是因为: 📌 1. WSL 的根文件系统挂载方式 D:
你在 D:\WSL2Ubuntu 里导入了 WSL2 Ubuntu,为什么 wsl -d Ubuntu 启动后目录不是 D:\WSL2Ubuntu? 这是因为: 📌 1. WSL 的根文件系统挂载方式 D:\WSL2Ubuntu 是 WSL 的存储位置(也就是你导入的发行版的 rootfs 存放目录,里面有 ext4.vhdx 之类的文件)。 这个目录在 Windows 下是“WSL 的容器文件”,并不是直接映射到 /mnt/d/WSL2Ubuntu。 启动 wsl -d Ubuntu 后,你看到的 Linux 路径 /,就是从那个 ext4.vhdx 文件里挂载出来的 Linux 根目录。 所以你在 WSL 里面看到的 / 根目录,其实就对应了 D:\WSL2Ubuntu\ext4.vhdx 里的文件系统内容,而不是直接 Windows 的 D 盘路径。 📌 2. 为什么进入 /mnt/c/Users/xueqing 因为 WSL 默认启动时,会把工作目录设为 Windows 当前用户目录 /mnt/c/Users/你的用户名。 所以看起来像是“跑到 C 盘去了”。 但其实根目录 / 已经是你在 D 盘导入的 Ubuntu 系统文件了。 你可以验证一下: cd / ls 你会看到标准的 Linux 根目录结构: bin boot dev etc home lib root usr var ... 这些都来自 D:\WSL2Ubuntu\ext4.vhdx,并不是 Windows C 盘的东西。 📌 3. 如果你想默认进入 /home/用户名 你可以修改 默认启动目录: 编辑 /etc/wsl.conf: [user] default=你的用户名 [boot] command="cd ~" 然后: wsl --shutdown 再启动,就会直接进入 Linux 用户的 home 目录 /home/用户名。 ✅ 总结: D:\WSL2Ubuntu 是 存储位置,WSL 会把它当成一个虚拟磁盘(ext4.vhdx),挂载为 Linux 的 / 根目录。 默认进入 /mnt/c/Users/xueqing 只是启动目录问题,不影响实际根文件系统在 D 盘。 wsl安装之后找不到nvcc? CUDA Toolkit 里有没有 nvcc 先在 WSL2 里面看看 nvcc 是否安装成功: which nvcc nvcc --version 如果 which nvcc 没有输出,说明 CUDA Toolkit 没加到 PATH。 比如 CUDA 一般装在 /usr/local/cuda-12.2/bin/nvcc,你需要在 ~/.bashrc 里加: export PATH=/usr/local/cuda/bin:\(PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:\)LD_LIBRARY_PATH 然后 source ~/.bashrc 再试。