电脑环境
618买了台联想小新pro13 锐龙版 4800U
,将台式机中的win10
系统迁移到笔记本。
目前win10
是最新的2004版本,wsl
为版本1,想要将其升级为wsl2
使用,因为vmware 20H1
可以和hyper-v
兼容使用了,以前因为需要经常使用vmware
,所以一直没有升级,这次趁着新电脑的机会搞一下。
目前的子系统为:
D:Scoopappscmdercurrent>wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 1
迁移系统的,发现现在状态为stopped
D:Scoopappscmdercurrent>wsl.exe -d Ubuntu-18.04
D:Scoopappscmdercurrent>wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 1
但是没有任何用,过不了一会又会变成Stopped
。
卸载以前的wsl
D:Scoopappscmdercurrent
λ wslconfig /list
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-18.04 (默认)
D:Scoopappscmdercurrent
λ wslconfig /unregister Ubuntu-18.04
正在注销...
D:Scoopappscmdercurrent
λ wsl -l -v
适用于 Linux 的 Windows 子系统没有已安装的分发版。
可以通过访问 Microsoft Store 来安装分发版:
https://aka.ms/wslstore
注意,我以前安装过wsl,所有很多配置信息都不需要再次配置。
这里记录一下需要的配置命令:
安装LxRunOffline
scoop bucket add extras
scoop install lxrunoffline
查看具体版本
D:Program Files (x86)JetBrains
λ lxrunoffline l
Ubuntu-18.04
查看具体路径
D:Program Files (x86)JetBrains
λ lxrunoffline di -n Ubuntu-18.04
D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
使用lxrunoffline进行备份
D:Program Files (x86)JetBrains
λ lxrunoffline export -n Ubuntu-18.04 -f Ubuntu-18.04.tar.gz
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdevfull" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdev
ull" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdevptmx" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdev
andom" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdev ty" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdevurandom" of type 0020000.
[WARNING] Ignoring an unsupported file "\?D:Program Files (x86)JetBrainsCanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc
ootfsdevzero" of type 0020000.
-n :wsl的别名,就是之前用list查看的其中一个
-f :备份的路径,我这直接备份到当前路径backup.tar.gz
注意这里只能导出wsl为版本1的,版本2的不行,必须先转换成版本1的才行。
卸载旧系统,迁移位置
D:MyLinux
λ lxrunoffline uninstall -n Ubuntu-18.04
D:MyLinux
λ lxrunoffline l
恢复备份
D:MyLinux
λ lxrunoffline install -n Ubuntu-18.04 -d D:MyLinuxUbuntu18.04 -f Ubuntu-18.04.tar.gz
[WARNING] Love this tool? Would you like to make a donation: https://github.com/DDoSolitary/LxRunOffline/blob/master/README.md#donation
指定运行某个发行版本
D:MyLinux
λ lxrunoffline r -n Ubuntu-18
[oh-my-zsh] Would you like to update? [Y/n] Y
等同于
wsl -d <WSL名称>
创建快捷方式
使用微软应用商店安装的 WSL 会在开始菜单添加应用图标(快捷方式),而使用 LxRunOffline
安装 WSL 时可以通过添加 -s
参数在桌面创建快捷方式。如果你安装时忘记添加参数,可以使用以下命令进行创建。
lxrunoffline s -n <WSL名称> -f <快捷方式路径>.lnk
导出指定的 WSL 配置文件到目标路径
lxrunoffline ec -n <WSL名称> -f <配置文件路径>.xml
配置信息可以输入
lxrunoffline sm -n <WSL名称>
查看
取消注册(这个操作不会删除目录)
lxrunoffline ur -n <WSL名称>
使用新名称注册
lxrunoffline rg -n <WSL名称> -d <WSL路径> -c <配置文件路径>.xml
设置默认 WSL
设置默认 WSL 后,可以在 cmd
和 powershell
中输入 wsl
直接调用默认的 WSL 。
lxrunoffline sd -n <WSL名称>
等同于
wsl -s <WSL名称>
安装wsl2的前置设置
进入页面 更新 WSL 2 Linux 内核
下载Linux内核更新包,安装更新。
bcdedit /set hypervisorlaunchtype auto
#用管理员模式启动PowerShell然后运行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
这两个安装完成直接 重启 !!!!!!!!!重启!!!!!!
安装CentOS子系统
下载 Centos
的docker
镜像
可以参考 https://github.com/RoliSoft/WSL-Distribution-Switcher 来下载。
或者直接下载
使用LxRunOffline
安装CentOS
D:MyLinux
λ lxrunoffline install -n centos -d D:MyLinuxCentOS -f centos-7-docker.tar.xz
[WARNING] Love this tool? Would you like to make a donation: https://github.com/DDoSolitary/LxRunOffline/blob/master/README.md#donation
D:MyLinux
λ lxrunoffline l
centos
D:MyLinux
λ wsl
[root@qhong-Computer MyLinux]# uname
Linux
[root@qhong-Computer MyLinux]# uname -r
4.4.0-19041-Microsoft
[root@qhong-Computer MyLinux]# uname -a
Linux qhong-Computer 4.4.0-19041-Microsoft #1-Microsoft Fri Dec 06 14:06:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@qhong-Computer CentOS]# cd /
[root@qhong-Computer /]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
上面的D:MyLinuxCentOS
是安装的位置。
其中 -d 后面是要安装到的目录; -f 后面是第二部下载的镜像存放位置;-n 用来指定名称
安装完成之后,使用LxRunOffine
来开启 Centos
lxrunoffline run -n centos
如果,你只安装了一个WSL
,那么直接在cmder
输入wsl
即可启动CentOS
了。
查看:
D:MyLinux
λ wsl -l -v
NAME STATE VERSION
* centos Running 1
将其升级为wsl2
D:MyLinux
λ wsl --set-version centos 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
D:MyLinux
λ wsl -l -v
NAME STATE VERSION
* centos Stopped 2
但是升级以后是stopped
,必须运行起来
D:MyLinux
λ lxrunoffline r -n centos
[root@qhong-Computer MyLinux]# ll
total 0
drwxrwxrwx 1 root root 4096 Jun 27 17:40 CentOS
这里使用的是lxrunoffline
的run
命令
相当于 wsl -d centos
安装Ubuntu子系统
这个就简单了,照猫画虎就行
我以前就有Ubuntu-18.04
的子系统,这次升级为wsl2
就行。
D:MyLinux
λ lxrunoffline install -n Ubuntu-18.04 -d D:MyLinuxUbuntu -f Ubuntu-18.04.tar.gz
D:MyLinux
λ wsl -l -v
NAME STATE VERSION
* centos Running 2
Ubuntu-18.04 Stopped 1
D:MyLinux
λ wsl --set-version Ubuntu-18.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
D:MyLinux
λ wsl -l -v
NAME STATE VERSION
* centos Running 2
Ubuntu-18.04 Stopped 2
D:MyLinux
λ lxrunoffline l
centos
Ubuntu-18.04
D:MyLinux
λ lxrunoffline r -n Ubuntu-18.04
[oh-my-zsh] Would you like to update? [Y/n] Y
安装Ubuntu
以后,默认是停止的,而且是版本1,必须转换成版本2,而且再次运行即可。
在CentOS中安装jdk,maven
下载maven
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3-bin.tar.gz /usr/local/
cd /usr/local
tar -zxvf apache-maven-3.6.3-bin.tar.gz
rm -rf apache-maven-3.6.3-bin.tar.gz
下载jdk(发现oracle拒绝wget方式进行获取,估计下载链接有时效)
链接:https://pan.baidu.com/s/1oa4tTy_7TIu6CXK9kVYcqw 提取码:aesn
mv jdk-8u251-linux-x64.tar.gz /usr/local/
cd /usr/local/
tar -zxvf jdk-8u251-linux-x64.tar.gz
rm -rf jdk-8u251-linux-x64.tar.gz
配置环境变量
在/etc/profile
文件尾部添加配置
export JAVA_HOME=/usr/local/jdk1.8.0_251
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export M2_HOME=/usr/local/apache-maven-3.6.3
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
再安装git
,各种配置以后,希望可以使用子系统开发调试java
项目,结果,性能慢的要死。
wsl1与wsl2区别
虚拟网卡
wsl1
没有虚拟网卡,wsl2
有,体现在使用tcpdump
命令时
wsl1
:
[root@qhong-Computer MyLinux]# tcpdump -D
wsl2:
[root@qhong-Computer MyLinux]# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.any (Pseudo-device that captures on all interfaces)
5.lo [Loopback]
wsl与win10编译java项目性能对比
左边是wsl2
,右边是win10
,最下边的是wsl1
,同一台电脑,差距还是很大的。