Windows11
的wsl2
真香,是一个优秀的环境容器,还是一个Linux
入门体验系统。
也就是在控制面板的程序分类里面找到启用或关闭Windows功能。
如果你在Windows10
里面已经体验过Docker Desktop
或者wsl
,那么你的Hyper-V
是已经开启的。
如果在此基础上,你是直接通过Windows Update Assistant
升级的话,是不需要多选择什么的,只需要开启适用于Linux的Windows子系统功能就好了。
但如果你是通过网上各种各样的方法直接暴力安装的Windows11
,那么就得重新选择。如果你之前并没有开启Hyper-V
,或者说你使用的是家庭中文版,没有这个选项,那就没办法选择了。
所以,干脆放弃选择,我全都要。
直接将下面的代码保存为hyper.cmd
,使用管理员权限运行。
@echo off
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
pause
既然都已经用了,那就再加点别的,我们把Windows
本地安全策略开了吧,反正里面各种配置也需要修改的。同样的,将下面的代码保存为gpedit.cmd
,使用管理员权限运行。
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause
基本上需要开启的就全部开启了。
点击这里跳转到下载地址,大致上长这样:
可以看到,最新的版本是 5.10.60.1 5.10.60.1 5.10.60.1。
如果说你已经有了wsl
,只需要打开终端,执行这条语句:
wsl --update
要注意的是,如果不使用管理员身份打开终端,将会提示你请求的操作需要提升,所以还是加一个管理员身份吧。
如果成功了,就会这样提示你:
对于一些刚刚升级Windows11
的小伙伴,可能还来不及修改BIOS
。不过我们可以先看看一些必要的东西:
先打开任务管理器(Windows11
是使用Ctrl
+Shift
+Esc
),在性能选项栏中会有一个虚拟化技术的标记,让我们看看打开没有。
对于程序员和游戏爱好者来说,应该是早就开启了。没开启的话就得想办法进去BIOS
看看了。
这还只是硬件上开启了虚拟化而已,实际上还是会有报错,说什么,
请启用虚拟机平台 Windows 功能并确保在 BIOS 中启动虚拟化。
有关信息,请访问 https://aka.ms/wsl2-install
已退出进程,代码为……
倒也不是Windows11
的BUG
,只是单纯的软件上还需要进行设置。这里已经有大牛给出了解决方案了。
针对这种办法就使用这行命令:
bcdedit /set hypervisorlaunchtype auto
重启之后,就没有这些问题了。
如果你是Windows11
用户,可以直接使用命令:
wsl --set-default-version 2
以保证你所使用的将是WSL2
。
以上步骤全部完成之后就可以直接去Microsoft Store
里面寻找自己喜欢的版本了。在这里我选择的是Ubuntu2004
版本。
图中因为我已经下载了,所以按钮变成了打开,实际上是获取。
如果你没有安装的话,点击获取,Windows11
将会自动把Ubuntu
安装在C盘下。由于我是整个固态 512 G 512G 512G全部当作C
盘,所以不介意。
如果说各位同学需要将Ubuntu
安装在非C
盘位置,则需要按照微软官方给的提示进行安装,也就是在下面这个列表中选择你希望安装的Ubuntu
系统的安装包:
系统名称 | 链接 |
---|---|
Ubuntu 20.04 | https://aka.ms/wslubuntu2004 |
Ubuntu 20.04 ARM | https://aka.ms/wslubuntu2004arm |
Ubuntu 18.04 | https://aka.ms/wsl-ubuntu-1804 |
Ubuntu 18.04 ARM | https://aka.ms/wsl-ubuntu-1804-arm |
Ubuntu 16.04 | https://aka.ms/wsl-ubuntu-1604 |
Debian GNU/Linux | https://aka.ms/wsl-debian-gnulinux |
Kali Linux | https://aka.ms/wsl-kali-linux-new |
SUSE Linux Enterprise Server 12 | https://aka.ms/wsl-sles-12 |
SUSE Linux Enterprise Server 15 SP2 | https://aka.ms/wsl-SUSELinuxEnterpriseServer15SP2 |
openSUSE Leap 15.2 | https://aka.ms/wsl-opensuseleap15-2 |
Fedora Remix for WSL | https://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/ |
以Ubuntu2004
为例,下载的将会是一个后缀名为appx
的文件,就像这样:
先别急嘛。如果双击,那就直接安装在C
盘了。
于是,重命名为zip文件,使用任何一种解压工具解压为文件夹,就会出现这样的文件结构:
经常装系统的同学们应该马上就意识到了,这里面有个install.tar.gz
,也就对应Windows
安装镜像中的install.vim
,那么下面的ubuntu2004.exe
也就不出意外的对应setup.exe
了。
还是别急嘛,如果直接双击这个exe
,直接就安装了。我们先将整个文件夹剪切到你需要安装的位置,无所谓在哪,反正就是正常的剪切与粘贴。准备好了之后,双击,就能够完美运行,并且安装位置就在你当前粘贴的地方。在当前的文件结构中,会生成一个rootfs
文件夹,这就是Ubuntu2004
系统中的所有文件了,点开里面会显示这些内容:
相当熟悉的文件结构,不是么?
但如果你是默认安装的,你就找不到文件位置了。我也不清楚到底安装在哪里了,总之只在侧边栏显示,就先这样:
似乎也没什么坏处。
即使你找啊找啊,最终找到的还只是这个而已:
仔细一看,是不是太大了一点?直接占了 28 G 28G 28G的存储空间。不过里面安装了一些东西,确实显得比较大。到后来也不知道到底有些啥了,只知道里面有些很大的东西。不过确实相对Winodws
而言已经相当小了。
虽然说我们可以轻易地在文件资源管理器里面把一些文件看得清清楚楚的,但还是不建议你随便在Windows
环境下对Linux
子系统的文件进行随意的改动。
实际上,无论是Windows11
还是Windows10
,都能够使用Docker Desktop
创建镜像并能够让Windows
环境免于各种各样的安装,虽然确实能够完成完整的功能,但在一些地方还是相当鸡肋的。
但Docker Desktop
的缺点就是启动速度太慢了。
因为Docker Desktop
在Windows
的表现中将会因为文件映射而造成性能极低,这将会对于jupyter
、npm
等需要文件映射到本地磁盘的镜像将会在性能上大打折扣。于是,总是因为各种问题重启的Windows Server
服务器中的Windows Docker Desktop
也将会因为映射而重启速度极慢。
如果你是本地运行Docker Desktop
,也将会因为Docker
很长时间没有开启而干等。平常摸鱼的时候倒还好,一旦有什么紧急事件需要调度服务器中的内容,突然启动Docker Desktop
,那就真的火烧眉毛了。
所以,最好最好,如果真的希望使用Docker
,尽可能避免使用Docker Desktop
,或者说没有办法的话最好不要使用文件映射。
实际上是有的。
也就是,在Docker Desktop
中不使用文件映射,使用VSCode
进行远程连接就好了。
但是这就对于镜像有一些较高的要求,比如能够执行sudo
使用管理员权限。这就对jupyter-notebook
的各种镜像来说相当的不友好了。当然,你可以参照官方代码库中给定的Dockerfile文件修改添加一行passwd
修改密码就好了,对于萌新来说并不是很友好就是了。
当然就是wsl
啦。
即使你是Windows10
,你也可以把wsl
当成一个本地万能Linux
服务器。只不过你可能少一个能够直接访问wsl
的终端。如果想考验自己的动手能力,那么就用ssh
冲吧;如果说你希望在Windows10
里面使用Windows Terminal
,那就试试这款Windows Terminal Preview吧,最起码这个Preview
版本还是能够一步步更新成为正式版,所以放心使用吧。
localhost
访问服务Linux
用,相当适合新手学习./Anaconda.sh
apt install ubuntu-desktop unity -y
Windows Terminal
(或者preview
版本)可以进去子系统直接操作,而不需要下载什么FinalSehll
、putty
等等,更不需要下载openssl
在难看的黑框框里面用ssh
远程控制,甚至都不知道错在哪。当然啦,如果说有一些只能在Windows
平台下安装的环境,比如Python
爬虫中的一些相当具有个性的包,那是真的没有办法的,该安装还是得安装。
如果你只是Windows10
,你可以使用VSCode
在中小型项目中稍微顶一下,使用插件就好了。