美文网首页
win10上使用Linux子系统WSL时,如何解决-bash:

win10上使用Linux子系统WSL时,如何解决-bash:

作者: PETJO | 来源:发表于2020-10-27 08:24 被阅读0次

    主要原因是不支持32位程序,可以用如下方法启用:WSL默认使用 64bit的程序,不支持32位的程序,但我们可以使用QEMU来虚拟化内核。

    1. 查看Linux操作系统版本

    ## 方法1. uname查看系统信息,uname就是UNIXname的缩写
    
    uname -s    # -s或–sysname 显示linux内核名称
    Linux
    
    uname -r    # -r或–release 显示linux操作系统内核版本号
    4.4.0-18362-Microsoft
    
    uname -v    # -v 获取更详细的内核版本信息(译注:不是版本号,是指该内核建立的时间和CPU架构等)
    #1-Microsoft Mon Mar 18 12:02:00 PST 2019
    
    uname -n    # -n或-nodename 显示主机在网络节点上的名称或主机名称
    BF-2020060xxxxx
    
    uname -m    # -m或–machine 显示主机的硬件(CPU)架构
    x86_64
    
    uname -i    # -i 显示硬件平台类型或unknown
    x86_64
    
    uname -p    # -p 显示主机处理器类型或unknown
    x86_64
    
    uname -o    # -o 显示操作系统名称
    GNU/Linux
    
    uname -a    # -a或–all 显示系统详细信息:依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
    Linux BF-2020060xxxxx 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
    
    ## 方法2. 查看方式
    file /bin/ls
    
    # 根据输出信息确认此Linux版本为64位
    /bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f15ad836be3339dec0e2e6a3c637e08e48aacbd, for GNU/Linux 3.2.0, stripped
    此linux版本为64位。(64-bit)
    

    2. 按照常规方式:原生 Ubuntu 添加 32bit 运行环境

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install libc6:i386
    sudo apt-get install lib32ncurses5 lib32ncurses5-dev
    sudo apt-get install lib32z1
    

    注:并没有解决问题。报错同样是 Exec format error

    3. 安装QEMU

    sudo apt update
    sudo apt install qemu-user-static
    sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
    

    4. 启动服务:注意每次调试32位程序之前都要启用一次

    sudo service binfmt-support start
    

    5. 启动32位架构

    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

    相关文章

      网友评论

          本文标题:win10上使用Linux子系统WSL时,如何解决-bash:

          本文链接:https://www.haomeiwen.com/subject/quetvktx.html