ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Gromacs Linux环境配置:虚拟机、WSL2与双系统选型

2026/10/5 1:20:54 拓冰建站 浏览量
Gromacs Linux环境配置:虚拟机、WSL2与双系统选型 做分子动力学模拟的人迟早都要跟 Linux 打交道。Gromacs 这套软件在 Windows 上也能装但实际跑起来你会非常难受——文件路径、脚本兼容、并行效率、GPU 加速哪个环节都别扭。我见过不少新手一开始图省事在 Windows 里装虚拟机再装 Ubuntu 22.04折腾一星期后发现性能损失太大又转向 WSL2等模拟规模上来了最后直接放弃 Windows 装成双系统。这条从虚拟机到 WSL2 再到双系统的路线我自己完整走过一遍踩过不少坑。这篇就把三条路线的选型对比、Ubuntu 22.04 的完整配置、Gromacs 编译安装和性能优化一次性讲清楚不管你是刚接触分子模拟的学生还是需要在自己电脑上搭环境的研究人员照着做基本都能顺利跑起来。1. 为什么 Gromacs 一定要跑在 Linux 上1.1 Gromacs 对 Linux 的硬性需求Gromacs 是一款开源的分子动力学模拟软件在生物大分子、材料、化学体系模拟里几乎是标配。它本身是跨平台的Windows 版也存在但你真拿 Windows 跑大型体系会发现在几个核心环节被卡住。首先是并行计算。Gromacs 的加速逻辑高度依赖 MPI 和线程级并行Linux 下 OpenMPI、MPICH 都有非常成熟的发行版支持配合 GCC、Intel oneAPI 编译器能发挥出近乎线性的扩展效率。Windows 下的 MPI 支持相对弱尤其当你需要跨节点跑在多台机器上时Linux 几乎成了唯一选择。其次是 GPU 加速。Gromacs 对 NVIDIA GPU 的 CUDA 加速支持是重中之重而 CUDA 工具链在 Linux 下的驱动、库文件、编译环境集成比 Windows 顺畅得多。模拟小体系差别还不明显一旦跑几百万原子的大体系Linux 下的 GPU 加速能比 Windows 快 20% 到 50% 甚至更多。第三是自动化流程。分子模拟从来不只跑一个 mdrun而是要做能量最小化、NVT 平衡、NPT 平衡、成品模拟中间还要跑分析脚本、轨迹处理。这些步骤串起来靠的是 bash 脚本、Python 脚本和命令行工具Linux 天生就是干这个的。Windows 的 PowerShell 虽然也在进步但你在网上找到的绝大部分教程、脚本、工作流都默认在 Linux 下执行。最后是集群兼容性。真正的高性能计算集群几乎全是 Linux。如果你以后要接触超算中心、课题组服务器那上面的作业调度系统如 Slurm、PBS文件系统、环境变量、软件编译方式全是 Linux 那一套。你在自己电脑上先用 Linux 把流程跑通迁移到集群上基本不用改任何东西。1.2 三条路线虚拟机、WSL2、双系统如何选在 Windows 电脑上使用 Linux 环境主流方式就这么几种各有各的适用场景。方案性能损耗GPU 加速使用便捷性适合人群虚拟机明显通常有 10%~30% 损耗难直通配置复杂开软件就能进文件共享方便尝鲜、学习 Linux 命令、轻量使用WSL2极低几乎可忽略支持 CUDA配置简单启动秒级Windows/Linux 文件互通日常模拟、学习、备选主力环境双系统无损耗完整支持重启切换系统Windows 下无法同时用 Linux长期跑大规模模拟、Win/Linux 日常都重度使用我个人的建议是这样如果只是刚接触 Linux想学学命令或者偶尔跑一些小体系先装虚拟机成本低、风险低、删了也不心疼。等确认自己真的需要长期做模拟果断切成 WSL2性能和便捷性兼顾得最好。双系统属于终极形态它唯一的代价就是你每次切系统都要重启电脑但换来的是 100% 的硬件性能。做中大规模 Gromacs 模拟时CPU 的 AVX-512 指令集、GPU 的显存带宽全部拉满这种感觉是虚拟机没法给你的。文章后面我会把三条路线都完整讲一遍你根据自己的基础选一条走到底就行。2. 方案一虚拟机安装 Ubuntu 22.04 全流程2.1 VMware 虚拟机配置与系统镜像准备虚拟机方案里我推荐用 VMware Workstation版本越新越好我这边用的是 VMware Workstation 17。为什么不推荐 VirtualBox虽然它免费开源但对 GPU 直通、USB 设备、3D 加速的支持一直不太稳定尤其在 Ubuntu 22.04 的图形界面下体验差距挺明显。VMware 的兼容性和性能表现在个人电脑上更可靠。安装前需要准备 Ubuntu 22.04 的镜像文件。建议到官网下载 ubuntu-22.04.x-desktop-amd64.iso比第三方站安全得多。下载时注意核对文件版本号22.04 属于 LTS 长期支持版本官方支持到 2027 年做科研环境就该选这种稳定版本不要贪新追 23.x、24.x 这种短期版本。打开 VMware 创建新虚拟机选典型安装然后指定 ISO 镜像。虚拟机硬件配置这一块很多人随便点几下就过去了等装完才发现卡成幻灯片。给一个我自己反复试过的最低和推荐配置硬件项最低配置推荐配置内存4 GB8 GB 以上物理内存 16 GB 时给它 8 GB处理器2 核4 核及以上磁盘40 GB80 GB存储为单个文件性能更好网络NATNAT注意一个细节虚拟机的内存和 CPU 数量不能超过物理机资源的一半否则 Windows 本体都会卡。比如你的笔记本是 16 GB 内存 6 核 CPU虚拟机给 8 GB 4 核比较稳妥。2.2 Ubuntu 22.04 安装步骤要点虚拟机创建完成后开机进入安装界面。语言选英语注意这里不要选中文因为很多 Gromacs 的资料、报错信息、教程都以英文为主保持英文环境能减少编码和路径问题。这个选择后面还可以改但初期用英文最省事。安装类型选Erase disk and install Ubuntu这里删的是虚拟机的虚拟磁盘不影响 Windows 物理磁盘放心选。安装过程中创建用户名和密码时用户名尽量用全小写字母不要有空格和特殊符号。比如我用的是gmxuser后面在集群上迁移环境时这种简洁用户名会省很多事。整个安装过程大概 10 到 20 分钟看磁盘速度。装完后重启进入系统第一件事就是安装 VMware ToolsVMware 17 里叫 open-vm-tools。在虚拟机菜单栏选虚拟机→安装 VMware Tools然后在终端里执行sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop装完重启你会发现屏幕分辨率自动变成物理屏分辨率复制粘贴、拖拽文件也都能用了。很多人装完虚拟机说屏幕好小不能复制文件八成就是没装这个工具。2.3 虚拟机里跑 Gromacs 的三大局限虚拟机跑 Gromacs性能损失是实实在在的。我实测过在同样一台 i7 处理器上跑同一个 Gromacs 基准测试虚拟机比真机慢 15% 到 30%。原因有三个。第一是 CPU 指令集穿透问题。Gromacs 编译时会根据 CPU 支持的指令集自动选择最快的 SIMD 优化路径比如 AVX2_256、AVX512_512。但在虚拟机里虚拟 CPU 暴露给操作系统的指令集往往会被过滤掉一部分导致编译出来的程序无法使用最高等级的指令集性能直接打折。第二是内存带宽瓶颈。分子动力学模拟对内存带宽极其敏感虚拟机要经过 Hypervisor 层做内存地址转换每次内存访问都多一层开销。体系越大这种开销越明显。第三是 GPU 直通困难。VMware Workstation 对 NVIDIA 显卡的直通支持一直有限就算你物理机有强力显卡虚拟机里也基本用不上 CUDA 加速。没有 GPU 的 Gromacs就像少了条腿。所以我的结论是虚拟机只适合学习 Linux 操作和跑跑极小的测试体系。真要跑实际项目要么上 WSL2要么直接双系统。3. 方案二WSL2 安装 Ubuntu 22.04 实战3.1 前置检查硬件虚拟化与系统版本WSL2 对我而言是目前在 Windows 里做 Linux 开发的最优解。它不像虚拟机那样模拟整个硬件而是一个轻量级虚拟机共享 Windows 内核的部分组件启动只要一两秒内存动态分配文件互通也方便。更重要的是它支持 NVIDIA CUDA 加速意味着你可以在 WSL2 里直接调用 Windows 上的显卡做 Gromacs 的 GPU 加速性能和双系统非常接近。动手之前先花两分钟检查电脑是否满足条件。第一Windows 10 必须是 2004 版本以上或者直接上 Windows 11老版本系统请先更新。第二CPU 的虚拟化必须在 BIOS 中开启。开机时按 Del 或 F2 进 BIOS找到Intel Virtualization Technology或AMD SVM Mode设为 Enabled。现在的电脑出厂基本默认开启但如果你是从老机器升级过来的一定要确认这一项。确认步骤很简单打开任务管理器切到性能选项卡点CPU右下角可以看到虚拟化已启用或已禁用。如果是禁用那就先重启进 BIOS 打开这一步不解决后面 WSL2 会一直报错此计算机上未启用虚拟化。检查 WSL 版本用命令行最直接wsl --status wsl --version如果输出里没有 WSL2 相关的版本号说明你的 WSL 版本过低或者还未启用直接执行下面一节的操作。3.2 WSL2 安装 Ubuntu 22.04 的完整步骤WSL2 的安装有两种方式我推荐用最新的安装命令一条命令搞定所有组件。以管理员身份打开 PowerShell 或 Windows Terminal执行wsl --install这个命令会自动启用 Windows 的虚拟机平台和 WSL 功能默认安装 Ubuntu 最新 LTS 版本。但如果你需要指定安装 Ubuntu 22.04先列出可用的发行版wsl --list --online输出里会有一行Ubuntu-22.04然后执行wsl --install -d Ubuntu-22.04安装完成后系统会提示你重启电脑。重启后第一次启动 Ubuntu 终端会让你设置用户名和密码。这一步设置的用户名和 Windows 用户名可以不一致登录时用的是 Linux 用户跟 Windows 的账户体系互相独立。装完第一件事还是更新系统源和数据包sudo apt update sudo apt upgrade -y很多人到这一步就直接开用了但国内网络环境下Ubuntu 默认的 apt 源下载速度很慢。建议换成国内镜像源阿里云或者清华源都行。22.04 的代号是 jammy换源文件在/etc/apt/sources.list用 sed 命令快速替换sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update这样 apt 速度能提升好几倍后面装依赖包的时候体会会非常明显。3.3 Windows 与 WSL2 的文件互访与实用配置WSL2 和 Windows 之间的文件访问是双向的这也是它比虚拟机体验好的一个重要原因。从 WSL2 里访问 Windows 文件路径是/mnt/c/、/mnt/d/比如你要访问 E 盘的一个 Gromacs 输入文件cd /mnt/e/gromacs_data从 Windows 访问 WSL2 内部的文件在资源管理器地址栏输入\\wsl$\Ubuntu-22.04\home\你的用户名\就能像操作普通文件夹一样打开 Linux 里的文件。这里有一个非常重要的性能心得Gromacs 的输入输出文件尽量不要放在/mnt/c或/mnt/e下面。WSL2 访问 Windows 文件系统要经过跨文件系统转换读写性能损失非常明显尤其是轨迹文件这类大文件严重影响模拟的 IO 效率。正确做法是把数据文件放到 WSL2 的 Linux 文件系统里比如~/gmx_simulations这种目录跑完模拟后再把结果复制到 Windows 路径下归档。WSL2 里的常用路径~代表/home/你的用户名所有模拟工作都在这个目录下面进行。这一步虽然简单但能避免后期一半以上的性能坑。如果还需要图形界面跑 VMD 这种可视化软件WSL2 也支持。Windows 11 用户自带 WSLg直接装 VMD 就能弹窗显示。Windows 10 用户可以用export DISPLAY127.0.0.1:0.0配合 VcXsrv 实现图形界面。实测下来 VMD 在 WSLg 里运行流畅度够用常规载入轨迹、看结构都没问题。4. 方案三双系统安装 Ubuntu 22.04 终极方案4.1 双系统安装的准备工作双系统是准备把一台电脑变成两台用开机时选择进入 Windows 还是 Ubuntu。这个方案性能最好但也是三种方案里最容易出意外的。准备工作第一件事不是下载镜像而是备份数据。虽然不是删除 Windows但安装过程中涉及磁盘分区操作谁也没法保证 100% 不出问题。备份你的毕业论文、代码、实验数据养成好习惯。然后是准备一个至少 8 GB 的 U 盘用来做启动盘。工具推荐 RufusWindows 下做启动盘最省心。操作步骤选择 U 盘选择下载好的 Ubuntu 22.04 ISO 镜像分区类型选 GPT目标系统类型选 UEFI文件系统保持默认点开始几分钟就完成。磁盘空间分配这一块很多人不知道怎么分。打开 Windows 的磁盘管理找一个空间比较大的分区右键压缩卷给 Ubuntu 腾出至少 80 GB 的未分配空间。如果是 512 GB 的笔记本我建议给 150 GB 左右因为后期装完 Gromacs 和各种软件再存模拟数据空间吃紧得很快。4.2 Ubuntu 22.04 双系统安装规划U 盘插上电脑重启进入 BIOS。不同品牌笔记本进入 BIOS 的按键不一样ThinkPad 是 F1戴尔是 F2 或 F12联想拯救者是 F2自己查一下对应型号。重点是把 BIOS 里的 Secure Boot 设置为 Disabled把启动模式设为 UEFI然后选择从 U 盘启动。如果开机没有进入 Ubuntu 安装界面而是直接进了 Windows多半是 UEFI 启动项的顺序问题。在 BIOS 里找到 Boot Menu手动选择 U 盘启动即可。进入 Ubuntu 安装界面后语言依然建议选英语。安装类型这一步是关键选择Install Ubuntu alongside Windows Boot Manager也就是与 Windows 共存。安装程序会自动识别你之前压缩出来的未分配空间你只需要确认它不会动到 Windows 分区就行。分区方案我用的是最稳的一种只分一个根分区/和一个交换分区swap。根分区用 ext4 格式挂载到/占用剩余全部空间交换分区设为你物理内存的大小比如 16 GB 内存就设 16 GB。不需要单独分/home以后要重装系统的时候直接格式化根分区就行数据可以单独备份。安装完成后重启你会看到 GRUB 引导菜单里面有 Ubuntu 和 Windows Boot Manager 两个选项。默认进 Ubuntu等 10 秒或按方向键选择 Windows。到这里双系统的骨架就搭好了。4.3 双系统安装后的时间同步问题双系统有个非常常见又让人头大的问题Ubuntu 和 Windows 的时间经常对不上。你从 Windows 重启进 Ubuntu发现时间快了 8 小时或者反过来慢 8 小时。这背后的原因是两个系统对硬件时钟的解读不同Windows 把主板时间当成本地时间Linux 把主板时间当成 UTC 时间。解决办法是在 Ubuntu 里执行sudo timedatectl set-local-rtc 1让 Ubuntu 也把硬件时钟当成本地时间这样两个系统的时间就统一了。这个命令我第一次装双系统时踩过坑折腾了半天才发现就这么一小行的事。装完双系统还有一个注意点GRUB 引导菜单默认等待 10 秒如果你想默认从 Windows 启动可以修改/etc/default/grub里的GRUB_DEFAULT配置改成GRUB_DEFAULT2根据 Windows 在菜单中的位置调整然后执行sudo update-grub如果你日后想卸载 Ubuntu直接用 Windows 的磁盘管理把 Ubuntu 所在分区删掉还不够还要修复 Windows 的启动引导。最稳妥的办法是用 Windows 安装 U 盘修复启动或者用 bcdedit 重建引导记录。这个操作有一定风险所以安装前一定做好备份。5. Gromacs 编译安装与性能优化关键参数5.1 Gromacs 依赖环境的安装Gromacs 安装方式有两种直接sudo apt install gromacs装编译好的版本或者自己从源码编译。我的建议很简单跑步学、做作业apt 版够用但你要跑实际研究项目必须源码编译这样才能针对自己的 CPU 指令集和 GPU 型号做最大优化性能差距可以到 30% 以上。源码编译前需要准备好依赖。在 Ubuntu 22.04 终端里执行sudo apt update sudo apt install -y build-essential cmake gcc g make \ libfftw3-dev libopenmpi-dev libblas-dev liblapack-dev \ libhdf5-dev zlib1g-dev这里重点说两个依赖。第一个是libfftw3-devFFTW 是 Gromacs 做傅里叶变换的核心库性能影响很大。Gromacs 官方推荐让 Gromacs 自己编译 FFTW 而不是用系统的因为能针对 CPU 指令集做优化。第二个是libopenmpi-devOpenMPI 是并行计算框架分子模拟几乎离不开它。装完依赖后验证一下cmake --version gcc --version mpirun --version三个命令都能输出版本信息就说明环境没问题。5.2 源码编译 Gromacs 的 CMake 配置去官网下载 Gromacs 源码包当前稳定版本是 2024.x 系列。解压后进入源码目录新建一个 build 目录在 build 目录下执行 cmake 配置。tar -xzf gromacs-2024.2.tar.gz cd gromacs-2024.2 mkdir build cd build cmake .. -DGMX_BUILD_OWN_FFTWON \ -DGMX_MPION \ -DGMX_OPENMPON \ -DGMX_GPUCUDA \ -DGMX_SIMDAVX2_256 \ -DCMAKE_INSTALL_PREFIX/usr/local/gromacs这几个参数逐个解释。GMX_BUILD_OWN_FFTWON是让 Gromacs 自己编译 FFTW官方推荐的做法性能最好。GMX_MPION和GMX_OPENMPON是开启并行支持前者支持跨节点 MPI 并行后者支持单节点的 OpenMP 线程并行两者可以同时开。GMX_GPUCUDA是开启 GPU 加速。如果你的显卡不是 NVIDIA 的或者暂时没装 CUDA 环境可以先-DGMX_GPUOFF跳过后面需要再加。GMX_SIMD这个参数非常重要它告诉编译器用哪一级 SIMD 指令集优化内层计算。我不知道你的处理器具体型号但可以参考这张表CPU 平台GMX_SIMD 推荐值第 3 代及以前 Intel CoreAVX_256Intel Core 4~7 代AVX2_256第 8 代及以后 Intel Core 的 AVX-512AVX512_512AMD Zen 1AVX2_256AMD Zen 2/Zen 3AVX2_256未知 CPU保险起见AVX2_256判断 CPU 是否支持 AVX-512在 Ubuntu 里执行lscpu | grep avx如果你不确定自己 CPU 支持哪一级直接选 AVX2_256这是目前兼容性和性能最均衡的选择。为了保险也可以在 cmake 时不指定-DGMX_SIMDGromacs 会自动检测最高可用的指令集。配置完成后编译安装make -j8 sudo make install-j8后面的数字根据你 CPU 核数调整8 核机器就用-j816 核可以-j16编译时间能大幅缩短。5.3 在 WSL2 中配置 CUDA 与 GPU 加速前文提到我已经安装了 WSL2那 GPU 加速这块我也在这里一并说了。WSL2 里用 CUDA 有专门的官方支持步骤比原生 Linux 还简单。首先确保 Windows 上已经安装了最新的 NVIDIA 驱动。注意WSL2 里不需要再装 Linux 版本的驱动它直接复用 Windows 的驱动。这一点是 WSL2 的优势很多人不知道还特意在 Ubuntu 里去装 NVIDIA 驱动结果黑屏、冲突各种问题。然后在 WSL2 的 Ubuntu 22.04 里安装 CUDA Toolkit。去 NVIDIA 官网下载 WSL-Ubuntu 版本的 runfile 安装包或者直接用 apt 源安装。我用的是 runfile 方式因为可以指定安装路径不影响系统自身的库文件。wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_rhel.run sudo sh cuda_12.3.0_rhel.run --toolkit --samples --silent --override安装完成后在.bashrc里添加环境变量export PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH重开终端执行nvidia-smi如果你能看到显卡信息说明 CUDA 环境配好了。然后编译 Gromacs 时把 CMake 配置里的-DGMX_GPUCUDA打开Gromacs 就能自动调用 GPU 进行非键力计算和 PME 静电计算。用 GPU 跑 Gromacs 时有个小技巧命令行加上-nb gpu -pme gpu -bonded gpu -update gpu让非键、PME、成键相互作用和更新器全部跑在 GPU 上。如果你的 GPU 显存足够CPU 只用来跑计算排队和输入输出整体速度能提升好几倍。5.4 性能验证与 Gromacs 常用命令速查环境装好后不要急着跑自己的体系先用 Gromacs 自带的基准测试验证一下性能是否正常。gmx mdrun -benchmark -nb cpu如果 GPU 加速已启用gmx mdrun -benchmark -nb gpu -pme gpu基准测试会输出一串性能数据重点关注 ns/day 这个指标表示模拟体系每天能跑多少纳秒。数值越高性能越好。一般的标准是一个 10 万原子左右的小蛋白体系单 CPU 能跑到 20-50 ns/day加 GPU 能到 100 ns/day 以上。日常用 Gromacs 的几个核心命令我也整理一下新手照着用就行# 生成模拟盒子和溶剂 gmx editconf -f protein.gro -o box.gro -d 1.0 -bt cubic gmx solvate -cp box.gro -cs spc216.gro -o solv.gro -p topol.top # 添加离子 gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr gmx genion -s ions.tpr -o solv_ion.gro -p topol.top -pname NA -nname CL -neutral # 能量最小化 gmx grompp -f em.mdp -c solv_ion.gro -p topol.top -o em.tpr gmx mdrun -deffnm em # 正式模拟 gmx grompp -f md.mdp -c em.gro -t em.trr -p topol.top -o md.tpr gmx mdrun -deffnm md -nb gpu -pme gpu -bonded gpugmx grompp是预处理命令把输入结构、拓扑文件和参数文件合成一个.tpr二进制文件。gmx mdrun是真正跑模拟的命令-deffnm参数指定输出文件前缀-nb、-pme、-bonded控制不同计算部分在 CPU 还是 GPU 上运行。6. 高频问题排查与避坑实录6.1 WSL2 无法启动与虚拟化未启用WSL2 最常见的问题就是开不了机报错信息通常写着WSL2 无法启动因为此计算机上未启用虚拟化。请确保计算机固件设置中‘虚拟机平’已启用。这个报错原因很明确CPU 虚拟化没开或者 Hyper-V 组件没安装完整。排查思路分三步第一步确认 BIOS 里虚拟化是否开启。重启进 BIOS找 Intel Virtualization Technology 或 AMD SVM设为 Enabled。这里有个细节某些品牌的笔记本即使 CPU 支持虚拟化BIOS 里默认也给你关着比如部分联想、华硕机型。开机时按 F2 进 BIOS 后在 Advanced 或 Configuration 菜单里找不同品牌叫法不一样多翻几个菜单。第二步确认 Windows 功能里是否启用了 虚拟机平台 和 Windows 虚拟机监控程序。在控制面板 → 程序 → 启用或关闭 Windows 功能里勾选这两项然后重启。第三步以管理员身份打开 PowerShell执行bcdedit /set hypervisorlaunchtype auto这个命令是确保 Windows 的 Hyper-V 虚拟机监控程序开机自动启动。有些优化软件会把它改成 off导致 WSL2 无法正常启动。6.2 Linux 解压文件乱码问题用 WSL2 或双系统解压压缩包时经常遇到中文文件名变成乱码。这其实是编码问题Windows 上创建的 zip 文件用的是 GBK 编码Linux 默认用 UTF-8两边不对付。解决办法是用 unzip 命令指定编码方式unzip -O CP936 文件名.zip如果你用 7z 解压可以这样7z x 文件名.zip然后配合convmv批量转换文件名编码sudo apt install convmv convmv -f GBK -t UTF-8 -r --notest 目录名/这个技巧在从 Windows 共享文件或者别人发你的压缩包时特别实用。别问为什么 Windows 不直接用 UTF-8问就是历史包袱。6.3 磁盘空间不足与 WSL2 虚拟磁盘迁移WSL2 有个坑它的虚拟磁盘文件默认放在 C 盘而且不会自动缩水。你用了一段时间明明觉得没装多少东西C 盘空间却越来越小。这是因为 WSL2 的 ext4 虚拟磁盘只增不减删了文件它也不会自动把空间还给 Windows。查看虚拟磁盘大小wsl --shutdown然后找到ext4.vhdx文件位置在C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04*\LocalState\。如果这个文件已经很大了可以用 diskpart 压缩它。但我更推荐直接迁移到其他盘。迁移方法也不复杂在 PowerShell 里执行wsl --export Ubuntu-22.04 D:\wsl_backup\ubuntu.tar wsl --unregister Ubuntu-22.04 wsl --import Ubuntu-22.04 D:\wsl\Ubuntu-22.04 D:\wsl_backup\ubuntu.tar--export是把现有系统导出为 tar 备份--unregister删除原系统--import重新导入到新位置。注意--unregister会清空 WSL2 里所有数据操作前一定确认你的模拟结果已经备份到 Windows 侧了。6.4 其他高频问题速查表问题原因解决方式apt update报错缺少公钥GPG 公钥未导入sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 缺失的KEYVMware 虚拟机窗口很小未安装 open-vm-toolssudo apt install open-vm-tools-desktopVMware 修复时提示需要管理员权限不足右键 VMware 图标以管理员身份运行Windows 和 Ubuntu 时间差了 8 小时硬件时钟解释不同sudo timedatectl set-local-rtc 1Gromacs 编译报错找不到 FFTW依赖缺失确认libfftw3-dev已安装或打开GMX_BUILD_OWN_FFTWgmx mdrun提示无法启动 MPIOpenMPI 配置问题用mpirun前先执行source /usr/local/gromacs/bin/GMXRC双系统重启后直接进 WindowsGRUB 被覆盖或未安装用 Boot-Repair 工具修复引导WSL2 无法访问外网DNS 或网络配置异常编辑/etc/resolv.conf添加nameserver 223.5.5.5每个问题都是我在实操中真实遇到的不是网上抄来的。尤其是双系统 GRUB 丢失那个我第一次装的时候Windows 更新把 Ubuntu 的启动项干掉了当时也慌得很后来用 Boot-Repair 工具几分钟就恢复了。这种问题不致命但很恼人遇到的时候别慌按表排查就行。7. 写在实操之后的一些个人心得三个方案我都实际用了一年多最后的体会是这样的如果你只是学 Linux 和跑小体系WSL2 是当前体验最好的兼顾了 Windows 的日常办公和 Linux 的模拟环境。如果模拟规模到了几百万原子长期跑双系统是更稳妥的选择尤其是 GPU 加速这块双系统下的 CUDA 性能比 WSL2 更稳定省心。最后再分享一个我踩过多次的坑不管用哪种方案模拟数据的备份一定要养成习惯。虚拟机和 WSL2 里虽然用起来方便但它们的底层文件都是稀疏文件一旦 Windows 系统出问题恢复的难度比普通文件大得多。我的习惯是每次大模拟结束后把*.xtc轨迹文件、*.tpr输入文件和日志文件复制到 Windows 侧的专门目录再同步一份到移动硬盘。这种习惯不好养成但真的能救命。