跳转至
本文阅读量

WSL

WSL 模拟文件系统的文件是 ext4.vhdx

默认安装目录

WSL Ubuntu 默认的安装目录如下

C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState

Windows Docker Desktop 默认的安装目录如下

C:\Users\<username>\AppData\Local\Docker\wsl\data
C:\Users\<username>\AppData\Local\Docker\wsl\main

查看当前都有哪些子系统

wsl -l

适用于 Linux 的 Windows 子系统分发:
Ubuntu (默认)
docker-desktop-data
docker-desktop

如果需要了解详细运行状态

wsl -l --verbose

  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

导出某个分发版

wsl --export Ubuntu D:\backup\ubuntu.tar

导入某个分发版

wsl --import Ubuntu D:\apps\wsl D:\backup\ubuntu.tar

取消注册某个分发版

wsl --unregister Ubuntu

设置默认登录用户

cd C:\Users\<username>\AppData\Local\Microsoft\WindowsApps

.\ubuntu.exe config --default-user <user>
  • user: 登录 WSL Ubuntu 的用户名

迁移后登录进去后 terminal 的颜色不生效了

如何在 Windows 中访问 Ubuntu 子系统的文件

如何查询 Ubuntu 磁盘使用情况

在 PowerShell 下

wsl df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc       1007G   16G  940G   2% /

wsl 子系统默认的磁盘是 1T

在 explorer 路径上访问 \\wsl$

alt text

如何从 Windows 运行 Linux 命令

wsl ifconfig

如何从 Windows 使用 Linux 下的数据库

参考: https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-database ⧉

WSL 中 ML 的 GPU 加速

参考: https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/gpu-compute ⧉

问题排查

wsl 无响应

【现象】

  • 执行 wsl --status, wsl --list --all 均无反应,只能 Ctrl+C 强制关闭;但执行 wsl -v 有输出
  • 重新 Windows 也无法解决
  • 之前是在 wsl 里安装 Python 依赖,磁盘使用比较大,剩余仅 3G,在执行过程中就卡住了,不知道是否和磁盘使用过大有关

【解决办法】

  • 通过重新使能 Windows Linux 子系统解决
  • Windows 按键唤醒开始菜单,【控制面板】=>【启动或关闭windows功能】,将已经勾选的【适用于 Linux 的 Windows 子系统】选项去掉勾选 =>【确定】后【重新启动】
  • 重启后,再次勾选【适用于 Linux 的 Windows 子系统】=>【确定】=> 【重新启动】,之后就可以正常进入 wsl

alt text

【参考】

参考