1. 为什么选择CentOS Stream 9在M芯片Mac上运行
去年当我第一次尝试在M1 Max的MacBook Pro上通过VMware Fusion安装CentOS 8时,遭遇了令人沮丧的兼容性问题。经过多次尝试和查阅资料后,我发现问题根源在于CentOS 8缺乏对ARM架构的完整支持。这促使我开始寻找替代方案,最终发现CentOS Stream 9不仅完美支持ARM架构,还提供了更现代化的软件包和工具链。
CentOS Stream 9作为RHEL的上游版本,采用了滚动更新的模式,这意味着你可以第一时间获取到最新的功能和修复。对于开发者而言,这特别有价值——你可以在新特性正式进入RHEL前就进行测试和适配。我实测在M1/M2芯片上运行CentOS Stream 9的性能表现非常出色,几乎感受不到明显的性能损失。
重要提示:虽然CentOS Stream 9可以稳定运行,但如果你需要绝对稳定的生产环境,可能需要考虑其他企业级发行版。Stream版本更适合开发和测试用途。
2. 准备工作与环境配置
2.1 下载必要文件
首先需要获取两个关键文件:
- VMware Fusion for Apple Silicon版本(当前最新为13.5)
- CentOS Stream 9的ARM64镜像
我强烈建议直接从官网下载这些文件,避免使用第三方镜像可能带来的安全隐患。CentOS Stream 9的下载页面提供了多个镜像源,选择地理位置最近的源可以显著提高下载速度。
bash复制# 验证下载的ISO完整性(可选但推荐)
shasum -a 256 CentOS-Stream-9-latest-aarch64-dvd1.iso
2.2 VMware Fusion安装与配置
安装VMware Fusion的过程相当直观,但有几个关键设置需要注意:
- 在"安全性与隐私"设置中允许VMware的系统扩展
- 首次运行时选择"个人使用"(非商业用途)
- 在偏好设置中调整内存分配——建议为Linux虚拟机分配至少4GB内存
我发现在M系列芯片上,将虚拟机存储为单个文件(而非分割)可以获得更好的I/O性能。此外,启用"快速启动"选项可以大幅减少虚拟机的启动时间。
3. 创建CentOS Stream 9虚拟机
3.1 初始安装步骤
将ISO文件拖入VMware窗口后,系统会自动识别为Linux安装介质。这里有几个关键选择:
- 选择"其他Linux 5.x或更高版本内核64位ARM"作为客户机操作系统类型
- 磁盘空间建议至少40GB(开发环境可能需要更多)
- 网络适配器选择NAT模式(除非你需要桥接网络)
安装过程中最关键的步骤是分区设置。对于新手,我建议使用自动分区。有经验的用户可以选择手动分区,我的常用配置是:
- /boot 1GB
- swap 内存大小的1.5倍(但不超过8GB)
- / 剩余所有空间
3.2 首次启动配置
安装完成后首次启动时,建议立即执行以下操作:
- 更新所有软件包:
bash复制sudo dnf update -y
- 安装增强工具(Open VM Tools):
bash复制sudo dnf install open-vm-tools -y
- 设置主机名:
bash复制sudo hostnamectl set-hostname your-hostname
4. 网络与系统配置详解
4.1 静态IP地址配置
动态IP在开发环境中常常带来不便,配置静态IP是更可靠的选择。CentOS Stream 9使用NetworkManager管理网络连接,配置文件位于/etc/NetworkManager/system-connections/。
编辑网络连接文件时,确保包含以下关键参数:
ini复制[ipv4]
method=manual
addresses=192.168.1.100/24
gateway=192.168.1.1
dns=8.8.8.8;8.8.4.4
修改后,使用以下命令使更改生效:
bash复制sudo nmcli connection reload
sudo nmcli connection up ens160
4.2 启动模式切换
CentOS Stream 9默认使用图形界面启动,但对于服务器用途,命令行模式更节省资源。切换启动模式的命令虽然简单,但有几个细节需要注意:
- 切换到命令行模式:
bash复制sudo systemctl set-default multi-user.target
- 切换回图形界面:
bash复制sudo systemctl set-default graphical.target
经验分享:在虚拟机环境中,即使使用命令行模式,也可以通过
startx命令临时启动图形界面,这样既节省资源又能在需要时使用GUI工具。
4.3 防火墙管理
CentOS Stream 9默认启用firewalld,这在开发环境中有时会造成不便。关闭防火墙的命令很简单,但更安全的做法是只开放必要的端口:
bash复制# 查看防火墙状态
sudo firewall-cmd --state
# 临时关闭防火墙
sudo systemctl stop firewalld
# 永久禁用防火墙
sudo systemctl disable firewalld
# 更安全的做法:只开放SSH端口
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
5. 常见问题与性能优化
5.1 安装过程中常见错误
-
启动时卡住:这通常是由于显卡驱动问题导致。解决方法是在启动时添加
nomodeset内核参数。 -
网络连接失败:检查VMware的网络适配器设置,确保选择的是NAT模式。如果问题依旧,尝试重置虚拟网络设置。
-
磁盘空间不足:虽然安装时设置了磁盘大小,但虚拟机实际使用的是精简配置。需要在虚拟机设置中扩展磁盘,然后在系统中使用
growpart和xfs_growfs命令扩展分区。
5.2 性能优化技巧
经过多次测试,我发现以下调整可以显著提升虚拟机性能:
-
内存分配:不要过度分配内存,保留至少2GB给主机系统。对于开发用途,4-8GB是理想范围。
-
CPU核心:分配2-4个虚拟CPU核心通常能获得最佳性能。
-
文件系统:在虚拟机设置中启用"快速磁盘"选项,这能显著提升I/O性能。
-
显示设置:如果使用图形界面,将显存设置为2GB,并启用3D加速。
5.3 开发环境配置建议
对于开发者,我推荐安装以下基础软件包:
bash复制sudo dnf groupinstall "Development Tools" -y
sudo dnf install git vim-enhanced tmux zsh -y
此外,配置SSH密钥登录比密码更安全便捷:
bash复制ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
6. 系统维护与更新策略
CentOS Stream 9的滚动更新特性意味着你需要更频繁地关注系统更新。我建议设置自动安全更新:
bash复制sudo dnf install dnf-automatic -y
sudo sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf
sudo systemctl enable --now dnf-automatic.timer
对于关键服务器,更安全的做法是设置更新通知而非自动应用:
bash复制sudo sed -i 's/apply_updates = yes/apply_updates = no/' /etc/dnf/automatic.conf
定期清理旧内核和缓存可以节省磁盘空间:
bash复制sudo dnf autoremove -y
sudo dnf clean all
7. 备份与恢复策略
虚拟机的一个优势是可以轻松创建快照。我建议在以下关键节点创建快照:
- 初始安装完成后
- 重要配置变更前
- 定期(如每周)创建增量快照
VMware Fusion的快照管理非常直观,但需要注意:
- 快照会占用磁盘空间
- 过多的快照会影响性能
- 定期合并或删除旧快照
对于重要数据,还应该设置外部备份。一个简单的方案是使用rsync:
bash复制rsync -avz --delete /path/to/important/data user@backup-server:/backup/location/
可以将此命令加入cron实现定期自动备份:
bash复制(crontab -l 2>/dev/null; echo "0 2 * * * rsync -avz --delete /path/to/data user@backup:/location/") | crontab -
经过几个月的使用,我发现M芯片Mac搭配VMware Fusion运行CentOS Stream 9的组合非常稳定可靠。相比Intel Mac时代,ARM架构的能效比提升明显,虚拟机运行时的发热和耗电都大幅降低。对于开发者而言,这无疑是一个高效且环保的选择。