V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
lydhr
V2EX  ›  Windows

Windows subsystem for Linux (WSL)的用户有踩过什么坑吗

  •  
  •   lydhr · 145 天前 · 4743 次点击
    这是一个创建于 145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    run 一个 ubuntu 的时候 memory 几乎没有增加,跑一些开源 code 是没问题了,感觉就是更高效 built-in 的 VM

    64 条回复    2021-12-31 22:08:16 +08:00
    gzlock
        1
    gzlock  
       145 天前
    也就 wsl2 的文件系统性能不咋行吧,然后 git 会偶发问题,例如修改了文件但是 git 没检测到文件有变化
    datou
        2
    datou  
       145 天前   ❤️ 1
    没有 IPv6 支持算不算坑?
    sayakafs
        3
    sayakafs  
       145 天前 via iPhone
    win11 和 vmware 冲突,后者多核挂起报错。
    ericgui
        4
    ericgui  
       145 天前
    wsl2 的性能还是差点意思
    chaoschick
        5
    chaoschick  
       145 天前 via Android
    不好用
    me221
        6
    me221  
       145 天前
    127.0.0.1 和 localhost ?
    ciichen
        7
    ciichen  
       145 天前 via Android   ❤️ 5
    ip 不固定
    cslive
        8
    cslive  
       145 天前
    ip 不固定 加+
    857681664
        9
    857681664  
       145 天前 via Android
    idea 开发的时候 maven sync 特别慢,猜测是文件系统 io 太慢的原因
    charlie21
        10
    charlie21  
       145 天前
    在 wsl 开着的情况下 让电脑睡眠或休眠 唤醒电脑之后 用 `date` 查看 wsl 系统时间可能会有问题(导致最简单的 `sudo apt update` 都无法使用),此时需要在联网的情况下用 NTP 校准到正常时间
    `sudo ntpdate pool.ntp.org`
    Shokupanman
        11
    Shokupanman  
       145 天前 via Android   ❤️ 1
    QQ 截图之后任务栏疯狂闪烁,得 wsl --shutdown 才行
    cweijan
        12
    cweijan  
       145 天前
    - ip 不固定
    - 没有 systemd, 导致部分依赖 systemd 的软件无法安装
    - 内存占用大, 如果设置最大内存, 那这个内存就是 wsl 开机后会立刻占用的内存
    wayne233
        13
    wayne233  
       145 天前 via iPhone
    io 速度和权限问题(比如在 win 中编辑 wsl 中的文件,以及在 wsl 中编辑 win 中的文件
    Pogbag
        14
    Pogbag  
       145 天前 via iPhone
    要手动修改 ssh 的端口 22 被 windows 占用了
    wgjtyu
        15
    wgjtyu  
       145 天前
    如果是微信小程序开发并且用 tarojs 之类的库,用 wsl 里的 nodejs 来编译之外,还得在 windows 系统里再装一个 nodejs 吧。本质上还是虚拟机,因此包括 python 、git 之类的都可能需要在两个系统里面同时安装。
    lvdb
        16
    lvdb  
       145 天前
    wsl2 关闭后内存释放不掉,会一直占用着。
    cwr31
        17
    cwr31  
       145 天前 via iPhone
    @gzlock 那是你垮文件系统了吧
    quanjw
        18
    quanjw  
       145 天前   ❤️ 1
    不好用 还是 vm 靠谱
    gzlock
        19
    gzlock  
       145 天前
    @cwr31 #17 就是在 windows 安装的 idea 直接打开 wsl 里的项目咯
    Eiden
        20
    Eiden  
       145 天前
    usb 设备支持非常不好
    gzlock
        21
    gzlock  
       145 天前
    b/s 开发我都是直接 wsl 里用 docker 开 nginx 再 80 映射端口到宿主机,浏览器直接打开 localhost 就可以访问了,所以 ip 不固定对于我来说也不算啥问题。
    LANB0
        22
    LANB0  
       145 天前
    之前不配置 wslconfig 会占满主机内存无法释放,现在不知道还是不是存在
    raptor
        23
    raptor  
       145 天前
    都是坑,反正我试了一会就放弃了,好好用 LINUX 不香嘛
    biguokang
        24
    biguokang  
       145 天前 via Android
    @wgjtyu 这个是因为微信开发者工具只有 mac 和 win 版,没有 linux 版把。。。我写 go 和 js ,win10 本身很干净只装了个 lol ,开发环境、工具和代码全在装在 wsl2 里面,也没啥问题
    Privileges
        25
    Privileges  
       145 天前 via Android
    没有 system ,wsl2 会和其他安卓模拟器冲突
    zachgenius
        26
    zachgenius  
       145 天前
    文件 BOM 还有磁盘格式错误让我根本没法用
    xwcs
        27
    xwcs  
       145 天前
    wsl --shutdown 之后如果休眠电脑再打开后启动 wsl 有一定概率会出现[已退出进程,代码为 4294967295]的报错,然后只要重启一下电脑就恢复正常了,从 wsl1 到 2 一直都存在的问题
    yangzzzzzz
        28
    yangzzzzzz  
       145 天前   ❤️ 1
    上半年从 mac 换 win 开发,为了终端好用点用的 wsl2 ,主要用的就 node 后面折腾了一圈放弃了。。一堆小 bug 太影响开发效率了
    ScepterZ
        29
    ScepterZ  
       145 天前
    读 win 的文件很慢,别的 bug 暂时都用不上
    cwr31
        30
    cwr31  
       145 天前 via iPhone
    @gzlock 项目稍微大一点基本用不了 各种索引特别慢,已经放弃了
    wangyzj
        31
    wangyzj  
       145 天前
    cd ${git repo dir}
    卡住了
    radioactivezx
        32
    radioactivezx  
       145 天前
    在家连进公司 VPN 后 ssh 连不上内网其它机器,cmd/poweshell 就没问题。
    userforg2021
        33
    userforg2021  
       145 天前
    打了一堆字说上面的问题,然后放弃了,算了。
    这个东西因人而异,使用方式不同,感受完全不同。遇到坑再去网上搜。记得配 wslconfig ,使用 localhost 访问 wsl 。把它当轻量 VM 用。
    ShadowPower
        34
    ShadowPower  
       145 天前
    挂载不了 ext4 镜像
    secsilm
        35
    secsilm  
       145 天前 via Android
    我记得之前 wsl 不能用 gpu ,不知道现在咋样了
    ShadowPower
        36
    ShadowPower  
       145 天前
    @secsilm Windows11+WSL2+测试版驱动已经可以用了
    libook
        37
    libook  
       145 天前   ❤️ 3
    除了 IP 不固定,楼上所有问题都没遇到过……

    我是在 Windows 上装 XServer 的方式在 WSL2 环境下跑 GUI 界面,用 IDEA 做全栈开发,差不多两年时间了吧,还挺好用的。

    WSL2 是跑在 Hyper-V 里面的,同一个系统上只能有一个虚拟化平台,所以开了 WSL2 之后其他虚拟机软件就用不了了,这个有些杀毒软件开了 VM 引擎之后跟虚拟机软件冲突也是一样的。

    WSL2 有自己的文件系统,但跟 Windows 的文件系统是打通的,git 之类的需要依赖文件系统特性的只要放在 WSL2 自己的文件系统内就没问题。

    WSL2 是类似于 chroot 的方式运行 Linux 环境的,所以没法用 systemd 之类的服务管理工具,我的解决方案是需要跑服务的都跑在 Docker 里,由于 Windows 的 Docker Desktop 太难用了,所以在 Hyper-V 里面开个 Linux 虚拟机专门跑 Docker daemon ,WSL2 里只需要配置一个 DOCKER_HOST 的环境变量就可以了。

    以及有很多问题是因为用户对 Linux 不熟悉,往往调整一下配置就能解决的。

    总体来说 WSL 是面向应用开发的,系统开发、硬件开发还是直接装 Linux 吧。
    TrembleBeforeMe
        38
    TrembleBeforeMe  
       145 天前   ❤️ 2
    连宿主机可以直接用宿主机名称.local ,比如 DESKTOP-114514.local ,不再需要脚本查找宿主机 IP 了
    zhilincom
        39
    zhilincom  
       145 天前
    tail -f windows 下的日志文件不能实时更新。
    zmxnv123
        40
    zmxnv123  
       145 天前
    1. 不要尝试 pycharm 使用 wsl 读取 windows 文件夹中的数据。
    2. 不要尝试 pycharm 使用 wsl 打开浏览器 /文件夹
    3. 搞个开发机吧,使用 wsl 不管是 1 还是 2 ,都是遭罪受。
    uni
        41
    uni  
       145 天前
    刚遇到一个坑

    需求是写手机端页面要用手机在局域网里面连 wsl2 里面的 vue 开发服务器查看页面,但是局域网不能直接访问到 wsl ,必须要在 windows 上开转发,手机访问电脑,电脑转发到 localhost ,localhost 可以直接访问 wsl 的 localhost 。按照网上教程一通设置之后可以用了。

    可是不知道为什么,过了两个小时之后电脑就访问不了 localhost 了,一访问 localhost:8080 就显示找不到页面,而且电脑还会变卡,打开任务管理器之后发现是 iphelper 这个进程占用了大量 cpu ,网上搜了一圈也不知道是怎么回事

    从此之后电脑再也无法访问 localhost:8080 了,要想访问 vue 的开发服务器只能用 wsl 的 ip:8080 来访问,手机访问 vue 也只能每次开机的时候设置转发到 wsl 的 ip

    尝试了一下 127.0.0.1:8080 也不行,而用 vite 的 localhost:3000 没有问题。至今也不知道是怎么回事。
    neutrino
        42
    neutrino  
       145 天前 via Android
    wsl 内无法用 localhost 访问 host 的端口
    virualv
        43
    virualv  
       144 天前 via iPhone
    wsl 里看 win 下文件权限 777
    Zien
        44
    Zien  
       144 天前 via iPhone
    启用 wsl2 后,用 vbox 和 vmware 会很卡
    makia98
        45
    makia98  
       144 天前
    @libook 用 NAT 静态 IP 可不可以固定呢?大佬有尝试过吗
    libook
        46
    libook  
       144 天前
    @makia98 #44 WSL2 是被微软做的一个特殊的 Hyper-V 实例,默认行为就是每次系统启动都随机一个 IP ,这个你自己是没法在 Hyper-V 的控制台里控制的,你调 NAT 静态 IP 最终的结果很可能是 WSL2 依然每次启动随机一个 IP ,然后你跟 WSL2 的网络连接按照你自己配置的静态 IP 来连接,最终发现根本连不上了。
    wangyu17455
        47
    wangyu17455  
       144 天前   ❤️ 1
    具名管道有问题,读不到东西
    iSecret
        48
    iSecret  
       144 天前
    用过一段时间 WSL ,装了个 Docker 没有固定 IP ,搞了一些特殊手段绑定了,但是不稳定,后来还是放弃了。
    abersheeran
        49
    abersheeran  
       144 天前
    WSL 很友好。想用 Linux 内核的请自觉开虚拟机,而不是用到处是 BUG 的 WSL2 。
    aptx4689
        50
    aptx4689  
       144 天前
    wsl2 + windows11 间歇蓝屏
    efaun
        51
    efaun  
       144 天前
    在坑里从来没爬出来过, 所以退回到 win10+虚拟机
    oska874
        52
    oska874  
       144 天前 via Android
    电脑 n 内存放大点( 32g 起步),硬盘要固态放大点( 512 起步),wsl2 不要访问 windows 的文件。
    a22271001
        53
    a22271001  
       144 天前
    开着 WSL2 ,用 QQ 截图就狂闪😑都快半年了还没修复
    noparking188
        54
    noparking188  
       144 天前
    我做数据开发的,工作中用了两年半了,WSL1 ,没啥大毛病,就文件系统和 git 文件换行符一些小问题
    用 WSL 最好配上 Windows Terminal
    hez2010
        55
    hez2010  
       144 天前
    WSL2 走网络协议来做 Linux 和 Windows 文件系统之间的互操作,速度很慢,因此不要跨系统访问文件,如果你要在 WSL 内使用 Windows 下的文件,先复制到 WSL 里面,反之如果要在 Windows 下使用 WSL 里的文件,先复制出去到 Windows 里。
    Ediacaran
        56
    Ediacaran  
       144 天前
    hyperv 经常莫名其妙的开始占用 1024 开始的端口号,导致梯子和加速器等等失效
    njzjz
        57
    njzjz  
       144 天前 via iPhone
    电脑从睡眠模式恢复后,偶发性 dns 失效,需要 wsl --shutdown 杀掉 wsl 后重启
    11ssss
        58
    11ssss  
       144 天前
    docker 配合 wsl 用,记得切换 wsl 磁盘目录,默认在系统用户目录下。
    容易满,前两天刚刚迁移完。
    jswh
        59
    jswh  
       144 天前
    wsl2 + win 11 , 最大的问题还是 io 性能不行。
    zed1018
        60
    zed1018  
       144 天前
    win11 上 9pfs 经常挂掉,挂掉以后没办法在 explorer.exe 里访问 wsl fs ,也不能在 wsl fs 里 exec win32 的程序。重启系统可以临时修复,但是肯定会复现。
    kirisamemarisas
        61
    kirisamemarisas  
       144 天前
    主要还是 IP 和 localhost 问题吧,之前也想过开 docker 。但是有时候要测试一些想法的时还是直接上手撸最快,这坑踩过太多次了。我现在备用一个 U 盘 Manjaro 来快速逃避这些问题了,弄的话太耗心力了。
    ruanimal
        62
    ruanimal  
       144 天前
    #7 其实是 mac 地址重启 wsl 会变
    chapiom
        63
    chapiom  
       143 天前
    ip 变,端口映射很麻烦,局域网访问都不好弄
    unklity
        64
    unklity  
       143 天前
    同 #37
    只是 IP 不固定以及 wslg 目前对多显示器的支持有些问题,在多显示器且使用 DPI 缩放时,部分 GUI 程序元素操作坐标会与显示不符
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4244 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:23 · PVG 14:23 · LAX 23:23 · JFK 02:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.