WSL 开发环境搭建
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
1 简介WSL( Windows Subsystem for Linux 核心功能 原生兼容:直接运行Linux命令行工具(如Bash),无需修改或额外安装X服务器。 1.1 WSL1与WSL2WSL1与WSL2的核心区别如下: 内核与系统调用支持 WSL1:基于动态翻译层,将Linux系统调用转换为Windows NT调用,没有真正的Linux内核。因此不支持需要完整系统调用兼容性的应用(如Docker),且部分系统功能(如systemd)不可用。 性能表现 文件系统集成:WSL2在跨操作系统文件操作时性能显著提升,而WSL1可能存在延迟和性能瓶颈(例如读写NTFS文件系统的额外开销)。 资源占用:两者启动时间和资源占用相近(WSL2因虚拟化技术可能略高),但WSL2在处理大规模文件操作时更优。 适用场景 WSL1:适合仅需轻量级命令行工具或无需完整Linux内核功能的场景(如脚本开发)。 注意事项:WSL2仅支持Windows 10版本1903版本18362或更高版本中可用(通过选择 Windows 徽标键 + R 来检查 Windows 版本,键入 winver,选择“确定”),WSL1支持范围更广但功能受限。对于低于 14393 的版本,WSL 根本不支持。下表列出了两种版本的主要特性对比。 在Windows 10上如果默认版本是WSL1,可以手动下载更新包对其升级,如下图所示: 升级完成后可通过“wsl --set-default-version 2”命令,将wsl2设置为默认版本,更详细内容请查阅Windows学习文档。 1.2 常见命令wsl --help:显示帮助信息。 wsl --list:列出当前安装的虚拟机,如果在命令后面增加--verbose选项,还可以显示安装虚拟机wsl版本信息。 wsl --list --online:列出可用的Linux分发版。 wsl --install:安装WSL和Linux的默认Ubuntu分发版,还可以使用此命令通过运行wsl --install <Distribution Name>来安装其他 Linux 分发版(如果在 Windows 10 或更早版本上运行 WSL,则可能需要将-d标志包含在命令中--install以指定分发版: wsl --install -d <distribution name>)。 wsl --set-version:后面跟参数<Distribution Name> <Version Number>,表示设置相应Linux 发行版安装的WSL版本。 wsl --set-default:后面跟参数<Distribution Name>来设置默认版本。 wsl --update:更新wsl。 wsl --status:检查wsl状态。 wsl --export:后面跟参数<Distribution Name> <FileName>将指定分发的快照导出为新的分发文件, 默认为tar格式。 wsl --import:后面跟参数<Distribution Name> <InstallLocation> <FileName>将指定的tar文件导入为新的分发版。 wsl --unregister:后面跟参数<DistributionName>注销或卸载Linux分发版。 wsl --mount:后面跟参数<DiskPath>装载磁盘或设备。 wsl --unmount:后面跟参数<DiskPath>卸载磁盘。 wsl hostname -I:返回通过 WSL 2 安装的 Linux 分发版的 IP 地址(WSL 2 VM 地址)。 ip route show | grep -i default | awk '{ print $3}':返回从WSL 2(WSL 2 VM)中看到的Windows计算机的IP地址(该命令在虚拟机中运行)。 2 安装Linux发行版本2.1 启用Hyper-V及相关项打开【控制面板】→【程序】→【启用或关闭 Windows 功能】。 勾选Hyper-V、虚拟机平台、适用于 Linux 的 Windows 子系统。 点击确定后,重启计算机。 Hyper-V 预安装在 Windows 11专业版、企业版和教育版中,只需启用即可。但是,在其他版本(如 Windows 11 家庭版)中,缺少启用 Hyper-V 的选项,下面介绍一种方法可以在 Windows 11 家庭版上安装和启用 Hyper-V。 复制以下代码存为hyper-v.bat: pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" del hyper-v.txt Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL 右键该文件以管理员运行该程序,并且按照提示输入Y,重启电脑,这个时候,就会发现有了Hyper-V。 2.2 安装Linux发行版2.2.1 命令行安装运行“wsl --install”即可安装默认版本,如下图所示: 没用使用最新的版本,又使用“wsl --install Ubuntu-22.04”命令安装早期版本Ubuntu22。 2.2.2 离线安装1 前往https://aka.ms/wslubuntu2204,下载Ubuntu2204-221101.AppxBundle,将下载的文件保存到本地路径,如C:\wsl。 2 以管理员权限打开PowerShell,cd到C:\wsl目录,直接运行“Add-AppxPackage .\Ubuntu2204-221101.AppxBundle”进行安装。 2.2.3 安装路径Ubuntu 默认安装的位置是:C:\Users\<你的用户名>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonXXX_<随机字符串>\ LocalState\ext4.vhdx是Ubuntu根文件系统的虚拟磁盘。 2.2.4 更改安装位置默认的wsl --install命令不会让你选择目录,需要使用导出+导入的方法来自定义安装路径。 首先,使用如下命令导出安装实例镜像 wsl --export Ubuntu D:\WSL\ubuntu_backup.tar 其次,注销原来的 Ubuntu(可选,如果你想完全搬家并删除原始安装,会永久删除原来的实例,包括你安装的软件、数据等,导出后请确保备份)。 wsl --unregister Ubuntu 之后,导入到新目录(你指定的位置) wsl --import Ubuntu_Custom D:\WSL\UbuntuCustom D:\WSL\ubuntu_backup.tar --version 2 最后,你可以用如下方式运行你的自定义实例: wsl -d Ubuntu_Custom 也可以设置默认 WSL: wsl --set-default Ubuntu_Custom 3 使用windows上的cudawindows上版本cuda驱动要安装好,在当前笔记本中显卡为NVIDIA GeForce RTX 4060 Laptop GPU,其他详细信息如下所示: 需在在wsl下Ubuntu中安装相版本的cuda-tookit,安装步骤如下: wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda-toolkit-12-8 需要说明的是由于Nvidia可能会调整具体包的子版本号,导致以上部分链接可能失效,这时要在https://developer.nvidia.com/cuda-toolkit-archive页面自行选择适合自己的版本: 再打开相应的链接,并一步步根据自己的实际情况,产生相应的安装脚本: 根据脚本内容,在wsl Ubuntu下完成安装,之后再在~/.bashrc最后添加加环境变量配置: export CUDA_HOME="/usr/local/cuda-12.8" export PATH="/usr/local/cuda-12.8/bin:$PATH" 通过source命令使环境变量生效,然后即可查看nvcc版本信息。 进行完这一步后,网上有些文章说就可以直接nvidia-smi查看windows下的显卡信息了,其实根本不行,最起码nvidia-smi这个文件根本找不到。强大的chatgpt给出原因: 并且它还给出解决方案,执行以下命令(在 Ubuntu 中): 步骤 1:添加 NVIDIA WSL 包源 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) # 会得到 ubuntu22.04 curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit.gpg curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit.gpg] #' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list > /dev/null 步骤 2:更新并安装驱动组件 sudo apt update sudo apt install -y nvidia-driver-535 nvidia-utils-535 libnvidia-container-tools libnvidia-container1 上面版本号(如 535)要与你 Windows 中的驱动版本一致或兼容(你当前是 572,可以试安装 以上步骤执行完以后,才可以在wsl Ubuntu下正常使用nvidia-smi命令,显示信息和windows下一致:
参考: https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands 转自https://www.cnblogs.com/zhaoweiwei/p/18986211/wsl 该文章在 2025/10/13 10:43:36 编辑过 |
关键字查询
相关文章
正在查询... |