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

win 下的 Linux 环境选择

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

    win 下 Linux 环境有几种选择:

    1, qemu 装 linux

    2, virtualbox 装 linux

    3, vmware 装 linux

    4, docker

    5, wsl2

    通过 vscode ssh 插件可以连到 linux 虚似机里面的项目。

    看起来是 qemu/virtualbox 装虚似机会更方便一些,可以少踩一些坑?

    从方便开发的角度来看, 不确定哪一种会更方便顺畅一些?

    105 条回复    2022-11-05 22:17:31 +08:00
    1  2  
    kidcats
        1
    kidcats  
       104 天前
    WSL2+VScode 。目前没碰到大的问题。
    imycc
        2
    imycc  
       104 天前
    vmware+vscode ,目前也没碰到什么问题(限定普通的前后端开发)
    wbd31
        3
    wbd31  
       104 天前   ❤️ 1
    用自带的 Hyper-V
    Maboroshii
        4
    Maboroshii  
       104 天前
    我觉得 virtualbox 好,但是感觉没有啥顺手的 terminal
    xtreme1
        5
    xtreme1  
       104 天前
    目前还是选择使用 VMware.
    首先 wsl2 的文件系统性能不佳; 和宿主系统之间的互访问更是卡到流脓
    其次, 作为一个 pc 硬件玩家, Hyper-V 影响我宿主系统的内存性能和一些超频工具的使用.
    kid740246048
        6
    kid740246048  
       104 天前
    WSL2+VScode ,配上桥接网卡,日常前端开发没问题
    andj4cn
        7
    andj4cn  
       104 天前   ❤️ 1
    vmware + ubuntu ,用了很多年了。商业软件就是香
    mingl0280
        8
    mingl0280  
       104 天前 via Android
    WSL1 好使
    Aloento
        9
    Aloento  
       104 天前 via Android
    我大 Hyper-V 去哪里了?
    jobmailcn
        10
    jobmailcn  
       104 天前 via Android
    vmware+archlinux 用了很多年了,前几天翻出旧笔记本,发现上面有 5 年前的 archlinux ,费了一番功夫更新到最新版,成就感满满!
    deorth
        11
    deorth  
       104 天前 via Android
    反过来,linux host windows guest
    ob
        12
    ob  
       104 天前
    @mingl0280 不支持 docker
    placeholder
        13
    placeholder  
       104 天前
    wsl2 ubuntu ,方便不折腾
    Osk
        14
    Osk  
       104 天前   ❤️ 7
    Hyper-v, 如果没有 USB 访问需求的话.

    优势:
    hv 的性能不用说, 顶部水平的.
    动态内存极好用;
    自带;
    vhdx 文件操作方便;

    劣势:
    没有 usb redirection;
    网络配置并不是那么的简单, 其实也不复杂, 但确实比 vbox, vmware 等难用一点点, 比如, 不能方便的创建带 dhcp 的网络; 只有一个 NAT 网络;
    文件共享不便, 需要 host 或 guest 配置 nfs/smb, 不如 vbox 等开箱即用.


    提示:
    请使用 5.16 以上的内核, 因为 hyperv_drm 比 hyperv_fb 跑桌面流畅多了;



    -------------------

    为何不用 vbox:
    虽然免费, 但似乎摆烂多年, 毕竟无法创造营收, 没砍都不错了;

    为何不用 vmware:
    收费, player 版则限制太多;
    极限情况下, 比如同时跑太多虚拟机时, 性能我个人之前测试的结果是不如 hypet-v 的;

    为何不用 qemu:
    qemu 调用哪个加速我不知道(用 whvp? 还不如 hyper-v), 但一不小心成了软件虚拟化就尴尬了;
    命令行难用;

    为何不用 docker?
    docker on windows 不就是 hyper-v 等虚拟机中跑一个 linux 来跑 docke 吧...
    真正的容器只支持跑 Windows core.

    为何不用 wsl?
    所有 IO 性能感人
    一些系统调用不支持,兼容性是问题;

    为何不用 wsl2?
    不希望本地文件直接能被 guest 访问, 虽然能配置不自动挂载.
    没有 init 系统, 一些服务还得自己去写启动脚本;
    反正都是 hyper-v, 只不过内核是微软优化过的;
    IP 和监听端口处理起来很烦, 一点不如自己起个 hyper-v 虚拟机方便;
    同 host 交换文件使用的 9p, 个人体验极其拉垮, 甚至不如 wsl1, 不知道现在优化的怎样了, 以前信了别人的推荐用 9p, 卡死我了, 后来用 smb, 啥事都没, 快多了, 所以还是不如自己起个 hyper-v 虚拟机.



    -----------

    个人愚见, 有错欢迎帮忙指正😄
    defel
        15
    defel  
       104 天前 via iPhone   ❤️ 2
    又买了一块固态硬盘,装了双系统,真香
    BeautifulSoap
        16
    BeautifulSoap  
       104 天前 via Android
    需要方便的文件浏览,原生的 linux gui 程序支持,还有 vs code 交互端口转发的话
    BeautifulSoap
        17
    BeautifulSoap  
       104 天前 via Android
    需要方便的文件浏览,原生的 linux gui 程序支持,还有 vs code 交互,端口转发的话选 wsl2

    想要完整虚拟机所有一切自己折腾的话选 hyper-v ,作为 type 1 的虚拟机性能不是其他几家可以比的
    LiSrRbE2Mac
        18
    LiSrRbE2Mac  
       104 天前 via Android
    如果可以不用 usb 的,推荐 wsl2
    (虽然 wsl2 也可以通过 usbip 的方式访问,但是多捞啊)
    FrankAdler
        19
    FrankAdler  
       104 天前 via iPhone
    如果玩游戏,选 vm 或者 vbox
    raaaaaar
        20
    raaaaaar  
       104 天前
    wsl2 楼上没有遇到过用着用着就不能动的情况吗?再次开一个终端也会显示超时,进不去。无论是 Arch 还是商城里的 Ubuntu ,我在完全不同的两台机子上都复现了问题,严重影响了开发。。已经考虑准备换 Mac 了。
    ysc3839
        21
    ysc3839  
       104 天前 via Android
    我选 3 。
    QEMU 需要自己折腾硬件虚拟化,需要自己敲命令,似乎没找到 Windows 下的 QEMU GUI 。
    VirtualBox 是开源拖拉机,性能不行,而且它那个附加模块还是闭源的。
    Docker 用起来太麻烦,而且 VMware 自带 vctl 工具,可以兼容 Docker 的镜像。
    WSL2 砍了 init system ,我也不需要显卡虚拟化等功能。主要还是 Hyper-V 独占虚拟化的问题,VMware 会受一些影响。
    dingwen07
        22
    dingwen07  
       104 天前 via iPhone
    WSL
    luffy
        23
    luffy  
    OP
       104 天前
    @Osk 你的 win 是 pro 版吧?
    zjsxwc
        24
    zjsxwc  
       104 天前
    virtualbox 吧,
    不过 vbox 自带的文件共享读写性能不如 windows samba 直接把目录挂出来,然后虚拟机里 linux 挂上这个目录读写性能好。
    buffzty
        25
    buffzty  
       104 天前
    你可能只需要一个 xshell 和 idea. idea 远程运行 谁用谁知道. 双 11 买个服务器就行
    lujiaosama
        26
    lujiaosama  
       104 天前   ❤️ 1
    用了 hyper-v 就没法用安卓模拟器, 我选择 virtualbox
    litguy
        27
    litguy  
       104 天前
    wsl1 是我的最爱,开个 ssh 作一般开发,需要运行的代码都是在 server 上面跑的,不在 wsl 里面跑
    clorischan
        28
    clorischan  
       104 天前
    @lujiaosama BlueStacks 4 之后版本都有可以支持 Hyper-V 的
    mango88
        29
    mango88  
       104 天前
    不折腾 docker wsl1 体验就蛮好
    Akiya
        30
    Akiya  
       104 天前
    用 WSL2 开发数据库,踩过一些坑,问题不算多。还行,IO 性能不够的问题不大,反正又不用来跑 Benchmark ,本地开发最多就做下正确性测试
    LaoLeyuan
        31
    LaoLeyuan  
       104 天前
    用公司的 ESXi 搭建一台个人用的 Linux ,系统选 centos 或者 ubuntu 。
    我觉得这才是最优选择。
    hermit17
        32
    hermit17  
       104 天前
    wsl2 挺多坑的 想稳定少折腾的话还是开虚拟机吧
    hanxiV2EX
        33
    hanxiV2EX  
       104 天前 via Android
    我用的 virtualbox 装 linux ,终端用的 wezterm
    yolee599
        34
    yolee599  
       104 天前
    virtualbox 装 linux
    luffy
        35
    luffy  
    OP
       104 天前
    @lujiaosama 确实也是个坑,谢谢告知
    cheng6563
        36
    cheng6563  
       104 天前
    vmware
    不然就是 visualbox
    hyper-v 是个大坑,基于 hyper-v 的 wsl2 也是个大坑。
    nothingistrue
        37
    nothingistrue  
       104 天前
    不想折腾的话,就用虚拟机。虚拟机根据情况选 hyper-v 或 vmware 。内存跟磁盘溢出的话就用 hyper-v ,能发挥几乎全部 CPU 的能力( Linux 是内存机制下,hyper-v 的动态内存无法发挥效果,所以内存必须足够大才行)。CPU 溢出的话就 vmware player ,与宿主机的结合更高效。不要用没有大厂支持的 virtualbox 。

    docker 跟 wsl2 其实是一回事,都是 wsl2 ,当你配置不行没法开虚拟机的时候,可以考虑 wsl2 。
    ScepterZ
        38
    ScepterZ  
       104 天前
    VMware 体验比 virtualbox 要强得多,不过这东西估计大部分人不会买正版,看你能不能接受破解版了
    luffy
        39
    luffy  
    OP
       104 天前
    @ScepterZ 破解版应该不会考虑了,有被植入木马的风险
    lujiaosama
        40
    lujiaosama  
       104 天前
    @clorischan 其实不止安卓模拟器, 一些软件会禁止本机开启 hyper-v 的, 比如本地加密视频播放防盗录. 本地虚拟机感觉还是差点意思, 我考虑整个专门的编译机了.
    rickiey
        41
    rickiey  
       104 天前
    wsl 放弃吧,不如虚拟机挂盘,virtualbox 网络就是个垃圾,踩过坑,推荐 VMware
    victorc
        42
    victorc  
       104 天前
    以前一直用 vagrant ,就是 virtualbox 套壳,有 wsl2 ,无脑选 wsl2
    cxh116
        43
    cxh116  
       104 天前   ❤️ 2
    反着来, 虚拟机里装 win ,还能隔离 win 病毒,保护你的代码安全.同时宿主机跑 linux,代码开发时,性能最强! 🐶
    anyele
        44
    anyele  
       104 天前
    visualbox , 快照免费
    luffy
        45
    luffy  
    OP
       104 天前
    @cxh116 虚似机装 win ,是不是得折腾激活,正版之类的?现在买机器不是都自带 win 正版嘛?

    虚似机里面的 win 得找破解?
    Awes0me
        46
    Awes0me  
       104 天前
    hyper-v 是个大坑
    wupher
        47
    wupher  
       104 天前
    wsl2 ,但只是日常开发,交叉编译。

    主力还是 Mac 。

    有小坑,但不多。
    cxh116
        48
    cxh116  
       104 天前
    @luffy win 不激活现在也可以用的,只是显示提示. 你的机器本来有授权,所以不存在盗版问题.
    不是激活了就是正版,没激活就是盗版,主要还是看你花钱了且在合理的使用范围内.
    jitongxi
        49
    jitongxi  
       104 天前
    直接转 linux 桌面版一了百了, 拿起 e3 老爷机,跑的飞快。
    leeyuzhe
        50
    leeyuzhe  
       104 天前
    wsl2
    butanediol2d
        51
    butanediol2d  
       104 天前
    @luffy #39 VMWare Workstation Player 不是可以免费用吗?我觉得已经足够了。
    seakingii
        52
    seakingii  
       104 天前
    vmware + ubuntu , 虽然有点性能损失,但系统的兼容性好.
    nkidgm
        53
    nkidgm  
       103 天前
    wsl2 当 Linix 的命令行工具来使用挺好用的,但跑服务非常不好用,比原生 Linux 还要折腾。
    jdz
        54
    jdz  
       103 天前
    @Osk hyper-v 与 host 共享硬件么, 比如 vmware, 分配 20g, 那么他就只能用 20g, 即使主机 64g. 而 wsl2 就与主机共享这些硬件, 这点很好
    jdz
        55
    jdz  
       103 天前
    @LaoLeyuan 羡慕, 我司就没有
    zed1018
        56
    zed1018  
       103 天前
    wsl2
    zengzizhao
        57
    zengzizhao  
       103 天前
    multipass
    elechi
        58
    elechi  
       103 天前
    vmware player
    Krime
        59
    Krime  
       103 天前
    日常还是更喜欢用 wsl1 ,访问真实文件系统速度快些。而 wsl2 的话,子系统文件访问速度不错,但是从真实系统访问(比如开发过程中手动整理静态资源等)要麻烦一些。
    涉及到更低层需要更完整的 linux 环境时,就改用 virtual box 的虚拟机,挂载设备进去基本能解决 80% 的问题。
    2022study
        60
    2022study  
       103 天前
    @Osk 我也认同此兄弟的看法
    sophos
        61
    sophos  
       103 天前
    必然是 wsl2 ,既然选择了 windows 就跟着微软的路线走
    qooweds
        62
    qooweds  
       103 天前
    每个人场景不一样,可能体验也不同
    我的场景是轻度使用 vmware ,但是需要不同的网络模式,在桥接和 NAT 之间切了好几次,最后还是没有满足我的需求。也可能是我不太会用的原因
    WSL 装好就能用,而且不用折腾网络,轻度使用还是蛮方便的
    xp1zzz
        63
    xp1zzz  
       103 天前
    @xtreme1 请问一下性能影响是因为 Hyper-V 开启以后宿主机也被虚拟化吗?
    xtreme1
        64
    xtreme1  
       103 天前
    @xp1zzz
    是的. 其实 Hyper-V 对宿主机的影响, 使用上都是无感觉的, 但 pc 硬件玩家玩的就是那点跑分, 哈哈
    PowerDi
        65
    PowerDi  
       103 天前
    我有一个问题 wsl2 的 ubuntu 是常驻的吗?
    PowerDi
        66
    PowerDi  
       103 天前
    @PowerDi 譬如开机我没有开启 wsl 命令,但是 vscode 能通过 wsl remote 插件直接使用。这是不是意味着正常情况下,我是两个系统一直在运行的,放在笔记本上续航是不是影响就比较大了(在不需要用 ubuntu 的情境下)
    ceno
        67
    ceno  
       103 天前
    为啥需要 ssh 链接 linux 里的项目,项目都放 windows 里不行吗
    luffy
        68
    luffy  
    OP
       103 天前
    @cxh116 你这边如果要用 win 里面微信了? 切换窗口不太方便的吧?
    ltkun
        69
    ltkun  
       103 天前 via Android
    wsl2 变得更加 Linux 了 那天甚至编译了 5.15lts 版内核 不过 Windows 有个缺点一开这些风扇就高速转 而 Linux 下风扇基本没反应 可能调控策略不一样
    lzs5240
        70
    lzs5240  
       103 天前
    WSL2 + VScode
    pkwenda
        71
    pkwenda  
       103 天前
    IDEA 下选 jdk 选不了 WSL2 里面的
    cwcc
        72
    cwcc  
       103 天前
    如果只是搞开发的话,我个人其实比较看好 JB 家的 Gateway ,只是现在 Bug 还是有点多,但能直接把 IDE 跑在 Linux 系统上,UI 在 Windows 上这种思路我觉得是比较好的,除了对网络要求不低外其他还好。然后 Linux 系统你可以买高性能服务器,也能装个虚拟机。

    WSL2 更适合平时用一些不带服务和守护的 cli 的东西,如果做网络、做桌面环境用虚拟机显然更合适。毕竟微软的想法肯定是想把 Linux 融合到 Windows 里面,但最终底层还是两个系统,总会有隔阂,要么就不分开,要么就完全分开。

    Docker 在 Windows 也属于虚拟机的范畴了。
    richardwong
        73
    richardwong  
       103 天前
    @kid740246048 桥接网卡怎么配
    cxh116
        74
    cxh116  
       103 天前
    @luffy 可以多桌面.
    用快捷键切换到虚拟机桌时,如果虚拟机里微信默认是打开的,还是很快.跟在 win 下切换多桌面快速定位到应用没什么差别.
    cxh116
        75
    cxh116  
       103 天前
    如果有多屏幕就更加简单了,win 虚拟机一个屏幕,linux 使用一个屏幕,使用起来特方便.
    cnoder
        77
    cnoder  
       103 天前
    还是喜欢 vagrant+virtualbox+linux,用 termius
    luffy
        78
    luffy  
    OP
       103 天前
    @cxh116 看起来你并没有 c# 相关开发的需求
    luffy
        79
    luffy  
    OP
       103 天前
    @seakingii vmware 看起来可以动态调整硬盘大小? 比如一开始只设定了 30G ,后来发现不够用了,可以后期额外增加?
    hakr
        80
    hakr  
       103 天前
    @pkwenda #71 我记得能选来着 有个 \\wsl$ 目录好像
    anubu
        81
    anubu  
       103 天前
    Hyper-V 长期使用者,推荐 Hyper-V 。
    不过 Hyper-V 还是有巨坑,本来网络配置就不如其它的好用,坑的是会有兼容性问题,特别是无线网卡,这种问题是会影响宿主机级别的,其它虚拟化很少碰到会影响宿主机的问题。如果和你的硬件兼容性足够,还是推荐的。
    dcsuibian
        82
    dcsuibian  
       103 天前
    不推荐 virtual box ,虽然这东西开源免费,但是实在是太不好用了,在 win 和 mac 上都卡的一批
    性能和易用性上我觉得甚至都比不上隔壁 vmware 的 player 、fushion
    还是老实付费

    要么就是 VMWare Workstation Pro ,要么就是 Hyper-V 。
    个人感觉 Hyper-V 还是挺好用的,而且和 Windows 集成度高,关闭窗口后后台仍然在运行,完全无感
    而且 windows 专业版还有其它好用的功能,感觉在这上面花钱更值
    mrpzx001
        83
    mrpzx001  
       103 天前
    wsl2+docker 完美,任意环境随手就可以创建
    vopsoft
        84
    vopsoft  
       103 天前
    vmware 网卡是百兆
    virtual box 是千兆 这个+vagrant 好用
    Hyper-V 是万兆
    outsiderK
        85
    outsiderK  
       103 天前
    用的 wsl2+docker ,感觉还行
    SenLief
        86
    SenLief  
       103 天前
    wsl2 文件系统不加,那就不用宿主的文件系统好了。
    aonshuy
        87
    aonshuy  
       103 天前
    @PowerDi 用不到了就直接 wsl --shutdown ,开机不自启,vscode 插件现启动的,只不过启动很快基本无感所以你觉得能直接使用
    leaves98
        88
    leaves98  
       103 天前
    @mrpzx001 #83 docker desktop ?还是 wsl2 里面用 docker ?
    Ackvincent
        89
    Ackvincent  
       103 天前
    另外配一台笔记本装 Linux
    taomynjoy
        90
    taomynjoy  
       103 天前
    vmware 最省事
    seakingii
        91
    seakingii  
       103 天前
    @luffy 可以扩展硬盘大小
    Jacobson
        92
    Jacobson  
       103 天前
    一直用的 hyper-v
    sincerebrave
        93
    sincerebrave  
       103 天前 via Android
    wsl + docker desktop 日常足够了
    PowerDi
        94
    PowerDi  
       103 天前
    @aonshuy 好的 非常感谢
    FrankHB
        95
    FrankHB  
       103 天前
    我用 WSL1+VMware 。

    WSL1 当主力,是因为共享资源方便程度上无可替代,虚拟机始终低人一等。(当然非得拿 Win32 app 作死直接编辑 DrvFs 下的文件搞烂了另说。)磁盘 IO 能比原生 NTFS 更快,相比之下挂 vhd 就很看脸了。
    缺陷同样明显:内核残的没法用内核模块,一些系统调用实现不全,只有 x86_64 ;不能换 init ;但是大多数情况没什么问题,或者有变通。
    没图形硬件加速,但配合 VcXsrv 日用桌面问题不大。

    遇到解决不了的需求(很少)再用更重量级的虚拟机。

    虚拟机有虚拟机的通病(不是一台机器)和优点(不是一台机器但你真的需要不同的机器;以及快照)。
    Hyper-V 就不是设计出来给桌面系统用的,别指望什么体验。hyperv_fb 卡得没法用,还不支持高分屏。hyperv_drm 没试过不过我懒得折腾了。
    以前用 Hyper-V 还有和其它虚拟机(包括一些安卓模拟器)共存的问题。现在开 Hyper-V+虚拟机平台用比较新的虚拟机问题不大,但仍然可能是个问题。安卓模拟器能用的就 BlueStacks Hyper-V 版。

    VirtualBox 就是摆烂。之前试了下,默认还是卡翔(虽然没 Hyper-V 那么夸张),配置 Hyper-V 共存出错发现论坛里的根本都不清楚自家产品的最新功能。不折腾了。

    开箱即用的基本也就 VMware 了。

    至于 WSL2……都自己搭建环境了,非要用还不如全功能的正经虚拟机。而且至今还有 250G 硬盘限制。

    @Osk 你是不是把 WSL1 和 WSL2 的 IO 性能感人程度搞反了?
    wangxiaoaer
        96
    wangxiaoaer  
       103 天前 via iPhone
    @FrankHB 听楼上一位大哥说 hyperv 性能最好我差点都信了。一年前试过卡出翔,还以为改进很大呢。
    lysS
        97
    lysS  
       103 天前
    @raaaaaar #20 不会,没遇见过·
    jdz
        98
    jdz  
       102 天前
    @Osk 动态内存什么意思?
    litguy
        99
    litguy  
       102 天前
    WSL1 才是正道,但是我不做开发,开发都是 remote linux server 用的
    FrankHB
        100
    FrankHB  
       102 天前
    @wangxiaoaer 考虑 hyperv_fb 糟烂残废到让人忍无可忍(乃至 vczh 都没好意思自卖自夸而强调 Hyper-V 不适合桌面 Linux )的程度,要是 hyperv_drm 的开发者被刺激得一步到位而成功实现(相对)非常神奇的改进到能用也不奇怪……但是现在 VMware 我这边已经流畅日用无压力了,而且 Hyper-V 网络配置麻烦的传统艺能应该没什么变化,就算都整清楚了没新坑,基本也就一个不用另外装第三方软件的好处(但是我都已经装了 VMware……),于是实在懒得试了。也许下次重装 Windows host 有机会再试试。
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3766 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 04:24 · PVG 12:24 · LAX 20:24 · JFK 23:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.