Window 和Linux 官方虽然从来没有公开宣战过,但是吃瓜群众特别喜欢拿他们来比较(易用性啊,安全性啊),作为成年人我们都知道 :尺有所短,寸有所长,每个人的尺寸都不一样。
但是鄙视链这个东西肯定是不可避免滴,比如会Linux的,很可能就会鄙视只会window的。即便是不会Linux的,也会一边用一边鄙视Window^_^。
不过,现在的window已经今非昔比了,应该说现在的微软更加开放了。
除了买下github积极参与开源项目外(微软会爱开源,十年前的我是不敢这么想滴),还开发出了广受程序员喜爱的免费的编程工具vs code 。当然我感觉最厉害的是,据说现在在window上可以跑Linux系统了。
不晓得大家什么感受,我反正是有一种活久见的赶脚。以至于让我浮想联翩,会不会有一天window和mac也会搞联动呢?不会的,不会的,不会的!
虽然Linux玩的不是很溜,但是非常想要体验一下在window上跑Linux的感觉。尤其是前段时间很多号都在推送Window10 2004 和 WSL2 (Windows Subsystem for Linux)的消息,据说已经可以在线更新了,据说已经很容易玩了,据说越来越完善了。我信你个鬼...!
不管怎么样,最后我还是搞成功了,所以经验不要浪费,分享一下过程!
这个过程大概可以分成两部分。
第一部分:升级window
第二部分:安装Ubuntu
升级window
获取和安装Win10 2004
按照传统的方式肯定是搞个镜像“刷机”,但是自从多年前帮女神装系统失败,通宵恢复数据,脸面丧尽之后,我就再也没自己装过系统了。所以刷机是不可能了,我选择安全可靠的在线升级。在线升级可以通过官方的升级工具全自动完成,会保留之前的配置,应用和数据。
这里有三种方式
易升
MediaCreationTool.exe
系统自带更新
后来发现这三种原理一样,就是帮你在线下载安装包,缓存在C盘,然后解压,启动,检测,安装。安装文件并不算大,大概几个G,网速好的下载一下也不需要多少时间。
虽然原理一样,我更倾向于使用系统自带更新,但是这种方式默认情况下可能无法操作。此时修改更新选项就非常重要了,需要启用预览体验计划才可以获取到2004的版本的推送信息(只有这个版本才包含WSL2)。
按一下电脑左下角的WIN图标,输入更新,选择检查更新。
然后点击Window预览体验计划,默认状态我有点忘了,搞完后大概就是这个样子。
预览体验成员设置选的是最下面那个“发布预览频道” 。这个选项推出的版本比较稳定,上面的Beta版和DEV就是让你当小白鼠咯。这里设置完成后点一下“Window更新” 检查更新就应该能检测到2004版了。
对于大部分人而言,更新过程会非常简单。而我,在这上面卡了好久。
更新了无数次都卡在了这一步,更新工具提示我有一个叫“键精灵”的应用存在兼容性问题。右侧有个卸载功能,但是一直卸载不成功。去控制面板又找不到这个程序。
键精灵是个什么鬼,哪里都找不到资料,我不是没想过“按键精灵” ,但是我完全没影响有装过这个东西,程序列表里也找不到。后来,经群友点拨,看了眼注册表才发现:你根本就不是精灵,是个鬼,还真有这东西。
把这个删掉就好了,安装过虚拟机的朋友可能还会遇到兼容性问题。同样的方法,把虚拟机软件卸载,然后把注册表里相关的内容删掉(友情提示,这东西不懂千万别乱动,删除之前一定要备份)。
具体操作为:
搜索reg 点击注册表编辑器。
打开之后大概是这个样子。
然后快捷键Ctrl+F ,输入“精灵” ,就可以看到上面截图中的按键精灵了。为了安全安全起见,先右键导出,然后右键删除。
兼容性问题解决后就简单了,点击安装软件下方的刷新,就能继续了。后面就顺畅很多了,根据提示来,经过几次重启,就能进入新的系统了。安装过程可能会持续几十分钟到几个小时,等待的时间我大概打了好几把王者。进入新系统后和之前没啥直接区别,该在的都还在。
下面去看看系统版本。
右键点击左下方的win图标,然后点击系统。
Windows 规格这边显示了你当前的系统版本。从图中可以看到,我当前的版本号为2004,操作系统版本为19041.487,体验为 Windows Feature Experience Pack 120,2212.31.0 。平时可以不关注这些东西,但是为了安装WSL必须关注这里的每一个数字。
安装Ubuntu
1. 安装 WSL2
系统更新到2004之后,就可以安装WSL2。WSL的全称为:Windows Subsystem for Linux 。这项功能可以让开发人员获得原汁原味的 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动的开销。
简单来说就是比虚拟机消耗资源少,比双系统切换快,一行命令秒换系统,丝般顺滑。
启用WSL
控制面板->程序->程序和功能。
启动或关闭Windows功能
找到适用于Linux的Windows子系统 ,前面打钩,确定后,重启电脑。
这个操作应该等价于在PowerShell 输入命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
更新到 WSL 2
启用WSL后默认为1.0版本,我们需要升级到2.0版本。先看下wsl和wsl2的差别。
根据官方介绍,要更新到wsl2的必要条件是 Windows10的版本已经更新到1903+, 操作系统内部版本18362+ 。什么?WSL文档最前面说的不是要2004才可以装么!!!
感情,我是通宵装了个寂寞!一定是他文档写错,我没白装,只能这样安慰自己了。
启用“虚拟机平台”可选组件
PowerShell 输入命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
然后重新启动计算机。
将 WSL2 设置为默认版本
以管理员的身份打开 PowerShell,将 WSL 2 设置为默认版本,输入命令:
wsl --set-default-version 2
一行命令下去,某杀毒软件蠢蠢欲动:好久没杀毒了,看到什么软件都像病毒。哎,这种提示反正喜闻乐见了,点允许就好。
正常运行该命令后,你可能会看到此消息:
WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel。
这样就需要通过网https://aka.ms/wsl2kernel下载Linux 内核更新包。默认推荐的为x64版本,如果是ARM64计算机需要下载ARM64的包
安装 Linux 内核更新包
到这里WSL2 就安装完成了。
2.安装 Ubuntu18.04
装完WSL2 就可以装具体的Linux发行版了,接下来,我们打开微软的毫无存在感的Microsoft Store !
网址 :https://aka.ms/wslstore
可供选择的系统不止一个哦,Ubuntu排在最前面,除此之外还有Kali,Debian等系统。
我这里选择了Ubuntu,点击图标可以进入安装页面。
点击获取,就开始安装,默认安装的版本为20.04,安装包大概400M左右,就我的情况来说安装速度还挺快!
安装完成之后点击蓝色按钮就可以启动Ubuntu了。同时也可以通过开始菜单直接启动。当然...不要高兴的太早(⊙o⊙)…
竟然给我这么多问号,充满疑问的应该是我啊,深深感叹,尝鲜路上处处坑!
Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0xc03a001a Error: 0xc03a001a ??????????????????????????????????????????????????? Press any key to continue...
错误提示为0xc03a001a ,官方找不到这个编号的错误,但是根据WslRegisterDistribution这个线索找到了答案。
解决方法为修改某个文件的属性。文件路径如下图,dream80处换成自己的用户名。
找到文件夹后,右键属性。
然后点击 高级
把压缩或者加密属性下面的勾去掉。
应用
将更新应用于次文件夹,子文件夹和文件。
通过开始菜单,再次打开Ubuntu,就一切正常了!
可以看到初始化Ubuntu系统的提示。
首次使用需要输入用户名和密码,输入成功即可开始使用!
随便敲几个命令看看,安装几个包试试,都没啥问题。不过,实际使用中最好还是不要装20.04版,装个18.04比较稳妥。20.04版有些配套的包可能会安装失败(缺少各种依赖)。比如ffmpeg这个东西在20.04下面通过apt安装就不成功,需要自己编译。编译?我是不可能编译的!
安装Ubuntu18.04的话只需要在微软应用商店搜索即可。找到之后和20.04一样安装,安装完之后你就有两个Ubuntu咯。
Window下的Ubuntu就安装完成了,在Ubuntu中输入命令:
explorer.exe .
可以直接调出window的资源管理器,查看Ubuntu下的文件,直接对文件进行操作,这个操作666啊。而Ubuntu的文件具体存储位置是在C盘AppData下面。
C盘一听到这个消息,当场哭晕在厕所!
纠结多日的问题终于解决了,以后不需要远程,不需要双系统,不需要虚拟机,我就可以一边用window,一边用Ubuntu了。
有了Ubuntu干点什么,学习命令啥的肯定不能满足我,装个DeepFaceLab搞搞深度学习也许是个不错的想法,也许性能大幅提升哦。
但是现实告诉我们,千万不要在刚解决一个问题的时候,立马去创造另外一个问题。在window上的Ubuntu里面把GPU调起来可并不是一件简单的事情...
搜了一下资料,大概的意思是:我还得升级window版本,还得升级显卡驱动,还得升级WSL版本,还得装特殊的tensorflow版本... update,update,update...
经过一个通宵的“思考”,我决定暂时放弃,来日再战!