[ VM ] 启用 WSL2 后,与 VirtualBox 冲突的解决方法
https://www.cnblogs.com/yeungchie/
1. Error 报错
ERROR:current execution environment is VCO=aoi. Software tree is for environment VCO=aoj
前提:这台虚拟机之前是可以运行 aoj 版本的 Calibre 的,某次手贱尝试 WSL2 后发现 Calibre 无法运行了。
Calibre 从 2017.4 开始,分发下面三种版本:
- IXL 支持 RHEL 5.x
- AOI 支持 RHEL 6.x 7.x
- AOJ 支持 RHEL 6.x 7.x,需要支持 AVX2 指令集
然而开启 WSL2 后,虚拟机内无法获取 CPU 信息,指令集获取不完整,AVX2 检查不到。
cat /proc/cpuinfo | grep -i --color avx
# 查找不到
2. 启用或关闭 Windows 功能
- Windows 虚拟机监控程序平台
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台
3. CMD 管理员下执行命令
net stop LxssManager
bcdedit /set hypervisorlaunchtype off
上面的方法是直接关闭了 WSL,听说 WSL2 切换到 WSL1 也是可以的。
但是我懒得试了,浪费了好几天时间,还以为是虚拟机文件损坏了。
4. 恢复了
再次查看指令集,能查到了。
Calibre 也可以正常启动了。
cat /proc/cpuinfo | grep -i --color avx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single retpoline fsgsbase avx2 invpcid rdseed md_clear flush_l1d arch_capabilities