虚拟机:3、WSL2安装Ubuntu+实现GPU直通+解决问题(ping 8.8.8.8和baidu.com失败、未镜像到 WSL)+安装12.5的cuda+主机和子系统互相访问文件

安装WSL2Ubuntu

https://blog.csdn.net/bule_shake/article/details/135992375

补充,可以在安装WSL2Ubuntu时,就把启动或关闭Windows功能hyper-v适用于Linux的Windows子系统虚拟机平台就都勾选了,后面的WSL2实现linux子系统GPU直通需要使用。

wsl相关命令:

wsl # 启动wsl实例
wsl -l -v # 显示安装的wsl实例及其状态、版本
wsl --shutdown # 退出wsl实例

说明正常安装了ubuntu且是wsl2版本(这里的STATE应该为Running

问题:wsl --update进度卡住

如果命令wsl --update进度一直为0,可以先运行wsl --shutdown,然后再次升级。

问题:微软商店打不开、连不上、无法下载?

https://www.bilibili.com/read/cv9824316/

问题:微软商店找不到wsl2

这很正常,直接安装ubuntu也是可以的,会默认安装wsl,然后执行wsl --update即可。

WSL2实现linux子系统GPU直通

视频和配套文章

视频地址:https://www.bilibili.com/video/BV1ej41167KV
配套文章:https://blog.csdn.net/qq_43197914/article/details/132262379

步骤详解

其中配套文章没有讲解细节,可以见如下步骤:

检查主机 NVIDIA GPU 的当前状态

在主机的命令行窗口输入

nvidia-smi

在这里插入图片描述
如果没有出现类似如上内容,说明主机的gpu驱动有问题,需要安装或更新。

启动systemd

ubuntu实例中输入

echo -e “[boot]\nsystemd=true” | tee -a /etc/wsl.conf

本质就是新建一个/etc/wsl.conf文件,然后写入

[boot]
systemd=true

用其他命令代替也行。

退出ubuntu实例,且在主机的命令行窗口中用wsl --shutdown停止ubuntu进程,然后重启ubuntu实例,再在实例中输入如下命令检查:

ps --no-headers -o comm 1

显示systemd即可。

启动nvidia-smi

ubuntu实例中输入如下

cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi
chmod ogu+x /usr/bin/nvidia-smi

设置网络

在主机命令行窗口输入:

ifconfig

看到172开头的ip,因为hyper-v默认地址是172开头的。
在这里插入图片描述
如果不更改,这个ubuntu子系统就不可以被远程连接,即使是在一个局域网里。

所以我们在搜索栏搜索“启动或关闭Windows功能”,勾选hyper-v
在这里插入图片描述

打开Hyper-V管理器
在这里插入图片描述

在这里插入图片描述
记住创建虚拟交换机的名字,在这里我命名为ubuntu

找到网络和共享中心

在这里插入图片描述
就可以看到多了一个网络连接,该适配器的名字是刚刚虚拟交换机名字。
在这里插入图片描述

然后打开文件管理器,输入%USERPROFILE%,新建.wslconfig文件

[wsl2]
networkingMode=bridged
vmSwitch=【适配器的名字】
ipv6=true

退出ubuntu实例,且在主机的命令行窗口中用wsl --shutdown停止ubuntu进程,然后重启ubuntu实例,输入ifconfig发现172开头的ip变为刚刚网络适配器内的ip
在这里插入图片描述

启动开机自启(可选)

win+r快捷键输入shell:startup并打开,创建wsl-startup.vbs文件并写入如下内容:

set ws=wscript.CreateObject(“wscript.shell”)
ws.run “wsl -d 【实例名称】”, 0

像本人是安装的ubuntu,所以写的是

set ws=wscript.CreateObject(“wscript.shell”)
ws.run “wsl -d Ubuntu”, 0

问题:网络连接失败

ping 8.8.8.8和baidu.com有问题

问题截图:
在这里插入图片描述
解决方案一:
https://www.cnblogs.com/VAllen/p/how-enable-systemd-wsl-windows-11-and-fixed-dns-resolved-error.html

解决方案二:
https://blog.csdn.net/weixin_41446370/article/details/132422315

解决方案三:
删掉%%USERPROFILE下的.wslconfig文件,删除Hyper-v管理器前面步骤新创建的交换机。
打开梯子的局域网连接和系统代理,检查端口是否是默认的7897
在这里插入图片描述
在主机命令行窗口输入:

ipconfig

找到【无线局域网适配器 WLAN】的【ipv4地址】。
ubuntu实例下的/usr/bin目录下新建proxy.sh,然后输入如下内容:

export http_proxy=http://$1:7897 && export https_proxy=http://$1:7897 \
&& echo "已使用$1的7897端口作为网络代理。"

并保存。随后执行如下命令

mv proxy.sh proxy
chmod +x proxy

每次打开ubuntu实例时,都执行. proxy 【ipv4地址】即可

wsl: 检测到 localhost 代理配置,但未镜像到 WSL

https://blog.csdn.net/m0_62815143/article/details/141285660

安装cuda(12.5)

首先查看是否有gpu和合适的cuda版本
ubuntu实例中输入

nvidia-smi

输出如下:
在这里插入图片描述
说明该实例上存在gpu驱动,且适合的CUDA版本是12.5
cuda的安装见:https://blog.csdn.net/m0_54634272/article/details/142392644显卡驱动和CUDA安装部分。

主机和子系统互相访问文件

在主机的文件管理器上输入:\\wsl$\<你的Ubuntu发行版名称>\后即可打开子系统文件夹。
而在子系统上cd /mnt/即可访问主机文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸡鸭扣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值