Mac 双系统 WIN10自带linux 解压tar文件报/usr/bin/gzip: 1: ELF : not found 的解决方法

       直接上问题:我的电脑是MAC一体机,安装了双系统,windows系统是WIN10,使用WIN10自带的并通过微软的应用商店安装了Terminal 和 Ubuntu 22.04.1 LTS ,安装成功后便可通过Terminal操作Ubuntu系统,在给Ubuntu系统安装GO环境时,解压从GO官方网站下载的tar.gz压缩包时报如下错误(这里只展示部分信息,未记录全):

/usr/bin/gzip: 1: ELF    : not found

/usr/bin/gzip: 3:    : not found /usr/b

        经过研究发现,这个ELF 报错最主要的原因是,Windows自带的wsl版本问题,这个wsl是什么呢?说白了它就是windows系统能支持安装及操作Linux系统的底层支持工具。如果有想详细了解它的同学可以直接去学习:什么是适用于 Linux 的 Windows 子系统 | Microsoft Learn (微软官方说明) 

        知道了它的底层是什么就好解决了,肯定是这个wsl出现问题了,打开Win10 的 PowerShell,输入命令:wsl -l -v 命令,发现它的默认版本是1,ubuntu对应它的版本也是1。问题找到了,我安装的是最新的Ubuntu系统,应该使用wsl 的版本是2。那就直接把它切为2,使用如下命令切换其默认的版本:wsl --set-default-version 2,切换了默认版本之后,后面再安装其它Linux操作系统时,它就默认给操作系统配置成默认的版本号。

         我们已经安装好的Ubuntu 22.04.1 的wsl还是1,还需要使用如下命令进行切换:wsl --set-version Ubuntu 22.04.1 这时会提示你正在切换,需要等几分钟,如下图:

        等了几分钟之后,它直接报出“切换失败,可能是未开启CPU虚拟化”,我们都知道如果非MAC电脑,我们可以直接进bios系统里的CPU进行设置,但是MAC电脑没有bios系统。想确认的小伙伴可以打开任务管理器如下图(显示“虚拟化:禁用”的就是未开启):

 

        虽然MAC电脑没有bios系统,但是也是有解决办法,两种办法,但是本人感觉还是第二种解决方法比较彻底,在这里我们将两种方法都给大家写出来。

方法一:

        1、关闭Windows系统,进入Mac系统(相信有很多小伙伴在安装了Windows系统后不知道怎么进入Mac系统,具体方法:在电脑开机时按住"option"键,直到出来系统选择界面,就可以切换了)。

        2、进入Mac系统后打开终端(不知道终端在哪的小伙伴看这里,路径:“前往——实用工具——终端”)。

        3、在终端输入如下命令确认硬件是否支持:sysctl -a | grep machdep.cpu.features   ,查看终端返回的信息里是否包含 "VMX"  三个字母。如果包含就说明硬件是支持,可以继续下面的步骤;如果没有,那就只能换电脑了。

        4、继续在终端输入:sysctl kern.hv_support    开启虚拟化,如果输出为1则是开启成功,如果输出为0,则开启失败。(开启失败的小伙伴需要在终端输入:sudo nvram boot-args=”kext-dev-mode=1 输入密码重启Mac后就可以开启了)

        5、开启后再进入Windows 系统后查看任务管理器就是开启的状态

注意:这个方法我个人判定在Mac系统里是可以的,当我在Windows系统继续切换wsl版本的时候还是失败,我再重启后任务管理器中的虚拟化就是禁用的了。所以不提倡这个方法,这里写出这个方法的原因是为只使用MAC系统小伙伴提供开启虚拟化的思路。

方法二(推荐):

        此方法需要用到一个【refind】的工具,点击下载

        1、下载成功后查看 refind.conf 配置文件中的 #enable_and_lock_vmx false 是否开启,并设置为 true,即:enable_and_lock_vmx true

        2、将refind整个文件夹复制到C盘的根目录下

        3、用管理员打开 PowerShell (打开方法:鼠标右键点击左下角的windows“开始菜单”如下图:)

        4、这时需要将你电脑的EFI目录映射出来方便操作,在PowerShell中输入:mountvol g: /s   这时“我的电脑”下会多出一个G盘,这个盘就是电脑的EFI盘,注意这个盘下的任何文件谨慎操作,操作不当可能会造成无法开机。

        5、在PowerShell 中进入C盘的根目录,输入:cd C:/

        6、将refind整个目录拷贝到G盘根目录下,输入:xcopy /E refind g:\EFI\refind\

        7、将refind 设置为引导程序,输入:bcdedit /set "{bootmgr}" path \EFI\refind\refind_x64.efi

        8、重启电脑,重启时引导中会有两个Windows图标,两个Mac图标,选择第一个Windows图标进入即可。进入系统后查看任务管理器中的虚拟化是否是开启的状态,如下图即可:

 

        9、安装虚拟化服务,用键盘调出【运行】(具体方法:Win + R 两个键),在运行框中输入control,如下图:打开控制面板

 

 

         10、点击【程序——启用或关闭Windows功能】,如下图:

 

        11、勾选虚拟服务(Hyper-v)并安装 (注意:Hyper-v下的必需全部勾选),如下图:

         12、安装完成后重启电脑再重新设置Ubuntu的wsl版本即可。

注:这个方法唯一的缺点是引导界面会出现两个windows图标和两个Mac图标,需要自己辨别,图标下有相应的英文说明。

按照以上步骤设置好之后就可进入Terminal的Ubuntu系统里进行解压相应的tar.gz文件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yezhijing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值