windown中部署WSL2

一、win10系统配置

1.1 开启虚拟化

在bios中开启电脑的虚拟化功能

1.2 开启Windows功能

设置 -> 应用 -> 程序和功能 -> 启用或关闭 windows 功能
在这里插入图片描述

勾选:

  1. 使用用于 Linux 的Windows 子系统
  2. 虚拟机平台

一、安装wsl

1.1 不使用 Windows store 下载 wsl

# 在管理员身份下使用(其中Ubuntu的版本可变)
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ./Ubuntu.appx -UseBasicParsing
# 上述命令会在当前路径下下载一个 Ubuntu.appx 文件,将其后缀改为zip,并解压
# 双击其中的Ubuntu.exe文件可自动配置wsl

# 注意:解压文件即为wsl的安装路径,可以控制解压路径来控制wsl文件的保存路径

1.2 wsl 的部分指令

https://www.cnblogs.com/kylingx/p/12984487.html

# 查看所有已安装的wsl子系统
wsl --list --verbose
# 进入指定的wsl子系统(使用 wsl 可进入默认的子系统)
wsl -d <wsl_name>
# 取消注册和重新安装分发版 注销后,与该分发关联的所有数据、设置和软件都将永久丢失。 从 Store 重新安装会安装分发版的干净副本
wsl --unregister <DistributionName>

1.3 将 wsl 切换至 wsl2

# 设置wsl默认下载的版本
wsl --set-default-version 2

# 设置指定的wsl为指定的版本
wsl --set-version <distribution name> <versionNumber>
# eg. wsl --set-version Ubuntu18.04 2

二、设置 wsl2 远程连接

https://blog.csdn.net/weixin_43718675/article/details/106844150

2.1 重装 wsl2 的 openssh-server

sudo apt-get remove openssh-server
sudo apt-get install openssh-server

2.2 修改 wsl2 配置文件

sudo vim /etc/ssh/sshd_config

# 修改配置文件中的参数
Port 2222   #设置ssh的端口号, 由于22在windows中有别的用处, 尽量不修改系统的端口号
PermitRootLogin yes   # 可以root远程登录
PasswordAuthentication yes     # 密码验证登录

2.3 wsl2 重启 ssh 服务

sudo service ssh --full-restart

2.4 开启windows的端口

设置 -> 更新和安全 -> windows 安全中心 -> 防火墙和网络保护 -> 高级设置
在这里插入图片描述

入站规则 -> 新建规则 -> 特定端口(2222 与 wsl2 中设置的一致) -> …

2.5 设置 wsl2 与 windows 端口映射

# 在windows的powershell中执行,获取 wsl 内ubuntu的ip地址
wsl -- ifconfig eth0

在这里插入图片描述

# 将ip地址的对应的端口映射到宿主win10对应的端口
# netsh interface portproxy add v4tov4 listenport=[win10端口] listenaddress=0.0.0.0 connectport=[虚拟机的端口] connectaddress=[虚拟机的ip]
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=172.29.41.233

# 检测是否设置成功
netsh interface portproxy show all

在这里插入图片描述


三、配置WSL使用cuda

在WSL中使用GPU:WSL2 + Ubuntu 18.04 + CUDA + Gnome图形界面环境配置

3.1 在Windows系统中安装 适用于 wsl2 的 cuda 驱动

https://developer.nvidia.com/cuda/wsl/download

在这里插入图片描述

3.2 在WSL2中安装CUDA Toolkit

执行下列命令安装CUDA Toolkit。下列命令中的URL适用于Ubuntu 18.04版本,如果你安装的是其他版本需要修改命令中的URL

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update
sudo apt-get install -y cuda-toolkit-11-0

3.3 测试CUDA是否能在WSL2中运作

使用PyTorch中的torch.cuda.is_available()测试,如返回True说明可以运行
在这里插入图片描述


四、创建 wsl2 桌面远程终端访问

WSL2使用xrdp实现图形桌面

4.1 在wsl中安装所需用的包

sudo apt update
sudo apt install -y xfce4 xrdp

4.2 修改xrdp默认端口

由于 xrdp 安装好后默认配置使用的是和Windows远程桌面相同的3389 端口,为了防止和Windows系统远程桌面冲突,建议修改成其他的端口

sudo vim /etc/xrdp/xrdp.ini
# 修改下面这一行,将默认的3389改成其他端口即可
port=3391

4.3 为当前用户指定登录session类型

注意这一步很重要,如果不设置的话会导致后面远程桌面连接上闪退

vim ~/.xsession

# 写入下面内容(就一行) 
xfce4-session

4.4 启动xrdp

由于WSL2里面不能用 systemd ,所以需要手动启动

sudo /etc/init.d/xrdp start

4.5 开启window的端口(参见 2.4)

4.6 开启wsl2到window的端口映射(参见 2.5)


五、关于重启电脑后的重新配置

5.1 wsl到window的端口映射

  • 由于Windows重启后会给wsl重新赋ip地址,因此需要重新设置wsl到window的端口映射
# 查看已有的端口映射
netsh interface portproxy show all
# 删除之前的映射关系
netsh interface portproxy delete v4tov4 listenport=XXXX listenaddress=0.0.0.0
# 查看当前wsl的ip地址
wsl -- ifconfig eth0

# 设置新的端口映射关系
# netsh interface portproxy add v4tov4 listenport=[win10端口] listenaddress=0.0.0.0 connectport=[虚拟机的端口] connectaddress=[虚拟机的ip]
netsh interface portproxy add v4tov4 listenport=XXXX listenaddress=0.0.0.0 connectport=XXXX connectaddress=XXXX
Windows Subsystem for Linux(WSL)是Windows操作系统的一个功能,允许用户在其上运行Linux环境和应用程序。最初的WSL版本是WSL1,在Windows 10上推出。然而,随着Windows 11的发布,WSL也进行了升级。 在Windows 11,WSL1仍然能够运行,但也推出了新的WSL2版本。WSL2相比于WSL1具有更多的优点和改进,因此在进行WSL的升级时,用户可以考虑升级到WSL2WSL2引入了一个全新的架构,使用了虚拟机技术,通过在Windows操作系统之上运行一个Linux内核来实现与Linux的兼容性。相比于WSL1,WSL2具有更高的性能和更好的兼容性。它还支持在WSL环境运行Docker等容器技术,使得开发者能够更方便地进行应用程序的构建和部署。 要升级到WSL2,用户需要在Windows 11上执行一些步骤。首先,用户需要确保其Windows 11版本为2004或更高版本,并启用“虚拟机平台”功能。然后,用户需要打开PowerShell并运行一些命令来启用WSL2,并将其设置为默认的WSL版本。 升级到WSL2后,用户可以使用一些新的功能和命令来管理WSL环境。例如,用户可以使用wsl --set-version命令将具体的WSL发行版设置为WSL1或WSL2,并使用wsl --list --verbose命令来查看已安装的WSL发行版的版本。 总之,Windows 11为用户提供了升级WSL1到WSL2的选项,以获得更好的性能和兼容性。用户可以根据自己的需求和偏好选择是否进行升级,并按照相应的步骤进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ModelBulider

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

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

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

打赏作者

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

抵扣说明:

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

余额充值