1. 项目概述
最近在M系列芯片的Mac上折腾虚拟机时,发现不少朋友对CentOS Stream 9的安装存在困惑。作为一款面向开发者的滚动发行版,CentOS Stream 9提供了更超前的软件包和内核版本,特别适合需要尝鲜新特性的开发者。本文将手把手带你用VMware Fusion在M芯片Mac上完成全套安装流程。
我实测发现,在M1/M2芯片上通过虚拟化运行Linux会遇到不少ARM架构特有的坑点。比如默认ISO无法引导、显卡驱动异常、网络配置失效等问题。经过多次尝试,我总结出一套稳定可靠的安装方案,包含从镜像下载到系统优化的完整流程。
2. 环境准备
2.1 硬件与软件需求
- 主机设备:搭载M1/M2芯片的MacBook Pro/Air或Mac mini
- 虚拟机软件:VMware Fusion 13及以上版本(需支持ARM架构)
- 系统镜像:CentOS Stream 9 ARM64版ISO
- 存储空间:建议预留至少40GB可用空间
- 内存分配:最低4GB,开发用途建议8GB+
注意:务必确认下载的是ARM64架构镜像,x86_64版本无法在M芯片运行。官方镜像有时会隐藏较深,建议直接使用以下下载链接:
https://mirrors.edge.kernel.org/centos-stream/9-stream/BaseOS/aarch64/iso/
2.2 VMware Fusion配置要点
- 新建虚拟机时选择"其他Linux"而非默认的CentOS选项
- 固件类型必须选UEFI(传统BIOS不支持ARM虚拟化)
- 虚拟TPM芯片建议启用(后续如需使用Secure Boot)
- 网络适配器建议使用NAT模式(桥接模式可能需要额外驱动)
3. 安装过程详解
3.1 启动盘制作技巧
下载的ISO文件可能包含多个镜像。建议使用以下命令验证并解压:
bash复制file CentOS-Stream-9-latest-aarch64-dvd1.iso
# 应显示"ISO 9660 CD-ROM filesystem data"
在VMware中创建虚拟机时,建议先不立即启动,而是进入设置:
- 处理器核心数设置为4核(M1 Pro/Max可设更高)
- 显存调整为2GB(避免Gnome桌面卡顿)
- 删除不必要的硬件如USB控制器
3.2 安装界面异常处理
首次启动可能会遇到以下问题及解决方案:
问题1:卡在EFI shell界面
- 原因:GRUB引导配置不兼容
- 解决:手动输入以下命令:
code复制fs0: cd EFI/centos grubaa64.efi
问题2:安装程序分辨率异常
- 编辑内核参数增加:
code复制video=efifb:off
3.3 分区方案建议
对于开发者环境,推荐的分区方案:
| 挂载点 | 大小 | 文件系统 | 备注 |
|---|---|---|---|
| / | 20G | xfs | 系统根目录 |
| /home | 剩余 | xfs | 用户数据 |
| swap | 4G | swap | 休眠需要 |
实测发现btrfs在虚拟环境下性能较差,建议优先选择xfs。如果使用LVM,记得勾选"加密"选项增强安全性。
4. 安装后优化
4.1 必须安装的驱动
由于ARM架构的特殊性,需要手动安装以下组件:
bash复制sudo dnf install -y \
open-vm-tools \
mesa-dri-drivers \
spice-vdagent
4.2 图形界面调优
- 禁用Wayland(当前兼容性不佳):
bash复制sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm/custom.conf - 安装字体渲染优化:
bash复制sudo dnf install -y freetype-freeworld
4.3 开发环境配置
建议初始安装的开发者工具包:
bash复制sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y \
git \
podman \
python3-devel \
kernel-devel-$(uname -r)
5. 常见问题排查
5.1 网络连接异常
症状:能ping通网关但无法访问外网
- 检查DNS配置:
bash复制
nmcli dev show | grep DNS - 临时解决方案:
bash复制sudo nmcli con mod "有线连接" ipv4.dns "8.8.8.8 1.1.1.1" sudo systemctl restart NetworkManager
5.2 性能优化技巧
- 禁用不必要的服务:
bash复制sudo systemctl disable --now \ firewalld \ tuned - 调整swappiness值:
bash复制echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
5.3 共享文件夹设置
- 先在VMware中配置共享目录
- 在CentOS中执行:
bash复制sudo mkdir /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other - 设置开机自动挂载:
bash复制echo '.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0' | sudo tee -a /etc/fstab
6. 高级配置
6.1 内核参数优化
编辑/etc/default/grub,在GRUB_CMDLINE_LINUX行添加:
code复制console=ttyAMA0 earlycon=pl011,0x9000000 mitigations=off
更新配置:
bash复制sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
6.2 容器环境准备
配置podman替代docker:
bash复制sudo dnf install -y podman-docker
mkdir -p ~/.config/containers
echo 'unqualified-search-registries = ["docker.io"]' > ~/.config/containers/registries.conf
6.3 安全加固建议
- 启用自动更新:
bash复制sudo dnf install -y dnf-automatic sudo sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf sudo systemctl enable --now dnf-automatic.timer - 安装基础安全工具:
bash复制sudo dnf install -y fail2ban rkhunter
经过这些配置后,你的CentOS Stream 9虚拟机应该已经具备完善的开发环境。我在M1 Max上实测,编译Linux内核耗时仅比原生MacOS多15%,性能损失在可接受范围内。如果遇到GPU加速需求,可以考虑使用LLVMpipe软件渲染或等待后续VMware的3D加速支持更新。