三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

VMware 15与CentOS 7虚拟机搭建:从零构建稳定可控的本地实验环境

VMware 15与CentOS 7虚拟机搭建:从零构建稳定可控的本地实验环境

1. 项目缘起:为什么我们还在用VMware 15和CentOS?

如果你刚接触服务器运维、软件开发或者网络安全,搭建一个本地实验环境几乎是绕不开的第一步。市面上有VirtualBox、Hyper-V,还有各种云主机,但为什么我今天还要专门来聊“VMware 15版虚拟机安装和CentOS镜像创建虚拟机”这个看起来有点“复古”的组合?原因很简单:稳定、可控、资源占用相对友好,并且是大量企业遗留系统和教学环境的真实写照。

VMware Workstation 15 Pro发布于2018年,虽然它不是最新版本,但它的稳定性经过了时间的考验,对宿主机的硬件要求比新版更低,特别是在一些配置不是特别顶尖的开发机或学习用电脑上,它能流畅运行。而CentOS,尤其是CentOS 7,作为Red Hat Enterprise Linux(RHEL)的免费克隆版,在过去十年里是服务器领域绝对的中流砥柱,拥有最丰富的文档、教程和软件包支持。尽管CentOS 8已转向Stream滚动更新模式,CentOS 7也即将结束其生命周期,但仍有海量的生产环境、企业内部系统以及教材实验基于它。学会在这个经典组合上搭建环境,你获得的经验能无缝迁移到理解任何Linux虚拟化环境。

所以,这篇内容不是简单的安装点击教程。我会带你走一遍我从无数次的安装、配置、排错中总结出来的完整流程,重点不是“下一步”点哪里,而是每一个步骤背后的考量、可能遇到的坑以及如何做出更适合自己需求的决策。无论你是学生、初入职场的运维、还是需要隔离测试环境的开发者,这篇内容都能让你少走弯路,真正掌控你的第一个“虚拟数据中心”。

2. 战前准备:理清思路与获取“弹药”

在按下安装按钮之前,清晰的规划和正确的资源准备能避免一半以上的问题。很多人卡在安装过程中,往往是因为第一步就没走对。

2.1 宿主环境检查与VMware 15选型考量

首先,你需要一台Windows或Linux宿主机。VMware 15对系统的要求并不苛刻,但以下几个点必须确认:

  1. CPU虚拟化支持:这是硬性条件。无论是Intel的VT-x还是AMD的AMD-V,都必须在BIOS/UEFI设置中启用。你可以在任务管理器的“性能”标签页查看“虚拟化”是否已启用。如果未启用,需要重启电脑进入BIOS进行设置(通常在Advanced或Security选项卡下)。
  2. 内存与存储规划:这是决定虚拟机性能的关键。假设你的宿主机有16GB内存,我建议分配给CentOS虚拟机至少4GB(4096 MB)。为什么是4GB?因为CentOS 7图形化安装界面及后续运行常用服务(如Web、数据库)需要一定的内存缓冲,2GB可能会让操作变得卡顿,尤其是在安装GNOME桌面后。对于纯粹的命令行服务器,2GB可以运行,但4GB是保证流畅体验的舒适区。磁盘空间建议预留40GB以上,并选择“将虚拟磁盘拆分成多个文件”,这样便于迁移和备份。
  3. 安装包来源:务必从VMware官网或可信渠道获取VMware Workstation 15 Pro的安装程序。安装过程本身是傻瓜式的,但请注意,安装完成后需要许可证密钥。网上可以找到一些可用的密钥,但请注意使用风险。对于长期学习使用,建议支持正版。

注意:如果你的宿主机是Windows 10/11,并且已经内置了Hyper-V,必须彻底禁用Hyper-V,否则VMware将无法启动虚拟机。方法是以管理员身份运行命令提示符,输入bcdedit /set hypervisorlaunchtype off并重启电脑。

2.2 CentOS镜像选择:版本、架构与下载验证

这是最容易出错的一步。打开CentOS官网,你会发现很多版本。

  1. 版本选择:对于学习和大多数传统应用,我强烈推荐CentOS 7.9(2009)。它是CentOS 7的最终版本,拥有最完整的生命周期和社区支持。尽量避免使用CentOS 8 Stream,除非你明确需要体验更接近RHEL前沿的特性。
  2. 镜像类型:你会看到DVD ISOMinimal ISOEverything ISO等。
    • Minimal ISO(最小化安装镜像):这是我最推荐的选择。它只包含最基本的系统,没有图形界面,体积小(约1GB),安装速度快。这强迫你从命令行开始学习,真正理解系统服务和管理,并且可以根据需要精确安装软件包,保持系统纯净。我们完全可以在安装后通过命令行安装图形界面。
    • DVD ISO(完整安装镜像):包含大量的软件包和图形化安装环境,体积大(约4.4GB)。适合需要离线安装或在安装时就需要图形界面的场景。
    • Everything ISO:包含所有软件包,体积巨大,一般用不到。
  3. 下载与验证:一定要从官方或可靠的镜像站(如阿里云、清华大学的开源镜像站)下载。下载后,务必校验ISO文件的SHA256或MD5校验和,与官网公布的值比对,确保文件在下载过程中没有损坏。一个损坏的镜像会导致安装过程中出现各种诡异的错误。

3. 核心实战:一步步创建并安装CentOS虚拟机

现在,我们进入核心操作环节。我会假设你选择了CentOS-7.9.2009-x86_64-Minimal.iso

3.1 创建虚拟机:配置中的门道

打开VMware Workstation 15,点击“创建新的虚拟机”。

  1. 典型与自定义:选择“自定义(高级)”。典型配置虽然快,但隐藏了很多重要选项,我们无法进行精细控制。
  2. 硬件兼容性:选择“Workstation 15.x”。保持与软件版本一致,避免兼容性问题。
  3. 安装来源:选择“安装程序光盘映像文件(iso)(M)”,然后浏览到你下载的Minimal ISO文件。不要选择“稍后安装操作系统”。
  4. 客户机操作系统:选择“Linux”,版本选择“CentOS 7 64位”。VMware会根据这个选择优化虚拟硬件配置。
  5. 命名与位置:给你的虚拟机起个名字,比如CentOS7-Dev。位置不要放在C盘默认路径!建议在D盘或其他空间充足的盘符下新建一个专门的文件夹(如D:\VMware\CentOS7-Dev)来存放所有虚拟机文件。这便于管理,也避免系统盘空间不足。
  6. 处理器与内存:处理器数量默认1,每个处理器的核心数可以设置为2(如果你的宿主机是4核或以上)。内存设置为4096 MB
  7. 网络类型:这是重点,也是后续能否上网的关键。
    • 桥接模式(Bridged):虚拟机会被分配一个与宿主机同网段的独立IP,就像一台真实的新电脑接入你的局域网。可以和其他局域网设备互访,也能直接访问外网。缺点是如果你的网络环境(如公司、校园网)有IP绑定或认证限制,虚拟机可能无法获取IP。
    • NAT模式(NAT):默认推荐。虚拟机通过宿主机的IP地址共享上网。虚拟机会处在一个VMware创建的私有子网内(如192.168.xxx.xxx),宿主机充当路由器。虚拟机可以访问外网,局域网内其他机器默认不能直接访问虚拟机,但宿主机可以。这是最通用、问题最少的模式,适合大多数开发测试场景。
    • 仅主机模式(Host-Only):虚拟机只能和宿主机通信,形成一个封闭的网络,不能访问外网。用于纯隔离测试。这里我们选择“使用网络地址转换(NAT)”
  8. I/O控制器与磁盘类型:保持默认的“LSI Logic”和“SCSI”即可,性能最好。
  9. 选择磁盘:选择“创建新虚拟磁盘”。
  10. 磁盘容量与拆分:大小设置为40GB。关键点来了:选择“将虚拟磁盘拆分成多个文件”。单个文件虽然理论上性能有一丁点优势,但一个40GB的单个文件在迁移、复制、备份时非常笨重,而且某些文件系统(如Windows的FAT32)不支持大于4GB的文件。拆分成多个2GB的小文件(默认)则灵活得多。
  11. 磁盘文件命名:保持默认,点击完成。

至此,虚拟机“空壳”创建完毕。但先别急着启动。

3.2 首次启动与CentOS安装详解

选中新建的虚拟机,点击“编辑虚拟机设置”,我们再做最后检查:

  • “硬件”选项卡下,确认内存、CPU、ISO镜像路径正确。
  • “选项”选项卡下,找到“高级”,确保“固件类型”为BIOS。对于CentOS 7,BIOS兼容性更好。UEFI在某些情况下可能会遇到引导问题。

现在,点击“开启此虚拟机”。你会看到CentOS的安装引导界面。

  1. 选择安装模式:使用键盘上下键选择“Install CentOS 7”,然后按回车。如果直接回车,它会开始一个60秒倒计时,然后自动开始安装。
  2. 语言选择:虽然建议服务器使用英文(English - United States)以保持环境一致、避免乱码,但初次安装可以选择“中文 - 简体中文”,界面更友好。这里我们选中文。
  3. 安装信息摘要:这是配置的核心页面。需要手动配置的项目会带有黄色警告标志。
    • 日期和时间:点击进入,可以在地图上选择“亚洲/上海”,并打开网络时间同步(NTP)。
    • 键盘:保持默认。
    • 语言支持:可以添加英文支持。
    • 安装源:因为我们使用了ISO,这里会自动检测到,无需更改。
    • 软件选择这是关键一步!Minimal ISO默认是“最小安装”,只有一个基本的命令行环境。如果你需要图形界面,在这里点击进入,在左侧选择“带GUI的服务器”,右侧会自动勾选“GNOME桌面”。同时,为了开发方便,我建议也勾选“开发工具”,它会安装GCC、Make等编译工具链。即使你现在不选桌面,以后也可以在命令行下通过yum groupinstall "GNOME Desktop"来安装,但不如现在直接装方便。这里我们先按最小安装来,保持系统纯净。
    • 安装目标位置:点击进入,进行磁盘分区。这是另一个容易卡住的地方。
      • 你会看到我们之前分配的40GB虚拟磁盘。直接点击“我要配置分区”,然后点击完成,进入手动分区界面。
      • 对于学习环境,一个经典且简单的分区方案是:
        • /boot: 1GB,标准分区, ext4文件系统。用于存放系统引导文件。
        • swap: 4GB,标准分区,文件系统类型为swap。交换分区,一般建议为物理内存的1-2倍,我们内存4GB,给4GB swap足够。
        • /: 剩余所有空间(约35GB),标准分区, ext4或xfs文件系统。根分区,存放所有其他数据。
      • 点击“+”号依次创建上述分区,然后点击完成。系统会提示“应用更改”,点击“接受更改”。
    • KDUMP:这是一个内核崩溃转储机制,用于调试。对于学习机,可以取消勾选以节省一点内存。
    • 网络和主机名:点击进入,在顶部打开以太网连接开关(会从灰色变为蓝色)。主机名可以修改,比如centos7-dev,然后点击应用。你会发现下面自动获取到了IP地址(来自VMware NAT网络的DHCP,通常是192.168.xxx.xxx网段)。
  4. 开始安装:所有黄色警告都解决后,点击右下角的“开始安装”。
  5. 设置ROOT密码和创建用户
    • 在安装过程中,你需要设置root用户的密码。root是超级管理员,密码必须设置并且最好复杂一些。如果密码过于简单,需要点击两次完成才能确认。
    • 同时,建议创建一个普通用户。点击“用户创建”,输入用户名(如devuser)、全名,并设置密码。务必勾选“将此用户作为管理员”,这会将用户加入wheel组,之后可以通过sudo命令临时获得root权限进行管理,这比直接使用root账户更安全。
  6. 安装完成:安装进程走完后,点击“重启”。系统重启后,你会看到命令行登录界面。

4. 安装后必做配置:让虚拟机“好用”起来

现在,你已经有了一个最基础的CentOS系统。但一个“裸”系统用起来很不方便,我们需要进行一系列关键配置。

4.1 首次登录与网络验证

使用你创建的普通用户(如devuser)和密码登录。登录后,首先验证网络:

ping -c 4 www.baidu.com

如果能看到回复,说明网络通畅。如果不行,首先检查虚拟机设置里的网络适配器是否连接,然后检查CentOS内部的网络服务:

sudo systemctl status network # 或者对于CentOS 7,也可能是 sudo systemctl status NetworkManager

确保服务是活动的(active)。NAT模式下,IP应该是自动获取的,可以用ip addrifconfig(需要安装net-tools)查看。

4.2 安装VMware Tools(增强功能包)

这是至关重要的一步。VMware Tools提供了一系列驱动和工具,能显著提升虚拟机的体验:

  • 图形性能:改善桌面环境(如果安装了)的显示和鼠标移动。
  • 共享剪贴板:在宿主机和虚拟机之间复制粘贴文本。
  • 文件共享:在宿主机和虚拟机之间拖放文件或设置共享文件夹。
  • 时间同步:保持虚拟机时间与宿主机同步。

在CentOS Minimal中安装VMware Tools需要命令行操作:

  1. 在VMware菜单栏,点击“虚拟机” -> “安装VMware Tools”。这会在虚拟机中挂载一个虚拟光盘。
  2. 在CentOS命令行中,挂载这个光盘:
    sudo mkdir /mnt/cdrom sudo mount /dev/cdrom /mnt/cdrom
  3. 复制安装包到临时目录并解压:
    cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp/ cd /tmp tar -xzf VMwareTools-*.tar.gz
  4. 运行安装脚本。这需要Perl和编译工具,Minimal系统可能没有,所以先安装依赖:
    sudo yum install -y perl gcc make kernel-headers kernel-devel
    注意kernel-devel的版本必须与当前运行的内核版本完全一致。可以用uname -r查看内核版本,然后确保yum install安装的kernel-devel版本与之匹配。有时需要重启进入新内核。
  5. 安装依赖后,运行安装脚本:
    cd vmware-tools-distrib/ sudo ./vmware-install.pl
    安装过程中,对所有提示的问题直接按回车选择默认值即可。安装完成后,重启虚拟机。
  6. 重启后,验证共享剪贴板等功能是否生效。你也可以在虚拟机设置中配置“共享文件夹”,将宿主机的某个目录映射到虚拟机内(如/mnt/hgfs)。

4.3 系统更新与基础软件安装

保持系统更新是好习惯:

sudo yum update -y

安装一些常用工具,让命令行更好用:

sudo yum install -y wget curl net-tools vim-enhanced bash-completion
  • wget/curl:下载工具。
  • net-tools:包含ifconfignetstat等传统网络工具。
  • vim-enhanced:功能更强大的Vim编辑器。
  • bash-completion:提供命令自动补全功能。

4.4 (可选)安装图形化桌面环境

如果你后悔了,想要图形界面,现在可以安装:

sudo yum groupinstall -y "GNOME Desktop" # 安装完成后,设置默认启动目标为图形界面 sudo systemctl set-default graphical.target # 立即启动图形界面(如果当前在命令行) sudo systemctl isolate graphical.target

重启后,你就会看到图形登录界面。请注意,安装GNOME会占用约2GB的额外磁盘空间和更多内存。

5. 虚拟化环境深度调优与排错指南

一个能跑起来的虚拟机只是开始,一个跑得稳、用得顺的虚拟机才具有生产力。这部分分享一些进阶配置和常见问题的排查思路。

5.1 性能调优关键点

  1. CPU与内存热添加:在虚拟机设置中,勾选“处理器”和“内存”选项下的“虚拟化引擎”相关选项,如“虚拟化Intel VT-x/EPT或AMD-V/RVI”。这能提升性能。同时,可以启用“内存”的“允许交换虚拟机内存”,这会让VMware更灵活地管理宿主机内存。
  2. 磁盘模式与碎片整理:虚拟磁盘创建时选择的“SCSI”控制器性能优于IDE。在日常使用中,避免在虚拟机内进行大量的磁盘碎片整理(Windows宿主机对虚拟机磁盘文件进行碎片整理可能有效)。对于Linux虚拟机,定期清理日志和缓存比整理“磁盘”更有效。
  3. 快照管理:快照是VMware的神器,可以在系统关键状态(如安装完基础软件、配置好服务后)创建一个快照。但快照不是备份,它会创建增量磁盘文件,长期保留或创建多个快照会严重影响磁盘I/O性能并占用大量空间。最佳实践是:在稳定状态创建1-2个干净的快照,用于快速回滚。完成测试或重大变更后,如果确认状态稳定,应删除旧快照以合并磁盘文件。

5.2 网络连接故障排查全链路

虚拟机无法上网是最常见的问题。请按照以下链路逐步排查:

  1. 虚拟机层面:首先确认VMware中该虚拟机的网络适配器已连接(“设备状态”里“已连接”和“启动时连接”已勾选),并且模式是“NAT模式”。
  2. 宿主机服务:在Windows宿主机上,按Win + R,输入services.msc,检查以下VMware相关服务是否正在运行:
    • VMware NAT Service
    • VMware DHCP Service
    • 如果这些服务未运行,尝试以管理员身份启动它们。
  3. 虚拟机内部网络服务:登录CentOS,检查网络服务状态。
    sudo systemctl status NetworkManager
    如果未运行,则启动它:sudo systemctl start NetworkManager并设置开机自启:sudo systemctl enable NetworkManager
  4. 检查IP获取:运行ip addr,查看ens33(或类似名称)网卡是否获取到了IP地址(inet字段)。NAT模式下,IP通常是192.168.xxx.xxx。如果没有IP,尝试重启网络服务:
    sudo systemctl restart NetworkManager # 或者使用传统方法(如果NetworkManager未接管) sudo systemctl restart network
  5. 检查网关与DNS:运行cat /etc/resolv.conf,查看DNS服务器设置。VMware NAT通常会自动设置DNS。你也可以手动指定,如编辑/etc/sysconfig/network-scripts/ifcfg-ens33(文件名可能不同),确保BOOTPROTO=dhcp,并可以添加DNS1=8.8.8.8
  6. 测试连通性
    • 先ping网关(通常是192.168.xxx.1192.168.xxx.2):ping -c 4 192.168.xxx.1
    • 再ping外网IP(如8.8.8.8):ping -c 4 8.8.8.8
    • 最后ping域名:ping -c 4 www.baidu.com如果IP能通但域名不通,就是DNS问题;如果网关都不通,则是虚拟机网络配置或VMware NAT服务问题。

5.3 共享文件夹无法访问的解决思路

安装了VMware Tools后,设置了共享文件夹,但在虚拟机里找不到/mnt/hgfs目录或目录为空。

  1. 检查挂载点:首先确认/mnt/hgfs目录是否存在。如果不存在,创建它:sudo mkdir -p /mnt/hgfs
  2. 检查VMware HGFS驱动:运行lsmod | grep vmhgfs,查看驱动是否加载。如果没有输出,说明驱动未加载。可以尝试手动加载:sudo modprobe vmhgfs。如果报错,可能是VMware Tools安装不完整或内核版本不匹配,需要重新安装或更新内核后重装Tools。
  3. 手动挂载:可以尝试手动挂载:
    sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
    如果成功,可以将此命令添加到/etc/rc.local(需赋予执行权限)以实现开机自动挂载。
  4. 权限问题:确保当前用户对/mnt/hgfs目录有访问权限。可以尝试sudo chmod 755 /mnt/hgfs

6. 从虚拟机到学习/开发环境:下一步做什么?

至此,一个稳定、可用的CentOS 7虚拟机已经搭建完成。但这只是一个干净的“毛坯房”。如何把它变成你的开发服务器或学习平台?

  1. 配置SSH远程登录:默认情况下,Minimal安装可能没有开启SSH。安装并启动它:
    sudo yum install -y openssh-server sudo systemctl start sshd sudo systemctl enable sshd
    然后,你就可以使用PuTTY、Xshell或终端上的ssh命令,从宿主机或其他机器远程连接到这台虚拟机了(使用它的IP地址和用户凭证)。这比在VMware窗口里操作方便得多。
  2. 部署LAMP/LEMP环境:这是经典的Web开发栈。
    • LAMP:sudo yum install -y httpd mariadb-server mariadb php php-mysql
    • LEMP: 用Nginx替换Apache,sudo yum install -y nginx mariadb-server mariadb php-fpm php-mysql安装后,记得配置防火墙开放端口(80, 443, 3306等),并设置服务开机自启。
  3. 学习Linux系统管理:从这个纯净的系统开始,练习用户管理、文件权限、进程管理、服务管理(systemctl)、软件包管理(yum)、磁盘管理、日志查看等核心技能。
  4. 容器化实践:可以在这个虚拟机里安装Docker和Docker Compose,这样你就能在一个隔离的宿主机上运行各种容器应用,而不会污染你的物理机。

这个由VMware 15和CentOS 7构成的虚拟环境,就像一块标准的实验田。它可能不是最前沿的,但绝对是最经典、问题最少、学习资源最丰富的起点。掌握了在这里搭建、配置、排错的全过程,你面对任何其他虚拟化平台或Linux发行版时,都会拥有扎实的底层理解和从容的解决思路。记住,工具是死的,思路是活的。理解了每一步背后的“为什么”,你就能举一反三,真正驾驭你的计算环境。

← 返回列表