luffy
V2EX  ›  Windows

win 下的 Linux 环境选择

  •  
  •   luffy · Aug 22, 2022 · 16782 views
    This topic created in 1537 days ago, the information mentioned may be changed or developed.

    win 下 Linux 环境有几种选择:

    1, qemu 装 linux

    2, virtualbox 装 linux

    3, vmware 装 linux

    4, docker

    5, wsl2

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

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

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

    108 replies  •  2023-08-03 11:05:09 +08:00
    1  2  
    ❮ ❯
    kidcats
    kidcats
    Aug 22, 2022
    1
    WSL2+VScode 。目前没碰到大的问题。
    imycc
    imycc
    Aug 22, 2022
    2
    vmware+vscode ,目前也没碰到什么问题(限定普通的前后端开发)
    wbd31
    wbd31
    Aug 22, 2022❤️1
    3
    用自带的 Hyper-V
    Maboroshii
    Maboroshii
    Aug 22, 2022
    4
    我觉得 virtualbox 好,但是感觉没有啥顺手的 terminal
    xtreme1
    xtreme1
    Aug 22, 2022
    5
    目前还是选择使用 VMware.
    首先 wsl2 的文件系统性能不佳; 和宿主系统之间的互访问更是卡到流脓
    其次, 作为一个 pc 硬件玩家, Hyper-V 影响我宿主系统的内存性能和一些超频工具的使用.
    kid740246048
    kid740246048
    Aug 22, 2022
    6
    WSL2+VScode ,配上桥接网卡,日常前端开发没问题
    andj4cn
    andj4cn
    Aug 22, 2022❤️1
    7
    vmware + ubuntu ,用了很多年了。商业软件就是香
    mingl0280
    mingl0280
    Aug 22, 2022 via Android
    8
    WSL1 好使
    Aloento
    Aloento
    Aug 22, 2022 via Android
    9
    我大 Hyper-V 去哪里了?
    lovelylain
    lovelylain
    Aug 22, 2022 via Android
    10
    vmware+archlinux 用了很多年了,前几天翻出旧笔记本,发现上面有 5 年前的 archlinux ,费了一番功夫更新到最新版,成就感满满!
    deorth
    deorth
    Aug 22, 2022 via Android
    11
    反过来,linux host windows guest
    ob
    ob
    Aug 23, 2022
    12
    @mingl0280 不支持 docker
    placeholder
    placeholder
    Aug 23, 2022
    13
    wsl2 ubuntu ,方便不折腾
    Osk
    Osk
    Aug 23, 2022❤️7
    14
    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
    defel
    Aug 23, 2022 via iPhone❤️2
    15
    又买了一块固态硬盘,装了双系统,真香
    BeautifulSoap
    BeautifulSoap
    Aug 23, 2022 via Android
    16
    需要方便的文件浏览,原生的 linux gui 程序支持,还有 vs code 交互端口转发的话
    BeautifulSoap
    BeautifulSoap
    Aug 23, 2022 via Android
    17
    需要方便的文件浏览,原生的 linux gui 程序支持,还有 vs code 交互,端口转发的话选 wsl2

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

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

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

    主力还是 Mac 。

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

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

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

    要么就是 VMWare Workstation Pro ,要么就是 Hyper-V 。
    个人感觉 Hyper-V 还是挺好用的,而且和 Windows 集成度高,关闭窗口后后台仍然在运行,完全无感
    而且 windows 专业版还有其它好用的功能,感觉在这上面花钱更值
    mrpzx001
    mrpzx001
    Aug 23, 2022
    83
    wsl2+docker 完美,任意环境随手就可以创建
    vopsoft
    vopsoft
    Aug 23, 2022
    84
    vmware 网卡是百兆
    virtual box 是千兆 这个+vagrant 好用
    Hyper-V 是万兆
    outsiderK
    outsiderK
    Aug 23, 2022
    85
    用的 wsl2+docker ,感觉还行
    SenLief
    SenLief
    Aug 23, 2022
    86
    wsl2 文件系统不加,那就不用宿主的文件系统好了。
    aonshuy
    aonshuy
    Aug 23, 2022
    87
    @PowerDi 用不到了就直接 wsl --shutdown ,开机不自启,vscode 插件现启动的,只不过启动很快基本无感所以你觉得能直接使用
    leaves98
    leaves98
    Aug 23, 2022
    88
    @mrpzx001 #83 docker desktop ?还是 wsl2 里面用 docker ?
    Ackvincent
    Ackvincent
    Aug 23, 2022
    89
    另外配一台笔记本装 Linux
    taomynjoy
    taomynjoy
    Aug 23, 2022
    90
    vmware 最省事
    seakingii
    seakingii
    Aug 23, 2022
    91
    @luffy 可以扩展硬盘大小
    Jacobson
    Jacobson
    Aug 23, 2022
    92
    一直用的 hyper-v
    sincerebrave
    sincerebrave
    Aug 23, 2022 via Android
    93
    wsl + docker desktop 日常足够了
    PowerDi
    PowerDi
    Aug 23, 2022
    94
    @aonshuy 好的 非常感谢
    FrankHB
    FrankHB
    Aug 24, 2022
    95
    我用 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
    wangxiaoaer
    Aug 24, 2022 via iPhone
    96
    @FrankHB 听楼上一位大哥说 hyperv 性能最好我差点都信了。一年前试过卡出翔,还以为改进很大呢。
    lysS
    lysS
    Aug 24, 2022
    97
    @raaaaaar #20 不会,没遇见过·
    jdz
    jdz
    Aug 24, 2022
    98
    @Osk 动态内存什么意思?
    litguy
    litguy
    Aug 24, 2022
    99
    WSL1 才是正道,但是我不做开发,开发都是 remote linux server 用的
    FrankHB
    FrankHB
    Aug 24, 2022
    100
    @wangxiaoaer 考虑 hyperv_fb 糟烂残废到让人忍无可忍(乃至 vczh 都没好意思自卖自夸而强调 Hyper-V 不适合桌面 Linux )的程度,要是 hyperv_drm 的开发者被刺激得一步到位而成功实现(相对)非常神奇的改进到能用也不奇怪……但是现在 VMware 我这边已经流畅日用无压力了,而且 Hyper-V 网络配置麻烦的传统艺能应该没什么变化,就算都整清楚了没新坑,基本也就一个不用另外装第三方软件的好处(但是我都已经装了 VMware……),于是实在懒得试了。也许下次重装 Windows host 有机会再试试。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 189ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
    ♥ Do have faith in what you're doing.