windows11配置wsl2虚拟linux环境
windows11配置wsl2虚拟linux环境
wsl( Windows Subsystem for Linux )是microsoft官方为windows开发的模拟Linux方法。避免了虚拟机vmware的性能损耗开销,或者双系统两者不能同时运行的问题。wsl2似乎可以满足大部分Linux需求。方便且优雅!
安装wsl2
安装方法
官方的介绍文档:
安装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,我目前还是看不懂的。不然会更方便。