WSL 安装/迁移/适配 windows配置打开控制面板-程序和功能-启用或关闭Windows功能适用于Linux的Windows子系统虚拟机平台 / Windows 虚拟机监控程序平台Hyper-VWindows Hypervisor Platform有的都选上点击立即重新启动等待电脑重新启动完成安装WSLwin11以管理员身份打开powershell执行 wsl --install 下载但通常该步骤下载速度贼慢还容易失败wsl --install // 下载建议直接官网下载若还是下载过慢可在迅雷下载安装https://github.com/microsoft/WSL/releases配置更新为wsl2wsl --update# 更新 wsl --set-default-version 2 #设置为WSL2如果出现提示请求的操作需要提升请确保以管理员身份运行终端操作如果切换版本依然失败可以尝试先注销已安装的系统再更新切换安装内核更新包下载适用于x64的内核包并安装查看可安装Ubuntu版本wsl --list --online安装对应版本Ubuntuwsl --install -d Ubuntu-18.04 // 安装到指定位置 wsl --install -d Ubuntu-22.04 --web-download --location D:\WSL\ubuntu22.04或者在微软应用商城安装但会安装到默认位置查看对应安装位置以管理员身份打开 PowerShellGet-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object { $p $_.GetValue(DistributionName) $b $_.GetValue(BasePath) $p → $b }查看Ubuntu目录启动wsl安装成功后配合 Windows Terminal 使用下拉powershell检查或启动后配置用户名和密码windows 对应配置文件路径%UserProfile%\.wslconfig基本配置参考[wsl2]processors8memory8GBswap4GBkernelCommandLine vsyscallemulate[experimental]autoMemoryReclaimgradualsparseVhdtrue迁移WSL由于WSL安装的ubuntu默认在C盘这时我们需要迁移到其他盘以节省空间查看wsl状态wsl -l -v停止运行对应Ubuntuwsl --shutdown导出系统镜像wsl --export Ubuntu-18.04 E:\ubuntu18.04.tar注销原有系统wsl --unregister Ubuntu-18.04重新检查原系统是否还存在wsl -l -v导入系统镜像到新位置wsl --import Ubuntu-18.04 E:\LINUX\ubuntu18.04 E:\ubuntu18.04.tar重新启动登录,验证是否正常wsl更改默认root登录打开wsl.confvim /etc/wsl.conf配置对应用户名主机名默认继承 windows[user] defaultuser_name关闭重启wsl验证wsl --shutdownTina SDK从虚拟机移动到WSL实例分析版本SDK:v821 v1.0 Ubuntu:Ubuntu-18.04前提虚拟机编译性能低配合IDE占用内存高所以转移SDK,使用轻量级linux环境Tina SDK编译报错vsyscall未启动cc1: internal compiler error: Segmentation faultriscv32-linux-gcc.gnu: internal compiler error: Segmentation fault signal terminated program cc1wsl配置vsyscall路径冲突由于SDK从虚拟机复制旧路径与新路径存在差异需要clean确保环境干净make clean或cleanall若情况依然报错需要手动清理编译中间文件find ./* -name *.o.cmd | xargs rm -vfr {}libfakeroot: connect: Connection refused由于我不小心电脑卡机重启后导致一直打不开wsl资源管理器也一直卡在主文件夹加载一怒之下把这个文件给删了后来想想应该是电脑卡机后wsl异常中断需要时间重新加载启动wsl导致该报错该SDK没想到还更网络配置有关ifconfig发现wsl的ip一直与主机一致也无法联网windows下ipconfig中的网络适配器vethernet (wsl)也消失了改着改着只剩本地回环后就编译成功了但wsl感觉已经被破环不少了Hyper-v创建虚拟以太网交换机也成功不了绝望啊有没有大佬救救我编译成功记得及时做好环境备份原因分析在特定场景下fakeroot在编译过程中会依赖本地 TCP 通信若网络配置异常如防火墙阻止本地回环通信、容器网络隔离等会导致通信失败进而引发编译中断。fakeroot的核心功能是模拟 root 权限环境但其某些实现如 Debian 的fakeroot-net包在多进程协作时会通过本地 TCP 端口或Unix Socket进行进程间通信IPC。直接后果fakeroot进程无法同步权限状态导致文件所有权/权限的模拟失效。编译脚本检测到权限操作失败如chown、chmod返回错误终止编译流程。.wslconfig配置文件参考# 不加载Windows中的PATH内容 [interop] enabledfalse appendWindowsPath false # 不自动挂载Windows系统所有磁盘分区 [automount] enabled false [wsl2] kernelCommandLine vsyscallemulate # 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置请根据实际需要启用 autoProxytrue # WSL2/WSLg DNS 代理隧道以便由 Windows 代理转发 DNS 请求请根据实际需要启用 dnsTunnelingtrue # WSL2/WSLg 子系统的 Windows 防火墙集成以便 Hyper-V 或者 WPF 能过滤子系统流量请根据实际需要启用 firewalltrue # 启用 WSLg GUI 图形化程序支持 guiApplicationstrue # 启用 IPv6 网络支持 ipv6true # 启用 localhost 网络转发支持 localhostForwardingtrue # 限制 WSL2/WSLg 子系统的最大内存占用 memory4GB # 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持 nestedVirtualizationtrue # 启用镜像网络特性支持 networkingModemirrored # 启用 WSL2/WSLg 子系统页面文件通报以便 Windows 回收已分配但未使用的内存 #pageReportingtrue # 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8最大肯定没法超过硬件的物理逻辑核心数 processors8 # 实验性功能 [experimental] # 启用空闲内存自动缓慢回收 autoMemoryReclaimgradual # 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持 hostAddressLoopbacktrue # 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收 sparseVhdtrue # 和 dnsTunneling 配合使用决定是否使用 Windows DNS 缓存池 useWindowsDnsCachefalsepackage/install报错编译报错make -j8 packmake -j1 Vs报错信息find:相对路径“Workstation”包含在path环境变量中与find的-execdir操作结合使用是不安全的。请从$PATH中删除该条目find: The relative path Workstation is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove that entry from $PATH查看环境变量echo $PATH发现Windows环境变量被并入wsl,且原因Windows安装了虚拟机导致Workstation定义冲突修改环境变量取消Windows环境变量确保wsl环境干净sudo vim /etc/wsl.conf添加如下内容# 不加载Windows中的PATH内容 [interop] enabledfalse appendWindowsPath false # 不自动挂载Windows系统所有磁盘分区 [automount] enabled false以管理员身份运行powershell,执行如下命令生效:wsl --terminate Ubuntu-18.04VSCode连接WSL报错提前安装好wsl插件wslServer.sh原因由于我们关闭了windows磁盘的挂载而vscode安装在windows所以wsl找不到对应脚本解决办法创建挂载节点sudo mkdir /mnt/forVSCode添加权限sudo chmod 777 /mnt/forVSCode/临时挂载vscode连接脚本目录sudo mount -t drvfs C:\Users\admin\.vscode\extensions\ms-vscode-remote.remote-wsl-0.88.5\ /mnt/forVSCode卸载节点sudo umount /mnt/forVSCode永久生效sudo vim /etc/fstab添加条目C:\Users\admin\.vscode\extensions\ms-vscode-remote.remote-wsl-0.88.5\ /mnt/forVSCode drvfs rw,relatime,uid1000,gid1000,umask000,fmask000,metadata 0 0GLIBC版本问题查看glibc版本ldd --version查看vscode版本vscode版本若高于1.85版本wsl环境需要安装glibc veresion 2.28,一般Ubuntu 18.04默认安装是glibc 2.27(SDK可能对glibc版本有要求)v533 SDK 报错Ubuntu 18.04 LTS 安装 GLIBC_2.28APT方法_ubuntu 18.04升级gclibc为2.28-CSDN博客非必要不要改动glibc版本建议使用vscode低版本并禁止升级但低版本用户设置可能无法同步