1. CentOS Stream 9安装前的认知准备作为RHEL上游开发分支的CentOS Stream 9其定位已从传统的稳定版转变为持续交付平台。这意味着我们需要用全新的视角来看待这个发行版——它既不是测试版也不是不稳定版本而是Red Hat工程师每天实际提交代码的工作环境。对于开发者而言这相当于提前获取了RHEL下一个版本的所有特性更新。选择安装介质时需要注意官方提供四种ISO镜像Boot最小引导、Minimal基础系统、DVD完整软件包和Everything全量仓库对于大多数用户推荐使用Minimal镜像约2GB配合后续的在线仓库更新企业级部署应考虑使用Everything镜像建立本地仓库重要提示由于CentOS Stream的滚动更新特性安装后务必配置自动更新策略。建议开发环境启用自动安全更新生产环境则采用分阶段验证更新。2. 安装介质准备与启动配置2.1 镜像获取与验证从官方镜像站https://mirror.stream.centos.org下载时建议选择地理位置最近的镜像源。国内用户可考虑阿里云镜像站腾讯云开源镜像华为云镜像服务下载完成后必须进行完整性校验# 获取校验文件 wget https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-dvd.iso.SHA256SUM # 计算校验值 sha256sum CentOS-Stream-9-latest-x86_64-dvd.iso # 对比结果 cat CentOS-Stream-9-latest-x86_64-dvd.iso.SHA256SUM2.2 制作启动盘的进阶方法除常规的Rufus、Ventoy工具外Linux环境下推荐使用dd命令# 确认U盘设备路径通常为/dev/sdb lsblk # 写入镜像注意替换sdX为实际设备 sudo dd ifCentOS-Stream-9-latest-x86_64-dvd.iso of/dev/sdX bs4M statusprogress oflagsync对于支持Secure Boot的机器建议在BIOS中关闭Fast Boot选项将启动模式设置为UEFI Only安全启动(Secure Boot)可根据实际情况选择启用/禁用3. 图形化安装流程详解3.1 初始配置关键步骤安装界面选择Install CentOS Stream 9后需特别注意语言选择服务器环境建议选择English (United States)桌面用户可选择中文支持但需注意ibus输入法框架与部分第三方输入法的兼容性问题键盘布局中文用户建议添加Chinese布局并设置切换快捷键对于开发者推荐保持US国际键盘布局时间设置企业服务器务必启用NTP同步时区选择Asia/Shanghai时注意检查UTC时间显示是否正确3.2 磁盘分区方案设计安装类型选择Custom时推荐以下分区方案挂载点建议大小文件系统适用场景/boot/efi300MBFAT32UEFI系统必需/boot1GBXFS内核和引导文件/20-50GBXFS根目录/home剩余空间XFS用户数据swap内存的1-1.5倍swap休眠功能需要对于高级用户可考虑使用LVM实现动态扩容为/var单独分区特别是数据库服务器添加/boot/grub2分区多系统引导场景分区技巧在虚拟化环境中建议将/boot放在磁盘前端以获得更好的IO性能3.3 软件包选择策略基础环境选择界面包含多个预设选项Server with GUI带图形界面的服务器环境默认安装GNOMEServer最小化服务器安装Workstation开发工作站配置Custom Operating System完全自定义对于生产服务器建议选择Minimal Install手动添加Compatibility Libraries和Development Tools组网络服务按需添加如Network Servers桌面用户应注意GNOME 40版本对硬件加速要求较高可同时安装KDE Plasma作为备用桌面环境# 安装后添加KDE桌面 sudo dnf groupinstall KDE Plasma Workspaces4. 首次启动后的关键配置4.1 网络配置实战网络管理器NetworkManager已成为默认网络配置工具推荐配置方式静态IP配置服务器环境必需nmcli con mod Wired connection 1 \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 8.8.8.8,8.8.4.4 \ ipv4.method manual绑定多网卡企业级应用# 创建绑定接口 nmcli con add type bond con-name bond0 ifname bond0 mode active-backup # 添加从属接口 nmcli con add type bond-slave ifname eth0 master bond0 nmcli con add type bond-slave ifname eth1 master bond0 # 激活绑定 nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth14.2 系统更新与仓库管理CentOS Stream 9采用DNF作为包管理器关键操作更新所有软件包sudo dnf update --refresh添加EPEL仓库第三方软件源sudo dnf install epel-release sudo dnf config-manager --set-enabled epel查询软件包# 搜索包含python3的包 dnf search python3 # 显示包详细信息 dnf info httpd4.3 安全加固措施首次启动后应立即执行防火墙配置# 启用firewalld sudo systemctl enable --now firewalld # 放行SSH端口 sudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reloadSELinux策略# 查看当前状态 getenforce # 永久启用 sudo sed -i s/SELINUX.*/SELINUXenforcing/ /etc/selinux/configSSH安全# 修改默认端口 sudo sed -i s/#Port 22/Port 2222/ /etc/ssh/sshd_config # 禁用root登录 sudo sed -i s/#PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config # 重启服务 sudo systemctl restart sshd5. 常见问题排错指南5.1 安装阶段问题问题1无法识别NVMe磁盘解决方案在启动参数添加nvme_core.default_ps_max_latency_us0问题2图形安装界面崩溃尝试使用nomodeset参数启动或改用文本安装模式问题3分区表创建失败检查磁盘是否被其他系统锁定使用wipefs -a /dev/sdX清除旧签名5.2 首次启动问题问题1网络服务未自动启动# 检查NetworkManager状态 systemctl status NetworkManager # 启用网络接口 nmcli con up Wired connection 1问题2图形界面卡在登录循环检查~/.xsession-errors日志尝试创建新用户测试可能原因显卡驱动问题或磁盘空间不足问题3中文输入法不工作安装ibus-libpinyin组件sudo dnf install ibus-libpinyin im-chooser # 配置输入法框架6. 生产环境优化建议6.1 性能调优调整内核参数# 编辑sysctl配置 sudo vim /etc/sysctl.d/99-tuning.conf # 添加以下内容 net.core.somaxconn 4096 vm.swappiness 10 fs.file-max 65535优化IO调度# 查看当前调度器 cat /sys/block/sdX/queue/scheduler # 永久修改为deadline echo ACTIONadd|change, KERNELsd*, ATTR{queue/scheduler}deadline | sudo tee /etc/udev/rules.d/60-ioscheduler.rules6.2 监控与维护安装基础监控工具sudo dnf install htop iotop iftop nmon配置日志轮转# 检查logrotate配置 sudo vim /etc/logrotate.conf # 添加应用日志配置 sudo vim /etc/logrotate.d/myapp自动化更新策略# 安装自动更新工具 sudo dnf install dnf-automatic # 配置自动更新 sudo sed -i s/apply_updates no/apply_updates yes/ /etc/dnf/automatic.conf sudo systemctl enable --now dnf-automatic.timer在实际部署中我们发现CentOS Stream 9的软件包更新节奏明显快于传统CentOS。某次内核更新导致我们的NVIDIA驱动需要重新编译这提醒我们在自动化部署脚本中应该包含驱动模块的DKMS注册步骤。同时将关键服务的自动启动检查加入系统初始化流程可以避免因更新导致的服务中断。