生信之旅

扫码分享下吧!
分享

windows linux子系统版本切换(wsl1与wsl2)

一开始本教程是打算部署wsl使用显卡的,由于电脑自带显卡过旧,可能没有用,所以部署显卡教程暂时停滞,下面主要是介绍wsl1切换为wsl2

现在windows的linux子系统也可以直接使用主机的显卡了,不过需要wsl版本为2,同时需要在windows下安装好显卡的驱动,wsl下就不用安装了,而且linux的内核需要5.10.43.3或更高。下面我们来说明下具体的操作步骤。

一. WSL版本及内核

首先我们可以检查下你的WSL版本

wsl -l -v

上诉命令可以查看你安装的Linux及对应的wsl版本,如果版本是1,则你需要更新一下

wsl --set-version  Debian 2  # 例如该命令将debian修改为使用wsl2
wsl --set-default-version 2 # 设置wsl默认版本为2

如果你的版本为2了,则查看你对应linux的内核版本是否5.10.43.3或更高,如果不是的话,则需要更新

wsl --status
wsl cat /proc/version

# 以上两个命令均可查看内核版本

wsl --update  # 若你的电脑没有设置更新,则需要设置更新或者采用下面的步骤

# 到该链接下下载对应版本的升级程序 https://www.catalog.update.microsoft.com/Search.aspx?q=wsl
# 或者到https://github.com/microsoft/WSL2-Linux-Kernel 下载后编译,这部分由于我没有操作,请看官方文档或查找教程
# 下载升级程序后点击运行即可

# 更新完后重启wsl
wsl --shutdown

二. 网络配置

wsl2的网络和wsl1的不同,其与主机的网络不在同个网段内,所以需要配置一下

3.1 主机访问wsl

由于不能像wsl1那样直接通过127.0.0.1进行访问。所以如果主机想用xshell这样的远程工具进行连接时,比较麻烦,需要找到对应wsl的ip地址才行,但是吧,每次重启后,这个ip都会更换,所以就比较麻烦了。所以我打算通过自动修改主机上的hosts文件,让wsl ip 解析到一个固定域名,用域名连接。由于在wsl中可以访问到主机的文件,所以我们直接通过wsl平台进行自动修改比较方便。我的做法是将替换的代码写入到自启脚本中(/etc/init.wsl),见 windows10 linux子系统(wsl)开机自启

this_ip=`hostname -I`  # 也可以用该命令获取 ifconfig eth0 | head -n2 | grep inet | awk '{print$2}'
host_file=/mnt/c/Windows/System32/Drivers/etc/hosts
sed -i "s|.*wsl|${this_ip}\twsl|" $host_file

3.2 wsl访问主机

我的wsl是直接ping不到宿主机的,这是由于宿主机防火墙的原因,你可以使用以下的命令查看你是否能ping到你的宿主机

win_ip=`cat /etc/resolv.conf | grep nameserver | cut -d ' ' -f 2`
echo $win_ip
ping $win_ip

如果不行的话,则需要在主机的防火墙处新增一个入站协议,主要在作用域处,本地IP选择任何IP地址,远程IP选择下列IP地址,然后添加本地子网地址即可,其余选项可默认。保存后,即可。

同时,为了防止该ip会变动,我们也通过域名解析的方式,将其与域名关联起来。也是将下述替换代码添加到自启脚本中(/etc/init.wsl)

win_ip=`cat /etc/resolv.conf | grep nameserver | cut -d ' ' -f 2`
wsl_host=/etc/hosts
if [`grep -c "win_host" $wsl_host` -ne '0'];then  # 更新wsl host文件
        sed -i "s|.*win_host|${win_ip} win_host|" $wsl_host
else
        echo "${win_ip} win_host" >> $wsl_host
fi

参考:

1. https://docs.microsoft.com/en-us/windows/ai/directml/gpu-cuda-in-wsl

2. https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started-with-cuda-on-wsl

版权声明:本文转载请注明出处!

最新评论:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

captcha

公告栏

有任何问题均可以在文章页面留言!或者邮件 burning@burning.net.cn 欢迎关注微信公众号 “生信之旅”,每天均可在菜单栏领取外卖红包、支付宝红包!最高20元!

服务器推荐

欢迎关注公众号

欢迎关注生信之旅