1. 项目背景与核心需求
去年换了M1 Pro的MacBook Pro后,发现很多传统x86架构的Linux发行版无法直接运行。作为长期使用CentOS做开发的用户,急需在ARM架构的Mac上搭建一个可用的CentOS环境。经过多次尝试,最终通过VMware Fusion实现了CentOS Stream 9的完美运行,这里把完整过程记录下来。
选择VMware Fusion的原因很简单:它在M芯片上的性能表现最好,图形化操作友好,且对ARM架构的Linux支持较为完善。而CentOS Stream 9作为RHEL的前沿版本,既保持了稳定性又具备较新的软件包,特别适合开发环境搭建。
2. 环境准备与工具选型
2.1 硬件与软件基础配置
我的测试设备是2021款14寸MacBook Pro,配置如下:
- 芯片:M1 Pro (10核CPU/16核GPU)
- 内存:32GB统一内存
- 系统:macOS Ventura 13.4
- VMware Fusion版本:13.0.2专业版
注意:VMware Fusion 13开始才正式支持Apple Silicon芯片,旧版本无法使用。专业版比标准版多了高级网络配置等功能,建议开发人员选择。
2.2 镜像下载与验证
CentOS Stream 9 ARM64镜像需要从官方源获取:
bash复制# 官方镜像列表
https://mirrors.centos.org/mirrorlist?path=/9-stream/aarch64/iso/
# 推荐使用清华镜像站下载
wget https://mirrors.tuna.tsinghua.edu.cn/centos/9-stream/aarch64/iso/CentOS-Stream-9-latest-aarch64-dvd1.iso
# 验证SHA256校验值
shasum -a 256 CentOS-Stream-9-latest-aarch64-dvd1.iso
下载完成后务必校验哈希值,我遇到过三次下载损坏的情况。建议使用aria2多线程下载工具加速大文件传输。
3. VMware Fusion配置详解
3.1 新建虚拟机关键参数
- 打开VMware Fusion,选择"新建"→"从光盘或镜像安装"
- 选择下载好的CentOS Stream 9 ARM64镜像
- 系统类型选择"Linux"→"CentOS 9 ARM64"
- 核心配置建议:
- CPU:4核心(M1 Pro最多可分配8核)
- 内存:8GB(开发环境建议不低于4GB)
- 硬盘:40GB(默认20GB太小,后期扩容麻烦)
- 网络:NAT模式(桥接模式可能需要额外配置)
实测发现:分配超过8GB内存会导致虚拟机启动变慢,而CPU核心数对性能影响更明显。我的最佳实践是4核CPU+8GB内存组合。
3.2 高级设置优化
在"设置"→"处理器和内存"中开启:
- 虚拟化引擎:使用Apple虚拟化框架
- 高级选项:启用快速启动(显著缩短启动时间)
存储配置建议:
- 磁盘类型:NVMe(比SCSI性能提升约15%)
- 将虚拟磁盘分割为多个文件(方便迁移)
网络配置技巧:
- 使用自定义MAC地址避免冲突
- 开启"连接网线"选项保证开机即联网
4. CentOS Stream 9安装实战
4.1 安装过程关键步骤
- 启动虚拟机后选择"Install CentOS Stream 9"
- 语言选择:English (United States)
- 安装目标:自动分区即可(LVM默认配置合理)
- 软件选择:
- 基础环境:Server with GUI(需要图形界面时)
- 附加组件:Development Tools(必选)
- 用户设置:
- 禁用root SSH登录(安全考虑)
- 创建普通用户并加入wheel组
安装过程约15-20分钟,M芯片的性能优势明显,比Intel Mac快近一倍。
4.2 首次启动配置
安装完成后需要执行几个关键操作:
bash复制# 更新所有软件包
sudo dnf update -y
# 安装open-vm-tools(增强工具)
sudo dnf install -y open-vm-tools
sudo systemctl enable --now vmtoolsd
# 调整时区(重要!)
sudo timedatectl set-timezone Asia/Shanghai
# 禁用SELinux(开发环境建议)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
5. 常见问题与解决方案
5.1 网络连接异常
症状:虚拟机可以ping通网关但无法访问外网
解决方法:
bash复制# 检查DNS配置
nmcli dev show | grep DNS
# 临时解决方案
sudo nmcli con mod "有线连接 1" ipv4.dns "8.8.8.8,114.114.114.114"
sudo systemctl restart NetworkManager
5.2 分辨率调整问题
VMware Tools安装后仍然无法调整分辨率:
- 检查是否安装了图形驱动:
bash复制sudo dnf install -y xorg-x11-drv-vmware
- 修改grub配置:
bash复制sudo vi /etc/default/grub
# 在GRUB_CMDLINE_LINUX行添加 video=hyperv_fb:1920x1080
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
5.3 共享文件夹设置
实现宿主机与虚拟机文件共享:
- 在VMware设置中添加共享文件夹
- 虚拟机内执行:
bash复制sudo dnf install -y fuse open-vm-tools-desktop
sudo mkdir /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
6. 性能优化实践
6.1 内存管理技巧
发现虚拟机内存占用持续升高时:
bash复制# 安装balloon驱动
sudo dnf install -y open-vm-tools-balloon
# 查看内存状态
vmware-toolbox-cmd stat balloon
6.2 CPU调度优化
修改CPU调度策略提升性能:
bash复制sudo vi /etc/default/grub
# 修改GRUB_CMDLINE_LINUX为:
GRUB_CMDLINE_LINUX="... nohz_full=1-3 rcu_nocbs=1-3"
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
6.3 磁盘IO加速
采用以下方式提升磁盘性能:
- 在VMware设置中将磁盘类型改为NVMe
- 虚拟机内启用writeback缓存:
bash复制echo 'vm.dirty_writeback_centisecs = 600' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
经过这些优化后,我的CentOS Stream 9虚拟机在编译Redis时的速度比默认配置快了近40%,特别是多核并行编译时效果更明显。日常开发中建议保持open-vm-tools自动更新,VMware团队会持续优化ARM架构的支持。