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

日记详情

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

Mac上使用VMware Fusion安装配置CentOS/Rocky Linux完整指南

Mac上使用VMware Fusion安装配置CentOS/Rocky Linux完整指南

1. 项目概述:为什么要在Mac上跑CentOS?

如果你是一名开发者、运维工程师,或者正在学习Linux系统,手头只有一台MacBook,但项目环境、测试服务器或者课程要求必须使用CentOS,那你大概率会面临一个选择:是去租一台云服务器,还是在本机搭建一个环境?租云服务器有延迟、有成本,而本机搭建最直接、最可控的方案,就是使用虚拟机。在Mac平台上,VMware Fusion是公认的、最稳定和功能最强大的虚拟化方案之一。它不像VirtualBox那样偶尔会有兼容性小毛病,也不像UTM那样对新手不够友好。通过VMware Fusion,你可以在macOS的舒适环境中,无缝地运行一个功能完整的CentOS系统,进行开发、测试、学习甚至搭建小型服务。

这个项目,就是带你从零开始,完成在Mac上使用VMware Fusion安装CentOS系统的全过程。这不仅仅是点击“下一步”的安装向导,我会深入每个步骤背后的逻辑:比如为什么推荐选择特定的CentOS版本和镜像、虚拟机硬件配置的参数如何设定才能兼顾性能与资源、安装过程中那些容易忽略却至关重要的选项(如软件选择、网络配置、磁盘分区),以及安装完成后必须进行的几项优化设置。无论你是想搭建一个本地的Kubernetes节点、一个数据库测试环境,还是一个纯粹的Linux学习沙盒,这个清晰、可复现的指南都能让你事半功倍。整个过程大约需要30-60分钟,准备好你的Mac和网络,我们开始。

2. 前期准备:镜像、软件与资源规划

在按下“新建虚拟机”按钮之前,充分的准备工作能避免你中途折返,浪费大量时间。这个阶段的核心是“选择”与“规划”。

2.1 获取CentOS系统镜像

CentOS项目本身已经发生了重大变化。传统的CentOS Linux 8已于2021年底停止维护,CentOS Linux 7也将在2024年6月结束其生命周期。对于新项目和学习,我强烈建议转向其继任者:Rocky LinuxAlmaLinux。它们由社区驱动,旨在100%兼容RHEL,是CentOS最直接的替代品。当然,如果你有特殊需求必须使用CentOS 7,也可以,但请知晓其支持周期。

镜像下载选择:

  1. 对于新项目(推荐):访问 Rocky Linux 官网或 AlmaLinux 官网,下载最新的Minimal ISO镜像。Minimal版本只包含最基础的系统,体积小(约1GB),干净无冗余,适合作为服务器基础系统,后续需要什么软件再通过包管理器安装。
  2. 对于必须使用CentOS 7:可以从官方存档站点如 vault.centos.org 下载。例如,CentOS-7-x86_64-Minimal-2009.iso是一个常见且稳定的版本。

注意:务必从官方网站或可信的镜像站下载ISO文件,并核对SHA256校验和,以确保镜像文件完整、未被篡改。网络热词中提到的http://vault.epel.cloud这类地址,通常是第三方镜像源,下载系统镜像时,优先选择主站。

文件存放:将下载好的.iso文件放在一个你容易找到的路径下,比如~/Downloads/~/Documents/ISO/

2.2 安装与配置VMware Fusion

如果你还没有VMware Fusion,需要先去VMware官网下载。对于个人学习和非商业用途,你可以使用其免费提供的VMware Fusion Player版本,功能对于大多数用户已经足够。

  1. 下载与安装:访问VMware官网,下载适用于Apple Silicon(M系列芯片)或Intel芯片Mac的Fusion版本。安装过程是标准的macOS应用安装,拖拽到“应用程序”文件夹即可。
  2. 首次运行与许可:首次打开VMware Fusion,你需要接受许可协议,并可能要求你输入macOS的管理员密码来安装系统扩展。这是虚拟机软件正常工作所必需的,请放心授权。
  3. 关键设置:网络权限:在系统偏好设置 -> 安全性与隐私 -> 隐私中,找到“辅助功能”和“完全磁盘访问”,确保VMware Fusion及其相关进程已被勾选。这关系到虚拟机能否顺畅地与宿主机交互。

2.3 规划虚拟机资源

在创建虚拟机前,心里要对分配给它的资源有个数。这取决于你打算用这个CentOS来做什么。

  • 轻度学习/命令行操作:1-2个CPU核心,2GB内存,20GB磁盘空间足够。
  • Web/应用开发测试环境:建议2-4个CPU核心,4GB内存,40GB磁盘空间。
  • 运行数据库或多个服务:至少4个CPU核心,8GB内存,60GB以上磁盘空间。

一个核心原则:分配给虚拟机的内存最好不要超过你Mac物理内存的一半,以确保宿主机系统本身运行流畅。例如,你的Mac有16GB内存,分配给虚拟机8GB是相对安全的极限,通常4-6GB是更平衡的选择。

3. 创建与配置CentOS虚拟机

打开VMware Fusion,我们将开始创建虚拟机的核心步骤。

3.1 新建虚拟机向导

点击“新建”或“File” -> “New”。VMware Fusion通常会尝试自动检测你放入的ISO文件。如果没有,就选择“从光盘或镜像安装”,然后点击“使用其他光盘或光盘镜像…”,找到你下载的CentOS(或Rocky/AlmaLinux)的ISO文件。

当Fusion识别出这是“Linux”系统后,它会提示你“如何安装?”这里有一个重要选择不要勾选“在安装过程中使用Easy Install”

实操心得:Easy Install(简易安装)虽然能自动完成一些设置,但它会跳过很多重要的手动配置环节,比如磁盘分区、软件包选择、root密码设置等,不利于你理解系统安装过程,且可能产生不符合你预期的默认配置。对于学习和技术掌控,手动安装是唯一推荐的方式。

取消勾选Easy Install后,点击“继续”。

3.2 配置虚拟机硬件

接下来是定制虚拟机硬件配置的环节,这里每一步都值得推敲。

  1. 操作系统选择:在“选择操作系统”页面,如果Fusion没有自动识别,请手动选择。对于CentOS 7/Rocky Linux 8/AlmaLinux 8,选择“Linux” -> “CentOS 7 64位”或“Red Hat Enterprise Linux 8 64位”。对于更新的版本,选择对应的RHEL 9系列。这会影响Fusion为虚拟机安装最合适的虚拟硬件驱动。
  2. 处理器与内存:根据之前的规划,设置CPU核心数和内存大小。对于大多数情况,“将内存划分为多个页面”的选项保持默认即可。
  3. 网络适配器:这是关键配置。默认的“与我的Mac共享”模式(NAT模式)对大多数场景是最方便的。在此模式下,虚拟机会通过Mac主机的网络连接上网,并拥有一个私有IP地址(如192.168.x.x),可以访问外网,外网无法直接访问它。如果你需要虚拟机拥有一个和Mac主机同网段的独立IP(像一台真实物理机一样),则需要选择“桥接模式”。网络热词中提到的“为什么在centos里面无法勾选connect a host virtual adapter to this network”这个问题,通常出现在更复杂的“仅主机模式”或网络编辑器配置中,对于新手,NAT模式最简单可靠。
  4. 磁盘:选择“创建新的虚拟磁盘”。大小根据规划设置,例如40GB。强烈建议选择“将虚拟磁盘拆分成多个文件”。虽然单个文件管理简单,但拆分成多个文件(默认是2GB一个文件)在备份、迁移时灵活性更高,特别是使用Time Machine备份时,可以增量备份变化的部分。
  5. 其他硬件:默认的图形卡、USB控制器等通常无需改动。你可以点击“自定义设置”在创建前微调,也可以在创建后随时添加(如额外的网卡、硬盘)。

完成配置后,给虚拟机起个名字(如MyCentOS),并选择一个存储位置(确保该位置有足够磁盘空间)。点击“完成”,虚拟机就创建好了,但此时它还是一台“空机器”,光盘里放着ISO镜像。

4. CentOS系统安装详解

现在,启动这台新虚拟机,它会从你关联的ISO镜像启动,进入系统安装界面。

4.1 安装引导与语言选择

启动后,你会看到CentOS/Rocky/AlmaLinux的安装引导菜单。选择“Install CentOS Linux 7”(或对应版本)并回车。

第一个界面是语言选择。为了后续操作和排错方便,建议选择“English” -> “United States”。这样能确保所有系统消息、日志都是英文,在搜索错误信息时全球通用。当然,你也可以选择中文,但在终端环境下,有时中文字符可能带来显示问题。

4.2 安装信息摘要(INSTALLATION SUMMARY)

这是安装的核心配置页面,所有重要设置都在这里。

  1. 本地化(LOCALIZATION)

    • 日期和时间:检查时区是否正确,通常选择“Asia/Shanghai”。可以打开网络时间协议(NTP)同步。
    • 键盘:保持默认即可。
    • 语言支持:主语言已选。可以在这里添加额外的语言包。
  2. 软件(SOFTWARE)

    • 安装源:默认使用你挂载的ISO镜像,无需改动。
    • 软件选择这是至关重要的一步。默认选中的是“Minimal Install”(最小化安装),这正是我们想要的。它提供一个最纯净的命令行系统,没有图形界面。对于服务器和开发环境,这是最佳起点。如果你确信需要图形界面(GNOME或KDE),可以在这里选择,但这会显著增加安装时间和磁盘占用,且对资源要求更高。作为服务器,我们坚持“Minimal Install”。
  3. 系统(SYSTEM)

    • 安装目的地:点击进入磁盘分区配置。
      • 在“本地标准磁盘”下,你应该能看到我们在VMware中创建的那块虚拟磁盘(例如40GB)。
      • 分区方案:我推荐使用自动配置的“LVM”方案。LVM(逻辑卷管理)提供了极大的灵活性,日后可以轻松扩展磁盘空间(这正是网络热词“centos扩容”所关心的)。在自动配置下,它会创建/boot/(根分区)和swap分区。对于新手,接受这个自动方案是最稳妥的。
      • 如果你想手动分区,可以选择“我将配置分区”,但需要了解/boot//homeswap等挂载点的作用。对于40GB的磁盘,一个简单的方案可以是:/boot1GB(标准),swap4GB(内存小于8G时,swap大小通常建议为内存的1-2倍;内存足够大时,2-4GB也够用),剩余空间全部给/
    • KDUMP:这是一个内核崩溃转储机制,用于调试。对于学习和小型测试环境,可以取消勾选以节省一点内存。
    • 网络和主机名:点击进入,你会看到一个网络连接(如ens160)是关闭的。打开它!这样安装程序就能获取IP地址,并在安装过程中下载必要的软件包(如果ISO里没有的话)。你还可以在这里设置主机名,例如centos.local
  4. 用户设置(USER SETTINGS)

    • Root密码:设置一个强壮的root管理员密码。如果密码太弱,可能需要点击两次“完成”来确认。
    • 创建用户强烈建议创建一个普通用户,并授予其管理员权限(在“将此用户设为管理员”前打勾)。日常使用中,应尽量避免直接使用root用户,以增加安全性。例如,创建用户devuser

4.3 开始安装与进度等待

所有配置检查无误后,点击右下角的“开始安装”。安装程序会格式化磁盘、安装软件包。这个过程需要一些时间,取决于你选择的软件包数量和Mac的硬盘速度。

在安装过程中,你可以点击“用户设置”再次确认或修改root密码和用户信息。

安装完成后,点击“重启”按钮。系统会提示你取出安装介质(ISO镜像)。在VMware Fusion中,你需要在虚拟机重启时,迅速按下键盘(将光标点进虚拟机窗口),然后按F2(或fn+F2)进入虚拟机的BIOS设置,将启动顺序改为从硬盘优先;或者更简单的方法是在VMware Fusion的菜单栏选择“虚拟机” -> “电源” -> “关闭”,然后在虚拟机设置中,断开ISO镜像与虚拟光驱的连接,再启动虚拟机。这样它就会从硬盘启动了。

5. 首次启动与基础配置

重启后,系统会进入初始化设置。

  1. 许可协议:阅读并接受许可协议。
  2. 初始设置:对于Minimal安装,这里通常没有太多选项,可能只有一个“完成配置”的按钮,点击它。
  3. 登录:系统会进入命令行登录界面。输入你创建的用户名(如devuser)和密码,或者用root登录。

登录成功后,你就拥有了一个纯净的CentOS命令行环境。首先,我们应该做几件必要的事情。

5.1 更新系统与安装基础工具

连上网后(NAT模式下通常自动获取IP即可上网),第一件事就是更新系统。这能确保所有软件包都是最新的,修复已知漏洞。

# 切换到root用户(如果当前是普通用户) su - # 输入root密码 # 更新系统(对于CentOS 7/RHEL 8系) yum update -y # 对于Rocky/AlmaLinux 8 或 CentOS 8 Stream,使用dnf # dnf update -y

更新完成后,安装一些最常用的工具,它们会让你后续的操作方便很多。

# 安装网络诊断工具、文本编辑器、压缩工具等 yum install -y vim wget curl net-tools bash-completion epel-release # 安装EPEL源后,可以再安装一些额外工具,如htop(增强版top) yum install -y htop

注意事项epel-release是Extra Packages for Enterprise Linux的仓库源,提供了大量官方仓库中没有的常用软件。安装它是非常推荐的操作。

5.2 配置静态IP地址(可选但重要)

NAT模式下,虚拟机IP是DHCP自动获取的,可能会变。对于服务器环境,配置静态IP更稳定。编辑网络配置文件:

# 查看当前网络接口名,通常是 ens160, ens192 等 ip addr # 编辑对应网卡的配置文件,例如 ens160 vim /etc/sysconfig/network-scripts/ifcfg-ens160

你需要修改或确认以下关键参数(根据你的实际网络环境调整,NAT模式通常网关是192.168.x.1,DNS可以用宿主机网关或公共DNS):

BOOTPROTO=static # 将dhcp改为static ONBOOT=yes # 确保是yes,开机自启 # 添加以下行(IP地址根据你虚拟机当前获取的网段设置,避免冲突) IPADDR=192.168.204.128 # 你想要的静态IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.204.2 # 网关,通常是VMware NAT网络的网关 DNS1=192.168.204.2 # DNS,可以和网关相同,或使用 8.8.8.8 DNS2=8.8.4.4

保存退出后,重启网络服务:

systemctl restart network

再次使用ip addr检查IP是否已变更为你设置的静态地址,并测试网络连通性ping 8.8.8.8

5.3 配置SSH远程登录(极大提升效率)

在Mac的终端里操作虚拟机的命令行窗口,有时复制粘贴不方便。启用SSH后,你可以直接用Mac自带的终端(Terminal)或更强大的iTerm2通过SSH协议连接虚拟机,体验会好很多。

  1. 确保SSH服务已安装并启动

    # 检查是否安装 rpm -qa | grep openssh-server # 如果未安装,则安装 yum install -y openssh-server # 启动SSH服务并设置开机自启 systemctl start sshd systemctl enable sshd
  2. 查看虚拟机IP地址

    ip addr show ens160 | grep inet

    记下inet后面的IP,例如192.168.204.128

  3. 从Mac终端连接: 打开Mac的终端,输入:

    ssh devuser@192.168.204.128

    输入密码,即可登录。现在你可以在一个更舒适、支持多标签、方便复制粘贴的终端环境中操作你的CentOS虚拟机了。

6. 常见问题与排查技巧实录

即使按照步骤操作,也可能会遇到一些问题。这里记录了一些常见坑点及其解决方法。

6.1 安装后无法启动,卡在黑色界面

  • 问题描述:重启后,没有出现登录提示符,屏幕全黑或有闪烁光标。
  • 排查思路
    1. 检查ISO镜像:首先确认下载的ISO镜像校验和正确,并且安装过程中没有报错。
    2. 检查启动顺序:确保虚拟机设置中,硬盘是首要启动设备,并且已断开ISO镜像的连接。
    3. 检查显卡驱动:这在安装图形界面时更常见。对于Minimal安装,可以尝试在启动时修改内核参数。在VMware启动界面,快速按下e键(如果是GRUB2),找到以linux开头的那一行,在行尾添加nomodeset,然后按Ctrl+X启动。如果成功,则需要永久配置。
  • 解决方案:对于服务器用途,最根本的解决方案就是坚持使用Minimal Install,避免图形界面带来的兼容性问题。

6.2 网络连接失败,无法上网

  • 问题描述:在虚拟机内ping 8.8.8.8不通,ip addr显示没有获取到IP地址或只有回环地址。
  • 排查步骤
    1. 检查VMware网络设置:确认虚拟机网络适配器是“NAT模式”。
    2. 检查宿主机网络:Mac本身是否能正常上网。
    3. 检查虚拟机内网络服务
      systemctl status network # CentOS 7 # 或 systemctl status NetworkManager # CentOS 8/Rocky 8+
      确保服务是active (running)
    4. 检查网卡配置文件:确认/etc/sysconfig/network-scripts/ifcfg-ensXXXONBOOT=yes
    5. 重启网络服务systemctl restart network
  • 终极方案:在VMware Fusion的菜单栏,选择“虚拟机” -> “网络适配器” -> “断开连接”,然后再重新连接。这相当于给虚拟网卡拔插一次,往往能解决奇怪的网络问题。

6.3 忘记用户密码

  • 问题描述:root密码和普通用户密码都忘记了,无法登录。
  • 解决方案(单用户模式重置)
    1. 在VMware Fusion中启动虚拟机,在GRUB启动菜单界面(通常需要快速按下方向键阻止自动启动),选中要启动的内核,按e键进入编辑模式。
    2. 找到以linux16linux开头的行,将光标移到行尾。
    3. 在行尾添加rd.break(注意前面有个空格)。然后按Ctrl+X启动。
    4. 系统会进入一个紧急救援模式的shell。
    5. 依次输入以下命令:
      mount -o remount,rw /sysroot # 以读写方式重新挂载根分区 chroot /sysroot # 切换根目录 passwd root # 重置root密码,输入两次新密码 # 如果需要重置普通用户密码,同样使用 passwd username touch /.autorelabel # 为SELinux重新打标签(重要!) exit # 退出chroot exit # 退出shell,系统会继续启动
    6. 系统重启后,就可以用新密码登录了。这个过程涉及系统底层操作,务必谨慎。

6.4 磁盘空间不足与扩容

  • 问题描述:安装时分配的磁盘空间不够用了(网络热词“centos扩容”)。
  • 解决方案(LVM扩容):这正是推荐使用LVM分区的好处。
    1. 在VMware层面扩容:首先关闭虚拟机。在VMware Fusion的虚拟机设置中,找到硬盘,增加其容量(例如从40GB增加到60GB)。注意:这只是在虚拟层扩大了“房子”的面积,还需要在系统内进行分区和扩展。
    2. 在CentOS系统内扩展
      • 启动虚拟机,用lsblk查看磁盘,会发现原来的磁盘(如sda)变大了,但分区(sda2)和LVM物理卷(PV)还没变。
      • 使用fdiskparted工具,在磁盘末尾新建一个分区(例如sda3),类型设置为8e(Linux LVM)。
      • 重启或使用partprobe让系统识别新分区。
      • 将新分区sda3加入物理卷(PV)和卷组(VG):
        pvcreate /dev/sda3 vgextend centos /dev/sda3 # “centos”是你的卷组名,可用`vgs`查看
      • 最后,扩展逻辑卷(LV)和文件系统:
        # 扩展逻辑卷(假设要扩展根逻辑卷 /dev/centos/root) lvextend -l +100%FREE /dev/centos/root # 扩展文件系统(对于xfs) xfs_growfs / # 对于ext4文件系统,使用: # resize2fs /dev/centos/root
      • 再次使用df -h查看,根分区容量应该已经增加了。

6.5 软件安装失败:Yum/DNF 报错

  • 常见错误Could not resolve host[Errno 14] curl#6 - "Could not resolve host"[Errno 256] No more mirrors to try.
  • 排查
    1. 网络问题:首先ping 8.8.8.8检查基本连通性。
    2. DNS问题ping www.baidu.com检查域名解析。如果失败,检查/etc/resolv.conf文件中的DNS服务器配置是否正确。可以临时修改为nameserver 8.8.8.8
    3. 仓库镜像问题:特别是CentOS 7/8停止维护后,官方源可能失效。网络热词中的错误[errno 14]就与此相关。
  • 解决方案:更换为仍在维护的镜像源。
    • 对于CentOS 7:备份原repo文件,然后使用阿里云、清华大学的镜像源。例如:
      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache
    • 对于Rocky/AlmaLinux:它们有自己的官方源,通常无需更换。如果速度慢,也可以查找对应的国内镜像源进行替换。

7. 性能优化与日常使用建议

一个刚安装好的基础系统,可以通过一些优化让它更好用。

7.1 关闭不必要的服务

Minimal安装已经非常精简,但仍有可调整空间。例如,如果不需要邮件服务,可以关闭postfix

systemctl stop postfix systemctl disable postfix

使用systemctl list-unit-files --type=service | grep enabled查看所有开机自启的服务,根据实际情况禁用不需要的。

7.2 调整SWAP使用倾向

对于内存较大的虚拟机(比如分配了4GB以上),可以降低系统使用SWAP的倾向,让更多数据留在更快的内存中。编辑/etc/sysctl.conf,添加:

vm.swappiness=10

然后执行sysctl -p生效。值越低,系统越倾向于使用物理内存。(默认值通常是60)

7.3 安装增强工具(VMware Tools/Open VM Tools)

这能显著提升虚拟机的体验,包括:

  • 剪贴板共享:在Mac和虚拟机之间复制粘贴文本。
  • 文件拖放:在Mac和虚拟机之间拖放文件(需在VMware设置中启用)。
  • 更好的图形和鼠标性能

对于CentOS/RHEL系,安装Open VM Tools(开源版本)即可:

yum install -y open-vm-tools # 如果需要桌面功能(即使无GUI,也建议安装) yum install -y open-vm-tools-desktop systemctl restart vmtoolsd

安装后,可能需要重启虚拟机。

7.4 日常文件传输

除了拖放,还有更可靠的方式:

  • SCP命令:在Mac终端里,使用scp命令传输文件。
    # 从Mac复制到虚拟机 scp /path/to/local/file devuser@192.168.204.128:/home/devuser/ # 从虚拟机复制到Mac scp devuser@192.168.204.128:/path/to/remote/file ~/Downloads/
  • SFTP客户端:使用FileZilla、Transmit等图形化工具,协议选择SFTP,地址、用户名、密码和SSH一样。

7.5 快照与备份

VMware Fusion提供了强大的快照功能。在进行任何重大变更(如安装新服务、升级核心包)之前,强烈建议创建一个快照。如果操作失败,可以快速回滚到之前的状态。在虚拟机运行或关闭时,通过“虚拟机” -> “快照” -> “拍摄快照”即可创建。养成这个习惯,能为你节省大量重装系统的时间。

至此,一个在Mac上通过VMware Fusion搭建的、经过基础优化的CentOS(或其替代发行版)服务器环境就准备就绪了。它现在是一个稳定的、可通过SSH远程管理的Linux沙盒,你可以放心地在上面部署你的应用、学习Linux命令、或者构建更复杂的服务栈了。记住,虚拟机的魅力就在于它的可复现和可丢弃性,大胆尝试吧。

← 返回列表