windows11配置wsl2虚拟linux环境

发布时间 2023-11-12 13:56:27作者: colo1rful

windows11配置wsl2虚拟linux环境

wsl( Windows Subsystem for Linux )是microsoft官方为windows开发的模拟Linux方法。避免了虚拟机vmware的性能损耗开销,或者双系统两者不能同时运行的问题。wsl2似乎可以满足大部分Linux需求。方便且优雅!

安装wsl2

安装方法

官方的介绍文档:

WSL 的基本命令 | Microsoft Learn

安装wsl只需要在windows终端输入一条指令

wsl --install

等待几分钟,会安装wsl工具和默认的Linux系统。

也可以指定安装的Linux系统

wsl --list --online  //查看可安装的Linux版本
wsl --list --verbose  //查看已安装Linux
wsl --install <Distro>   //安装指定Linux版本
wsl --set-default <Distribution Name> //设置默认 Linux 发行版

通过wsl运行Linux

wsl --distribution <Distribution Name> --user <User Name>  //运行特定的 Linux 发行版

可能的报错

无法运行Linux

安装完后,运行Linux,一般出现error 0x80370114。

需要在Windows中, “设置”->“应用”->“可选功能” , 下滑至菜单最下面,找到“更多windows功能”选项 。开启“适用于Linux 的Windows子系统”功能。

参考:

WIN11按照官方文档安装WSL2时出现error 0x80370114_半路杀出来的小黑同学的博客-CSDN博客

其他设置

迁移wsl位置

因为wsl默认是在C盘。出于空间问题,移动到d盘。

步骤是:导出系统 ——删除系统——导入系统并重新设置存储位置—— 修改默认登录用户

wsl --export Ubuntu D:\wsl\ubuntu.tar  #即 wsl --export <系统名> <导出文件目录>
wsl --unregister Ubuntu  #删除目录
wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu.tar  --version 2  # 即 wsl --import <系统名>  <新的安装位置>  <tar文件目录> WSL版本号
Ubunatu config --default-user <Username>  //修改默认登录用户

参考:

通过WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度学习框架全过程 - 简书 (jianshu.com)

磁盘挂载

需要和系统盘不一样的磁盘(挂载不同分区不行)。这个没有配置。

Linux配置

apt换源

国内的镜像服务器,有 阿里源 ,清华源,中科大源。

apt镜像源配置文件是 /etc/apt/sources.list 。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak      #备份
sudo vim /etc/apt/sources.list      #编辑源配置文件

不同的Linux版本代号,需要用不同的源。不然后面在apt update和下载软件时,会出现各种问题。(update后有wrong,gedit下载不了,gcc下载后无法编译源文件,报错找不到stdio.h等,实际上是源问题导致下载不兼容的软件)

正常的话,reading后面是没有 wrong的。

查看系统代号

lsb_release -a    #查看系统版本代号
uname -r   #查看内核版本,内核不对可能也有问题

我的Ubuntu的发行版是jammy,下面的换源地址就不行,它的发行版是 bionic。可以直接把bionic 改为 jammy,懒的可以直接百度jammy的镜像源地址。

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

找到的jammy源。

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
 
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

卸载换源前下载的软件

sudo apt-get remove XXX
sudo apt-get update

环境配置

一般的话,用apt install 安装 g++,然后用vscode写代码,用Linux工具编译。

编译时需要的硬件驱动,是在物理机(Windows)下安装。

vscode配置

WSL插件

在vscode下载官方的WSL插件。现在已经改名叫WSL了。

连接方法1

vscode中,快捷键ctrl+shift+p,可以打开插件控制面板,调用插件功能,在WSL中重新打开文件夹。

这个的优点是可以打开Windows下的目录,对应的速度慢点。这种方法更灵活。

在终端通过指令方式编译程序并运行。

连接方法2

也可以在远程资源控制器中,选择WSL目标,进入ubuntu。

进入之后的界面如图

但是这个相当于进入了Linux目录中,只能在Linux中建立文件和目录,速度也快些。

其他问题

讲道理,应该是可以直接用vscode的运行按钮,直接编译文件的。但是要处理配置文件,而vscode的配置文件launch.json,我目前还是看不懂的。不然会更方便。