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

WSL 2 太好用了啊

  •  
  •   Pin · 2023-06-25 13:12:58 +08:00 · 21816 次点击
    这是一个创建于 522 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 Windows 小白,一直是 mac 上搞开发和 apple tv 观影,最近买了一个台式机打游戏,顺便搞了一下 wsl 2 ,可以和 windows 内部衔接,连 git 都不用下载,感觉 windows 也可以搞开发了。

    目前 windows 平台最大的问题就是没有像 infuse 这样的播放器大杀器,不然可以全面转 windows 了。目前在我看来 apple 最大的优势(对我来说)就是 apple tv 的 infuse 了。

    144 条回复    2023-07-12 15:11:13 +08:00
    1  2  
    Vegetable
        1
    Vegetable  
       2023-06-25 13:20:25 +08:00   ❤️ 1
    如果不是被 Vmmem 与 Docker 困扰,我很很赞同你的说法。不过现在我暂时选择双系统。
    worldqiuzhi
        2
    worldqiuzhi  
       2023-06-25 13:21:35 +08:00   ❤️ 2
    用着用着就有各种问题 最终还是回归到 vm 虚拟机
    ersic
        3
    ersic  
       2023-06-25 13:24:11 +08:00
    @Vegetable 啥困扰,直接 wsl 里面装 docker 不用 desktop ,体验跟 linux 差不多
    aydd2004
        4
    aydd2004  
       2023-06-25 13:25:33 +08:00
    这玩意儿就是最近几年 win 最有用的东西。
    cloud2000
        5
    cloud2000  
       2023-06-25 13:30:32 +08:00
    @ersic 真的可以这样搞吗? 稳定否?
    flyico
        6
    flyico  
       2023-06-25 14:06:22 +08:00   ❤️ 1
    目前体验最好的 Linux 发行版是 win10
    pota
        7
    pota  
       2023-06-25 14:13:02 +08:00
    我现在家里电脑遇到的就是如果开机不打开 wsl 等一个现在不知道多久的时间之后就打不开了。搞的我每次玩了一段时间来事情之后还得重启,和双系统没啥区别了
    c3de3f21
        8
    c3de3f21  
       2023-06-25 14:15:31 +08:00
    试一下用 wsl2 烧录程序到硬件
    maxssy
        9
    maxssy  
       2023-06-25 14:17:26 +08:00
    wsl2 的动态 IP 你是怎么解决的?
    我在里面装了个 MONGO, 每次外面的 MONGO 客户端想连都要改 IP
    有没有官方的改静态 IP 的方法, 不想用网上那种改注册表之类的
    zed1018
        10
    zed1018  
       2023-06-25 14:20:33 +08:00
    @maxssy 外面直接用 localhost:port 就好了
    zhlssg
        11
    zhlssg  
       2023-06-25 14:23:15 +08:00
    为什么说 infuse 是大杀器啊,我订阅了用了一段时间没感觉到特异之处啊
    Nuttertoo1s
        12
    Nuttertoo1s  
       2023-06-25 14:27:21 +08:00   ❤️ 2
    wsl2 io 速度太慢了
    smirkcat
        13
    smirkcat  
       2023-06-25 14:27:51 +08:00
    只用 wsl1 ,我要交叉编译
    leonshaw
        14
    leonshaw  
       2023-06-25 14:28:13 +08:00
    要启动参数里开 hyper-v ,跟其它硬件虚拟化不兼容
    alexsz
        15
    alexsz  
       2023-06-25 14:28:50 +08:00
    @maxssy 搜 wsl 2 port forwarding
    japeth
        16
    japeth  
       2023-06-25 14:30:22 +08:00
    PotPlayer 播放器挺不错
    Trim21
        17
    Trim21  
       2023-06-25 14:31:19 +08:00 via Android
    好用是好用,就是会固定遇到 Vmmem CPU100%的问题,只能双系统了…
    daydreamcafe
        18
    daydreamcafe  
       2023-06-25 14:33:12 +08:00
    io 体验太差了,不过 wsl 可以体验 linux 的开发环境,还有 windows 众多的应用生态,权衡下不错的选择
    lithiumii
        19
    lithiumii  
       2023-06-25 14:39:27 +08:00 via Android
    @Nuttertoo1s 走挂载(/mnt/c )的 io 慢 ,原生还好吧
    xiaochuaner
        20
    xiaochuaner  
       2023-06-25 14:40:30 +08:00
    @c3de3f21 是不是现在只能通过网络的方式转发呀,不过文件系统可以互相访问,编译完了再 windows 烧录也凑合着用
    lithiumii
        21
    lithiumii  
       2023-06-25 14:42:06 +08:00 via Android
    Windows 要啥 Infuse ?服务端是 Emby 的话商店里有 Emby 客户端,要不然就 Kodi 呗
    wangkun025
        22
    wangkun025  
       2023-06-25 14:43:48 +08:00 via Android
    之前做开发使用 wsl2 ,最终因为各种问题放弃了
    mokeyjay
        23
    mokeyjay  
       2023-06-25 14:51:00 +08:00
    @cloud2000 #5 亲测可以,我的本地开发环境都是 wsl2 docker
    JayZXu
        24
    JayZXu  
       2023-06-25 14:56:20 +08:00   ❤️ 1
    windows 下好用的播放器不要太多
    懒得折腾下个完美解码一键切配置
    愿意折腾 potplay 自己配解码器

    infuse 感觉没啥特别优势。
    sprite82
        25
    sprite82  
       2023-06-25 15:00:41 +08:00   ❤️ 1
    > 感觉 windows 也可以搞开发了
    windows 什么时候不能搞开发了?除了 xcode ,主流编程有不能在 win 上运行的吗?
    flyqie
        26
    flyqie  
       2023-06-25 15:01:22 +08:00 via Android   ❤️ 1
    从 wsl2 跑路到 wsl1 + vmware workstation 的路过。。

    wsl2 这种模式,io 性能什么的,用来用去真的不如 wsl1 + vmware ,灵活且 io 性能还高。。
    han3sui
        27
    han3sui  
       2023-06-25 15:06:32 +08:00 via Android
    @maxssy win11 可以设置静态 ip
    c3de3f21
        28
    c3de3f21  
       2023-06-25 15:19:01 +08:00
    @xiaochuaner WSL2 目前不支持串口据说是但是 WSL1 支持,WSL2 重新编译内核还没试过能不能支持串口
    weijancc
        29
    weijancc  
       2023-06-25 15:20:00 +08:00
    wsl2 会虚拟化整机, 影响你 Windows 系统的性能, 我已经换回 vmware 了
    maxssy
        30
    maxssy  
       2023-06-25 15:21:46 +08:00
    @zed1018 不行, 外面我也跑了一个 mongodb T_T
    fanmlei
        31
    fanmlei  
       2023-06-25 15:22:31 +08:00   ❤️ 1
    @c3de3f21 可以用 usbipd 把设备挂载到 wsl2 上面,只是每次都需要手动操作
    sadfQED2
        32
    sadfQED2  
       2023-06-25 15:23:10 +08:00 via Android
    各种各样奇奇怪怪的问题太麻烦了,最后还是放弃了
    maxssy
        33
    maxssy  
       2023-06-25 15:31:20 +08:00
    @han3sui 我知道可以, 但目前找到的方法都是改注册表之类太繁琐了, 而且设置了不知道会不会导致其他问题.
    我希望官方有类似 wsl2 set static IP: xxx 这样的方案
    panzhc
        34
    panzhc  
       2023-06-25 15:43:33 +08:00
    panzhc
        35
    panzhc  
       2023-06-25 15:45:31 +08:00
    本质上还是 Hyper-V 虚拟机,各种兼容性问题一大堆,io 慢也是个大问题,一个正常开发者需要编译打包大量文件的时候,特别明显,就这样怎么吸引开发者呢?
    chmod711xxx
        36
    chmod711xxx  
       2023-06-25 15:49:56 +08:00   ❤️ 1
    sayakafs
        37
    sayakafs  
       2023-06-25 15:53:27 +08:00
    wsl 2 开了虚拟机没法嵌套虚拟化了 这点特别不爽
    boatrain1111
        38
    boatrain1111  
       2023-06-25 15:53:42 +08:00
    io 慢的一笔
    zed1018
        39
    zed1018  
       2023-06-25 15:57:57 +08:00
    @panzhc 不要跨文件系统,东西丢 wsl 下
    ersic
        40
    ersic  
       2023-06-25 16:03:39 +08:00
    @cloud2000 我觉得还行,当然个体不代表全部
    diagnostics
        41
    diagnostics  
       2023-06-25 16:23:46 +08:00
    当玩具可以,吹的那些人不知道有没有在工作机器上开发时试过
    sunxiaping521
        42
    sunxiaping521  
       2023-06-25 16:27:06 +08:00
    @Vegetable 现在,VmWare 、WSL2 以及 Docker 已经不冲突了
    Vegetable
        43
    Vegetable  
       2023-06-25 17:05:22 +08:00   ❤️ 2
    @sunxiaping521 wsl 当前有比较严重严重的内存问题

    https://learn.microsoft.com/en-us/windows/wsl/compare-versions#exceptions-for-using-wsl-1-rather-than-wsl-2

    https://github.com/microsoft/WSL/issues/4166

    wsl2 中磁盘 page cache 占用的缓存在 wsl2 关闭之前永远不会释放, 这导致 docker 这种服务成了内存杀手

    基于这两个问题,对于需要长时间启动多个编辑器和 docker 环境的开发者, 不得不频繁 wsl --shutdown 重置缓存,非常难受
    zed1018
        44
    zed1018  
       2023-06-25 17:09:49 +08:00   ❤️ 1
    @Vegetable 不至于要 wsl shutdown ,linux 里正常 echo 3 > /proc/sys/vm/drop_caches 就会抛弃这些部分,另外 wsl2 预览版做了一个体验版的选项说是自动释放
    Vegetable
        45
    Vegetable  
       2023-06-25 17:13:12 +08:00
    @zed1018 这个 3 我还真试过,当时感觉好像是没什么效果, 刚才我找链接的时候又看到了这篇文章

    https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-windows-subsystem-for-linux-2/#:~:text=This%20is%20a%20design%20decision%20to%20ensure%20you,and%20your%20WSL2%20VM%20will%20shrink%20in%20size.

    看时间是 2019 的内容了, 这里又用的是 1 ,晚上再是一下看看
    junlong
        46
    junlong  
       2023-06-25 17:15:33 +08:00
    @zhlssg 估计是自动收集影视数据,形成海报墙吧。
    lysS
        47
    lysS  
       2023-06-25 17:33:28 +08:00
    @Vegetable wsl2 直接里面装啊, 而且现在支持 systemd 了
    cubecube
        48
    cubecube  
       2023-06-25 17:37:02 +08:00
    @maxssy hyperv 里面可以创建一个 vswitch ,直接写死 ip 地址或者桥接到路由器,系统里面 static 分配。
    cubecube
        49
    cubecube  
       2023-06-25 17:38:19 +08:00
    @Vegetable 这个严格来说的确没办法释放,你用别的虚拟机也一样。。linux 的文件页面缓存闹的
    限定一个最大的内存使用量得了。
    cy18
        50
    cy18  
       2023-06-25 17:43:57 +08:00
    其他很多问题都可以通过加内存之类的硬件方式解决,除了 USB 支持不行,WSL2 缺点已经不多了。
    lysS
        51
    lysS  
       2023-06-25 17:45:22 +08:00
    @panzhc io 和 win 主机比不会差太多,大概就低 20-30%
    whisky221
        52
    whisky221  
       2023-06-25 17:48:11 +08:00
    Hyper-V 和 VM 冲突很致命
    aflow
        53
    aflow  
       2023-06-25 19:01:14 +08:00
    新版的支持桥接了,不过也可以用使用这个 https://github.com/CzBiX/WSLHostPatcher ,绑定到本机的端口上
    dobelee
        54
    dobelee  
       2023-06-25 19:16:52 +08:00 via iPhone
    @cloud2000 全程 wsl 开发好几年了,没什么问题,jb 和 vs 的支持都基本到位,唯一的缺点是 io 性能较低。docker 一定要装 linux 版,别装 desktop 。
    bjfane
        55
    bjfane  
       2023-06-25 19:21:50 +08:00
    我也在找固定 ip 的方案,好像没有啊,和 win server 的 hyper-v 能管理相比,还是差点意思。
    另外 windows 为什么不能直接做开发,目前我的不爽的点就是 git 和 docker 都不是原生的,有点不爽
    newlifeinsc
        56
    newlifeinsc  
       2023-06-25 19:32:16 +08:00   ❤️ 1
    @bjfane 固定 ip 已经有挺久了,就是在 hyper-v 里建个网卡,然后让 wsl2 用这个网卡就行了。#36 楼的链接就是方法。systemd 也是直接支持,wsl2 就当作虚拟机跑目前没遇到问题,可能就一些 usb 之类的地层有的区别吧
    Shook
        57
    Shook  
       2023-06-25 19:40:12 +08:00
    WSL2 里面用 pnpm 很痛苦,其它的事情好像还好
    a90120411
        58
    a90120411  
       2023-06-25 19:44:26 +08:00
    OP 可以分享一些你觉得 infuse 的哪些功能是比较有特色或独有的吗?很想了解一下。
    xiaochuaner
        59
    xiaochuaner  
       2023-06-25 20:00:21 +08:00   ❤️ 1
    @c3de3f21 这个倒装,山东老乡? WSL1 确实支持,WSL2 确实不支持。微软专门出了教程 https://learn.microsoft.com/en-us/windows/wsl/connect-usb
    luvfinn
        60
    luvfinn  
       2023-06-25 20:27:31 +08:00
    直到今天我遇到了这个错误:
    ❯ wsl.exe
    Error: 0xffffffff
    Error code: Wsl/Service/CreateInstance/CreateVm/ConfigureNetworking/0xffffffff
    gpt5
        61
    gpt5  
       2023-06-25 20:32:41 +08:00
    gpu 性能怎么样?能炼丹了么?
    leewi9coder
        62
    leewi9coder  
       2023-06-25 20:36:01 +08:00
    vagrant yyds
    ldyisbest
        63
    ldyisbest  
       2023-06-26 00:02:19 +08:00
    @maxssy 直接 127.0.0.1 是可以访问的
    paulluis2dev
        64
    paulluis2dev  
       2023-06-26 00:09:55 +08:00 via iPhone   ❤️ 1
    WSL2 目前最大的问题还是 IO ,其次 hyper-V 端口占用问题,不能像 VM 一样,指定静态 IP 。WSLg 目前更是玩具,像 OBS 还有其他一些图形化界面软件要么卡死要么时不时打不开。目前只期望解决 IO 问题,其他慢慢来
    paulluis2dev
        65
    paulluis2dev  
       2023-06-26 00:15:03 +08:00 via iPhone
    @paulluis2dev 尽管 IO 缓慢问题早在 19 年就提到 GitHub issues 区,至今还是 open 状态😼
    aliipay
        66
    aliipay  
       2023-06-26 00:28:45 +08:00
    @paulluis2dev 大一点的项目 git status 都要几十秒,表示非常蛋疼
    superchijinpeng
        67
    superchijinpeng  
       2023-06-26 00:45:13 +08:00 via iPhone
    @lysS
    @dobelee

    wsl 上 docker 官方不推荐使用 linux 原生版,性能太差了,官方安装更推荐使用 desktop
    just4id
        68
    just4id  
       2023-06-26 00:45:33 +08:00 via iPhone
    村通电?
    superchijinpeng
        69
    superchijinpeng  
       2023-06-26 00:48:02 +08:00 via iPhone
    cnfczn
        70
    cnfczn  
       2023-06-26 08:00:10 +08:00 via Android
    如果不是 windows 里边的一些专有软件并且不想用 wine,我就单 linux 裸奔了。windows 这种不注重用户想法我行我素的系统,我绝 b 不会作为主力系统!
    litguy
        71
    litguy  
       2023-06-26 08:40:31 +08:00
    wsl1 死忠路过,坚决不用 wsl2
    hoopan
        72
    hoopan  
       2023-06-26 08:56:50 +08:00
    wsl2 + vscode 一般开发是够用了
    lysS
        73
    lysS  
       2023-06-26 09:17:08 +08:00
    @superchijinpeng 开发才要多少点性能,我也根本没体会到有什么下降
    wangerka
        74
    wangerka  
       2023-06-26 09:29:38 +08:00
    @ersic wsl 支持 systemd 了吗
    a632079
        75
    a632079  
       2023-06-26 09:37:19 +08:00
    Derrick92
        76
    Derrick92  
       2023-06-26 10:03:20 +08:00
    galphaxie
        77
    galphaxie  
       2023-06-26 10:19:38 +08:00
    wsl2 + vscode + vmware 调教好几个月之后, 现在基本被驯服, 值得推荐.
    kqz901002
        78
    kqz901002  
       2023-06-26 10:29:31 +08:00
    @maxssy nmtui?
    kqz901002
        79
    kqz901002  
       2023-06-26 10:36:07 +08:00
    @Nuttertoo1s 是的, 通常我用 wsl1 的 git, wsl2 主要快速验证各个发行版
    kqz901002
        80
    kqz901002  
       2023-06-26 10:36:58 +08:00
    @maxssy $ nmtui
    Could not contact NetworkManager: Could not connect: No such file or directory. me 卵用, 有 port forward 基本上可映射到主机 port
    sunamask
        81
    sunamask  
       2023-06-26 10:41:48 +08:00
    话说……在开发终端上追求性能表现是不是搞错了什么?俺做数据科学的,计算量大的工作都在集群上运行,码 bug 用的笔记本上装 wsl2 还挺舒服的。
    Belmode
        82
    Belmode  
       2023-06-26 10:57:35 +08:00
    WSL2 ,会影响 Windows 性能的。装个虚拟机,也就多占点内存而已。
    DigitalG
        83
    DigitalG  
       2023-06-26 11:18:37 +08:00
    @ersic #3 这种安装方式支持 nvidia 的驱动和 cuda 工具吗?之前在 nvidia 的官方指导上看到的是推荐装 desktop.
    generated
        84
    generated  
       2023-06-26 11:19:25 +08:00
    @pota 可能是加速器的问题,uu 加速器和 wsl2 默认不能同时开启,我之前也碰到过这个问题
    Nasei
        85
    Nasei  
       2023-06-26 11:28:45 +08:00   ❤️ 1
    @aliipay 你这是从 wsl2 操作 win 目录了吧
    Nuttertoo1s
        86
    Nuttertoo1s  
       2023-06-26 11:38:27 +08:00
    @sunamask 不是说追求性能,代码写好之后得本地跑一下吧,就简单的遍历文件,复制文件和生成文件,正常 wsl 1 下一般 1 分钟不到能处理完,切换到 wsl 2 起码得 10 分钟,再比如我反编译 apk ,一个 30m 不到的包,wsl 1 30 秒到 1 分钟能反编译好,切换 wsl 2 我最长跑过 30 分钟还没处理好的,离了个大普
    Awes0me
        87
    Awes0me  
       2023-06-26 12:47:37 +08:00
    @zhlssg infuse 支持格式全,界面好看,操作方便,这 3 点每一点单独拎出来好像都有竞品,但是合在一起那是真没,功能强大的 mvp 丑+难用,pot 易用,但是不支持杜比视界也没有海报墙
    Awes0me
        88
    Awes0me  
       2023-06-26 12:48:53 +08:00
    @JayZXu 你说的都不支持杜比视界,也没有海报墙,根本无法和 infuse 比
    aliipay
        89
    aliipay  
       2023-06-26 12:49:19 +08:00
    @Nasei win 目录是个什么?
    klo424
        90
    klo424  
       2023-06-26 13:08:06 +08:00
    不知道为什么很多人说 Windows 的 docker 不好用,我公司电脑装过好几次 docker 都好使啊?
    ioioj5
        91
    ioioj5  
       2023-06-26 17:02:42 +08:00
    wsl2 + docker 很香, 就是有点吃机器
    itgoyo
        92
    itgoyo  
       2023-06-26 17:57:23 +08:00
    wsl2 挺好的,就是一周不关机的时候就比较卡,老是每隔一周就要重启电脑
    rbaloatiw
        93
    rbaloatiw  
       2023-06-26 19:11:41 +08:00
    @Vegetable https://github.com/microsoft/WSL/releases/tag/1.3.10 1.3 加入了一个试验性的自动回收机制, 可以试试
    BeautifulSoap
        94
    BeautifulSoap  
       2023-06-26 19:25:25 +08:00 via Android
    @Nuttertoo1s 不要在 wsl2 里访问 Windows 下的文件,反过来也一样。虚拟机间的文件共享一直以来都是老大难问题。wsl2 访问自己的磁盘性能非常强接近原生的。
    chaleaochexist
        95
    chaleaochexist  
       2023-06-26 19:33:14 +08:00
    @zed1018 localhost 只能在本地访问.
    我想给其他人提供服务 就完犊子了.
    leenhawk
        96
    leenhawk  
       2023-06-26 21:17:50 +08:00
    @chaleaochexist 配端口转发呀,win 可以转发端口的,还有把 WSL 的前置访问打开就行了
    smallthing
        97
    smallthing  
       2023-06-26 22:07:28 +08:00
    笑死了 这里面 95%的人都是固步自封的玩意。
    smallthing
        98
    smallthing  
       2023-06-26 22:08:36 +08:00
    @Awes0me 首先你用 oled 显示器?其次 potplayer 支持 dv 你不会罢了。
    smallthing
        99
    smallthing  
       2023-06-26 22:09:20 +08:00
    @Belmode 影响 3%都不到 我用的 13600k 没有任何体感,我日常打 fps 游戏
    smallthing
        100
    smallthing  
       2023-06-26 22:09:53 +08:00
    @Shook 并没有 非常快乐
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 14:38 · PVG 22:38 · LAX 06:38 · JFK 09:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.