
1. 开工之前的思路先想清楚再动手标题已经说得很明白了这是一篇“VMware虚拟机里装Linux用于C开发”的保姆级教程。我看过太多新手在第一步就卡住镜像不知道下哪个版本虚拟机配置乱填系统装完发现没网折腾一晚上还在开机界面打转。这篇文章的目标很简单——让你拿一台Windows电脑在一个小时内把CentOS或者Ubuntu装进虚拟机里并且验证g能跑起来。我先说说这个方案为什么值得选。很多朋友纠结既然要写C为什么不直接在Windows上用Visual Studio答案是看场景——如果你的目标是后端服务、嵌入式交叉编译、Linux系统编程或者将来要接触CMake、Makefile这套工具链那Linux几乎是绕不开的。而虚拟机方案比双系统稳妥得多不会改坏Windows引导比WSL更接近真实服务器环境完整内核、能跑systemd、可以自定义网络性价比非常高。这个系列我打算写成一套完整的流程下来第一篇是下载安装Linux系统把环境先搭出来后续会覆盖g、gdb、CMake、Vim/VS Code远程开发、编译调试、Makefile实战这些内容。所以这篇是地基地基打不牢后面全白搭。先交代一下适用范围Windows 10/11用户机器内存建议8GB以上16GB最好CPU只要是近五年内的主流型号都没问题。如果你手头是老机器、4GB内存我建议装CentOS的Minimal版本或用Ubuntu Server别碰带图形桌面的版本否则会卡到怀疑人生。2. 选型问题CentOS还是Ubuntu镜像怎么挑2.1 不要把CentOS和Ubuntu当成二选一的期末考题在动手下载之前先说清楚一个很多新手容易搞混的问题CentOS和Ubuntu到底选哪个这不是考试没有标准答案只有场景适配。简单粗暴地理解Ubuntu的定位是“开箱即用的现代桌面Linux”。它的软件仓库非常全装什么都有文档多到爆炸遇到问题基本一搜就有答案。如果你是从零开始、第一次接触Linux或者只是想在虚拟机里练C、玩点开源项目Ubuntu的体验是碾压级的顺滑。CentOS走的是“生产环境稳如老狗”的路线。它和Red Hat Enterprise LinuxRHEL同源代表了企业服务器的主流选择。如果你的目标是“模拟公司里的服务器环境”、准备考Linux相关认证、或者以后要做运维方向那么在CentOS上折腾一遍是很有价值的。这里我多提醒一句CentOS Linux 8已经在2021年底停止维护了现在官方主推的是CentOS Stream滚动更新版和Rocky Linux社区接手版。网上搜“CentOS 8下载”会搜出一堆老帮菜教程镜像链接过期都不奇怪。既然是学习用我更推荐两个方向想体验服务器生态就装Rocky Linux 9它几乎和老的CentOS用法一致想省心就用Ubuntu 24.04 LTS这是长期支持版本五年内不会过气。2.2 内存和磁盘规划别盲目拍脑袋虚拟机有个核心原则分配给虚拟机的资源是“借”来的不可能凭空变出来。所以规划要跟宿主机的实际硬件走。举个例子你的Windows本机装了16GB内存那我建议虚拟机分配4GB如果只有8GB内存那就给2GB到3GB再多Windows就直接卡成PPT。CPU方面给双核以上即可C编译是吃CPU的活但虚拟机里分配太多核心并不会线性加速因为宿主机的物理核就那么多分4核进去编译时还是大家一起抢。硬盘是另一个大坑。C开发环境看着不起眼装完系统、加上编译工具链、再放几个项目轻轻松松就奔20GB去了。我给的建议是虚拟机磁盘容量直接设置成50GB但不要勾选“立即分配所有磁盘空间”而是用默认的“拆分成多个文件”。这样虚拟磁盘是动态增长的你现在实际占用只有几个GB后面需要多少就长多少非常灵活。3. VMware Workstation的下载安装版本选择要拎清楚3.1 用哪个版本一句话给你说明白VMware Workstation目前市面上能见到两个主流版本免费的Workstation Player和付费的Workstation Pro。直接下结论装Workstation Pro别装Player。为什么因为Player的功能限制太多了比如快照功能不可用。快照是什么通俗讲就是“存档”。你在虚拟机里乱配了一通网络环境结果把自己搞崩了快照一键回到之前正常的状态这玩意儿在折腾Linux的过程里简直救命。而且从2024年5月开始VMware Workstation Pro已经对个人用户免费了官网直接下载就能用不需要找破解资源我强烈建议别去乱七八糟的网站下“绿色版”虚拟机软件被植入挖矿木马的新闻不是一两次了。去官网vmware.com找到Workstation Pro的下载页认准“Free for Personal Use”字样下载Windows版本即可。安装过程基本一路Next但有一步要注意装到“Enhanced Keyboard Driver”时建议勾选这个驱动能让你在虚拟机里使用更多键盘快捷键对Vim用户特别友好因为Vim重度依赖Esc和Ctrl组合键。3.2 安装后的两个初始设置装完之后不要着急新建虚拟机先做两个优化第一打开“编辑 - 偏好设置 - 内存”如果你机器内存吃紧可以适当调低VMware的启动内存占用。我习惯把“预留所有虚拟机内存”的选项关掉让VMware按需分配。第二打开“编辑 - 偏好设置 - 更新”取消自动更新勾选。不是说不让你更新而是VMware的更新提示总是弹在编译写到一半的时候特别烦人。手动更新就完全够用了。4. 下载Linux镜像文件别踩源站点的坑4.1 去对地方下载速度和安全性都靠谱镜像文件ISO是装机的基础很多新手喜欢直接去官网下载结果要么慢到怀疑人生要么需要注册账号。这里我推荐直接用国内的开源镜像站速度和稳定性都吊打官网。推荐两个常用站点阿里云镜像站mirrors.aliyun.com界面清晰带宽给力。清华TUNA镜像站mirrors.tuna.tsinghua.edu.cn在高校圈口碑很好更新及时。以Ubuntu为例打开清华镜像站进入ubuntu-releases/24.04/目录下载ubuntu-24.04.x-desktop-amd64.iso文件。如果是Server版本就下ubuntu-24.04.x-live-server-amd64.iso。CentOS系的话Rocky Linux进入rockylinux/目录选择对应版本的ISO即可。文件名里的amd64是什么意思就是64位x86架构的统一叫法别担心你是Intel CPU不能用只要不是苹果M系列芯片的Mac都选amd64架构的镜像。4.2 ISO文件下载后一定要做的校验这一步很多人会忽略但真的重要。官网或镜像站页面上通常都会附一串SHA256校验值这是ISO文件的“指纹”。下载完成后需要对你本地文件算一次SHA256和页面上的值比对一致才说明文件完整没被篡改。Windows 10/11自带校验工具不需要额外装软件。在文件所在目录打开PowerShell执行Get-FileHash .\ubuntu-24.04-desktop-amd64.iso -Algorithm SHA256把输出的字符串和镜像站页面上的对比完全一致就放心用。我遇到过镜像文件下载到一半被浏览器拦截的情况文件字节数不对导致安装过程中途报错白折腾半小时。校验一下几秒钟的事能省一晚上时间。5. 创建虚拟机核心参数就那么几项5.1 新建向导里的关键选择打开VMware Workstation Pro点击“创建新的虚拟机”。这里有两个路线典型和自定义。新手直接选典型但到“安装来源”这一步要注意不要选“安装程序光盘映像文件”并直接关联ISO而是选择“稍后安装操作系统”。很多人奇怪明明已经有ISO了为什么不让它直接装因为VMware如果识别到ISO会启用一个叫“Easy Install”的自动安装机制它会帮你自动化装系统但往往装出来的分区布局和自定义选项和你预期的不一样后面踩坑反而更多。所以我都是手动指定ISO系统的每个关键步骤都自己把控。后续向导问你“客户机操作系统”选择Linux版本下拉框里选对应的发行版与版本比如“Ubuntu 64位”或“CentOS 7 64位”。如果列表里没有你下载的版本选一个相近的即可不影响使用。5.2 内存、CPU、磁盘、网络的具体建议创建完成后在虚拟机设置里把参数调整成下面这样配置项推荐值说明内存4GB宿主机8GB以下则给2~3GBC编译器g比较吃内存但虚拟机内存过大反而挤压宿主机处理器2核每个核1线程够用且稳定避免主机构建卡顿硬盘50GB拆分成多个文件动态分配实际占用随使用增长网络NAT模式无需配置即可上网适合新手显示勾选“加速3D图形”如果装桌面版界面会更流畅网络这块多说一句VMware有三种网络模式桥接Bridge、NAT、仅主机Host-Only。新手一律选NAT模式它的原理是虚拟机通过宿主机共享IP上网。好处是只要宿主机能上网虚拟机就能上网不需要任何手动配置而且虚拟机在外部网络里是“隐藏”的不会和局域网里其他设备产生冲突。桥接模式则把虚拟机当作局域网里的一台独立设备适合你要从别的电脑访问虚拟机里服务的时候用但配置更复杂现阶段不要碰。5.3 从ISO启动前的最后一个准备打开虚拟机设置在“CD/DVD (SATA)”选项里勾选“启动时连接”然后在右侧“使用ISO映像文件”里浏览选中你下载的ISO文件。确认无误后启动虚拟机。启动之后虚拟机窗口会弹出来屏幕显示品牌的Logo或者黑屏这个时候用鼠标点击虚拟机窗口内部然后狂按F2有的机器需要按Esc或F12进入固件设置BIOS/UEFI把启动顺序调整为光驱CD-ROM优先。不同版本的VMware界面略有差异但逻辑一致确保第一启动项是CD-ROM这样才能从ISO引导安装。一个小细节虚拟机的BIOS是软件模拟的按F2的时机不对进不去很正常直接重启虚拟机重新按多试几次就找到了。6. 正式安装系统CentOS与Ubuntu的完整流程6.1 CentOS系Rocky Linux安装要点从ISO启动后会看到开机菜单。第一项是“Install Rocky Linux 9”选它回车。接下来按顺序处理几个关键配置安装摘要页面是核心这里有几项必须手动确认。根密码设置root用户的密码。建议用至少8位、包含大小写字母和数字的组合。这是唯一的超级管理员账户忘了就麻烦了。创建用户建议创建一个普通用户比如叫dev并勾选“将此用户设为管理员”。日常操作用普通用户只有装软件这种特权操作才用sudo这是Linux的基本安全习惯。安装目的地磁盘分区点进去选择“自定义分区”还是让它自动配置对于学习来说直接选“自动配置分区”即可。等你学会了LVM、逻辑卷这些概念再玩手工分区初期就别给自己找不必要的麻烦。软件选择这一步决定了系统自带哪些软件。C开发的话选“带开发工具的”类似选项比如“Workstation”或者“Server with GUI”里勾上开发工具。如果你不想装图形界面就选“Minimal Install”后面纯命令行操作安装体积小速度快但新手不推荐看不到桌面容易慌。安装过程大概十分钟到二十分钟取决于虚拟机分配的资源和你本机硬盘速度。装完会提示重启重启时记得把ISO连接断开虚拟机设置里把“启动时连接”取消勾选或者直接编辑虚拟机设置把CD/DVD设置为“使用物理驱动器”否则又会从ISO启动进入安装界面。6.2 Ubuntu 24.04安装要点Ubuntu的安装器是SubiquityServer版或UbiquityDesktop版图形化程度更高按部就班点下来就行。比较关键的几个环节语言与键盘语言建议直接选EnglishUS键盘布局选English (US)。为什么不用中文因为Linux服务器的世界语就是英文你以后看日志、查报错、写脚本全是英文早期就养成英文界面操作习惯后面遇到问题不至于两眼一抹黑。这个建议对CentOS同样适用。安装类型Ubuntu也有“Erase disk and install Ubuntu”这样的自动分区选项。在虚拟机里就一块虚拟磁盘放心选“Use entire disk”。它会自动创建好EFI分区、根分区、Swap分区省心。创建用户Ubuntu安装器会让你设置一个用户名和密码这个账户默认有sudo权限。和CentOS不一样的是Ubuntu默认直接禁用了root登录日常操作全走sudo这是更安全的设计思路。软件源更新装完进度条走完、系统重启进入桌面或命令行之后第一件事就是更新软件源。sudo apt update sudo apt upgrade -yapt update是更新软件包索引apt upgrade是真正升级系统包。长时间不升级的话后面装软件容易遇到依赖版本冲突的报错。6.3 安装过程中最常见的两个卡点第一个卡在“探测硬件”不动。这通常是ISO文件损坏或虚拟机的兼容性版本太老导致的。如果是ISO问题重新下载并校验如果是兼容性问题在虚拟机设置里把“虚拟机版本”调高比如Workstation 17.x对应硬件兼容性版本19。第二个分辨率极低界面粗糙。刚装完没有显卡驱动桌面分辨率只能默认1024x768或更低是正常的别急着装驱动。对C开发来说这完全不影响工作。如果你确实看着难受可以装一个open-vm-tools增强工具在终端执行sudo apt install open-vm-tools open-vm-tools-desktop # Ubuntu sudo dnf install open-vm-tools # Rocky/CentOS装完后VMware的“适应客户机窗口”就能生效分辨率会自动跟着窗口走复制粘贴也能通了这个工具属于必装项之一。7. 验证环境用一条最基本的C程序给系统“通电”7.1 检查网络与基础工具链系统安装完成、重启进入系统后第一步是确认网络通。如果你是纯命令行界面执行ping -c 4 mirrors.aliyun.com能收到回包就说明网络正常。没网的话99%是VMware的NAT服务被Windows关了。在Windows服务管理器WinR输入services.msc里找到“VMware NAT Service”和“VMware DHCP Service”确保它们处于“正在运行”然后虚拟机里重启网络服务sudo systemctl restart NetworkManager # Rocky/CentOS sudo netplan apply # Ubuntu 24.04重启网络7.2 安装编译工具链并测试Ubuntu和Rocky的包管理器不同但结果一致。Ubuntu使用aptRocky使用dnf。# Ubuntu/Debian系 sudo apt install build-essential gdb cmake # Rocky/CentOS系 sudo dnf install gcc gcc-c gdb cmake makebuild-essential这个包很贴心它会把gcc、g、make这些编译C必需的工具一起装好。gdb是调试器cmake是项目管理工具。这三个是后面所有实战内容的顶梁柱现在装好一劳永逸。装完后写一个测试程序验证整条编译链路是否通畅。用Vim或者nano新建文件vim ~/hello.cpp写入#include iostream int main() { std::cout Hello, Linux C! std::endl; return 0; }保存退出后编译运行g -o hello hello.cpp ./hello看到Hello, Linux C!输出说明从虚拟机安装到编译工具链全部打通了。从零到这一步正常情况下在40分钟左右。7.3 快照存档这个习惯值得一开始就养成环境刚配好、一切正常这个时间点非常建议做一次快照。VMware的菜单栏选择“虚拟机 - 快照 - 拍摄快照”给快照起个名字叫“Initial_Setup_Clean”描述里写一句话刚装好系统开发工具未安装其他软件。这个习惯有多值钱后面的环境如果被你折腾得到处乱报错一条回滚命令就能把这个干净状态拉回来比重新装系统快一百倍。我见过太多人死磕系统两小时最后才发现是之前的某条命令把依赖搞乱了。有快照在手止损能力完全不同。8. 帮你在坑底少待几天经典问题与排查经验8.1 编译时报错“g: command not found”原因很简单没装编译工具链。逐条执行安装命令即可。Ubuntu系统的用户如果连apt都报错先检查/etc/apt/sources.list里的源是否配置正确建议换成阿里云或清华源。这个话题细节较多我后面会专门写一篇换源教程这里先给一个临时方案sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update8.2 装完系统打开虚拟机Windows直接蓝屏这是VMware与Windows的Hyper-V不共存导致的经典问题。Windows的虚拟化安全和VMware默认使用的是两种虚拟化机制同时开启会冲突。处理方式有两种一是关闭Windows功能里的“虚拟机平台”和“Hyper-V”控制面板 - 程序 - 启用或关闭Windows功能找到Hyper-V、虚拟机平台、Windows虚拟机监控程序平台全部取消勾选重启。二是保留Hyper-V的基础上安装VMware 15.5之后的版本新版能利用Windows Hypervisor Platform做兼容但性能会打折扣。我的建议是既然你主打VMware就把Windows自带的虚拟化功能关干净简单粗暴。8.3 虚拟机里能打开窗口但鼠标卡顿输入不同步装好open-vm-tools后一般会缓解。如果还卡试试在VMware的“编辑 - 偏好设置 - 输入”里把“鼠标抓取”相关的选项调成“自动”。另外不要同时开着Windows主机的远程桌面和VMware这两个会在输入设备上打架。8.4 磁盘空间虚标明明设置50GB却提示磁盘已满这通常是因为你勾选了“立即分配所有磁盘空间”或者快照太多。前者好理解后者是VMware的运行机制每个快照都会保存一份增量数据特别吃磁盘。检查一下快照管理器里有没有堆积大量无用的快照该删就删。9. 最后补几句我自己的体会搭建虚拟机里的Linux C开发环境这件事说难不难说简单也有不少隐形的决策点。我自己当年第一次装的时候就因为在“自定义分区”里瞎折腾把系统搞崩溃了三次后来学会了自动分区加快照的组合拳整个人都轻松了。这个系列的第一篇到这里就收尾了你拿到手的是一个能联网、能编译运行C的基础Linux虚拟机。下一篇我准备讲在虚拟机里配置VS Code远程开发以及gdb调试的实战内容。我个人在实际操作中的体会是环境搭建这块一定不要图快每一步都知道自己在干什么、为什么这么干后面写代码的日子才能过得顺心。