官网链接使用 WSL 访问网络应用程序 | Microsoft Learn
一、Win安装WSL配置
WSL官网链接使用 WSL 访问网络应用程序 | Microsoft Learn
1.1 命令模式开启虚拟化设置步骤
# 启用适用于 Linux 的 Windows 子系统:打开powershell并输入:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart# 启用虚拟化:以管理员打开powershell输入下列命令
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart# 安装在E盘 需要先在E盘创建文件夹
mklink /J "C:\Program Files\WSL" "E:\WSL"
1.2 图形化界面开启虚拟化设置步骤:
1.2.1 选择.NET3.5 和 Hyper-V组件
1.2.2 安装Telnet客户端
1.2.3 打开容器、适用于Linux的Windows子系统、虚拟机平台等组件
1.3 下载X64的WSL2 Linux内核升级包并安装
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
1.4 设置WSL版本号,使用CMD命令
# 执行更新wsl版本
wsl --update
wsl --set-default-version 2# 列出所有发行版子系统
wsl.exe --list --online
异常:无法解析服务器的名称或地址
Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
解决:安装 WSL 报错 Error code: Wsl/WININET_E_NAME_NOT_RESOLVED 问题解决_wsl --install无法解析服务器的名称或地址-CSDN博客
修改主机的host映射文件C:\Windows\System32\drivers\etc\hosts
#添加主机映射
185.199.109.133 raw.githubusercontent.com
二、WSL中安装Centos7
2.1 下载Centos WSL安装包
GitHub - mishamosher/CentOS-WSL: A GitHub Actions automated CentOS RootFS to use with WSL
选择Centos7进行下载,下载完解压到指定目录(安装位置),双击安装即可
2.2 WSL中的Centos7容器的关闭重启
列出已安装的系统
wsl -l -v
关闭打开的Centos7系统
wsl --shutdown -d CentOS7
打开Centos7系统
wsl -d CentOS7
# 卸载系统
wsl --unregister CentOS7
三、WSL启动Centos7的异常解决
3.1 Cannot find a valid baseurl for repo: base/7/x86_64
yum -y update
异常:Cannot find a valid baseurl for repo: base/7/x86_64
解决:
1.替换yum源,浏览器下载https://mirrors.aliyun.com/repo/Centos-7.repo
2.直接复制到该路径
3.使yum源生效
- yum clean all
- yum makecache
- yum -y update
- yum list
4.执行完,还需要回到目录,删除除了这个repo文件的其他文件
3.2 Failed to get D-Bus connection: Operation not permitted
systemctl
异常:Failed to get D-Bus connection: Operation not permitted
解决:wsl 解决 Failed to get D-Bus connection: Operation not permitted_wsl failed to get d-bus connection: operation not -CSDN博客
systemctl.py下载链接
复制到该路径下再修改名称即可
新解决办法:WSL 2 上启用微软官方支持的 systemd - wswind - 博客园 (cnblogs.com)
3.3 启动异常
C:\Users\liang# wsl -d CentOS7
参考的对象类型不支持尝试的操作
下载:https://files-cdn.cnblogs.com/files/turingguo/NoLsp.zip
参考链接:https://www.cnblogs.com/turingguo/p/15718048.html
用管理员执行
D:\WSL\NoLsp\NoLsp.exe C:\Windows\System32\wsl.exe
四、配置WSL默认的账号密码
设置账号密码登录
passwd root
输入密码 -> ********
五、设置WSL中的Centos7开机自启
5.1 方法一(推荐)
1.快捷键WIN + R
2.输入shell:startup,添加文件 wsl-d.vbs,输入以下内容
set ws=wscript.CreateObject("wscript.shell")
ws.run "wsl -d CentOS7",0
5.2 方法二(不推荐)
右键使用管理员权限运行bat脚本:wsl_autostart.bat
@echo off
setlocal enabledelayedexpansion:: Define the task name
set "taskName=WSLAutoStart":: Display a menu to the user
echo Please select an option:
echo 1. Enable WSL autostart on system startup.
echo 2. Disable WSL autostart on system startup.
echo 3. Check if WSL autostart is enabled.
echo.
set /p "option=Enter your choice (1, 2, or 3): ":: Process the user's choice
if "!option!"=="1" (echo Enabling WSL autostart...schtasks /delete /tn %taskName% /fschtasks /create /tn %taskName% /tr "start /B wsl -d CentOS7" /sc onstart /rl HIGHESTif !errorlevel! == 0 (echo WSL autostart has been enabled.) else (echo Failed to enable WSL autostart.)
) else if "!option!"=="2" (echo Disabling WSL autostart...schtasks /delete /tn %taskName% /fif !errorlevel! == 0 (echo WSL autostart has been disabled.) else (echo Failed to disable WSL autostart.)
) else if "!option!"=="3" (echo Checking WSL autostart status...schtasks /query /tn %taskName% >nul 2>&1if !errorlevel! == 0 (echo WSL autostart task exists.for /f "tokens=2 delims=:" %%a in ('schtasks /query /tn %taskName% ^| findstr /i "Enabled"') do (set "status=%%a"set "status=!status:~1!"if "!status!"=="Enabled" (echo WSL autostart is enabled.) else (echo WSL autostart is disabled.))) else (echo WSL autostart task does not exist.)
) else (echo Invalid option selected.
)endlocal
pause
运行完bat脚本之后,测试并检查任务配置。检查触发器:确保任务的触发器设置正确。您的任务应该设置为在系统启动时触发。您可以使用以下命令来查看任务的详细信息:
schtasks /query /tn WSLAutoStart
为了确保任务能够正常工作,您可以手动启动任务:
schtasks /run /tn WSLAutoStart
六、WSL中Centos7的迁移
直接把所在的目录打包到新的电脑,解压tar压缩包。直接双击Centos7.exe进行安装,选择使用原有数据盘即可。