1. 红帽系统安装前的准备工作
在开始安装RHEL 8之前,我们需要做好充分的准备工作。作为一款企业级Linux发行版,红帽系统的安装过程虽然直观,但前期准备工作的充分与否直接关系到后续使用的稳定性。
1.1 获取RHEL 8安装镜像
红帽企业版Linux(RHEL)是商业操作系统,需要订阅才能获得官方支持。你可以通过以下几种方式获取安装镜像:
-
官方渠道:如果你是红帽客户或开发者,可以通过Red Hat客户门户下载最新ISO镜像。开发者可以使用Red Hat Developer Subscription免费获取。
-
替代方案:如果你只是想学习RHEL,可以考虑使用CentOS Stream或Rocky Linux等兼容发行版,它们提供了与RHEL高度兼容的环境。
-
评估版本:红帽官网提供30天试用版,适合短期评估使用。
提示:下载完成后务必验证ISO文件的SHA256校验和,确保文件完整性。红帽官网会提供每个版本的校验值。
1.2 创建安装介质
获得ISO文件后,我们需要将其制作成可启动的安装介质。常见的方法有:
USB闪存盘制作(推荐):
code复制# 使用dd命令(Linux/macOS)
dd if=/path/to/rhel8.iso of=/dev/sdX bs=4M status=progress && sync
# Windows用户可以使用Rufus工具,选择DD模式写入
光盘刻录:
虽然现在使用较少,但某些老旧服务器可能仍需要光盘安装。可以使用ImgBurn或CDBurnerXP等工具刻录。
1.3 硬件兼容性检查
RHEL 8对硬件有一定要求,安装前应确认:
-
最低配置:
- 2GB RAM(建议4GB以上)
- 20GB磁盘空间(生产环境建议50GB以上)
- 64位x86处理器(ARM版本需特定硬件)
-
推荐配置:
- 4核CPU
- 8GB RAM
- 100GB SSD存储
使用以下命令检查现有Linux系统的硬件(如果已有Linux系统):
code复制lscpu # 查看CPU信息
free -h # 查看内存
lsblk # 查看磁盘
lspci # 查看PCI设备
1.4 安装环境选择
你可以选择以下几种方式安装RHEL 8:
- 物理机直接安装:适用于专用服务器或工作站
- 虚拟机安装(推荐学习使用):
- VMware Workstation/ESXi
- VirtualBox
- KVM
- 云平台:AWS、Azure、GCP等主流云平台都提供RHEL 8镜像
对于初学者,建议先在虚拟环境中练习安装过程。我在实际教学中发现,使用VirtualBox是最容易上手的选择,它提供了直观的图形界面和完整的虚拟化功能。
2. RHEL 8安装过程详解
现在我们已经准备好安装介质,可以开始正式的安装过程了。RHEL 8提供了图形化安装界面,即使是Linux新手也能相对轻松地完成安装。
2.1 启动安装程序
- 插入安装介质(USB或光盘)并启动计算机
- 在BIOS/UEFI中选择从安装介质启动
- 看到引导菜单后,选择"Install Red Hat Enterprise Linux 8"
如果系统无法从安装介质启动,可能需要:
- 检查BIOS/UEFI中的启动顺序
- 确认Secure Boot设置(可尝试禁用)
- 重新制作安装介质
2.2 语言和键盘设置
安装程序首先会要求选择语言和键盘布局。这里的选择会影响安装过程中的显示语言和默认系统语言。
- 语言选择:建议选择"English (United States)",避免后续软件包管理出现字符编码问题
- 键盘布局:根据实际硬件选择,大多数情况下使用"US"布局
注意:这里选择的语言只是安装过程的界面语言,系统语言可以在安装完成后更改。我在多个项目中发现,使用英文界面可以减少本地化带来的兼容性问题。
2.3 安装信息摘要
这是安装过程中最重要的界面,包含了所有可配置的选项:
-
本地化:
- 时区设置:选择"Asia/Shanghai"或其他适合的时区
- 语言支持:可以添加额外语言支持
-
软件选择:
- 最小安装(Minimal Install):最基本的系统,适合服务器
- 带GUI的服务器(Server with GUI):图形界面环境
- 工作站(Workstation):开发人员桌面环境
- 自定义:手动选择软件包组
对于大多数初学者,建议选择"Server with GUI"以获得完整的图形环境。生产环境服务器通常选择"Minimal Install"以减少攻击面。
-
安装目标:
这是磁盘分区设置,我们将在下一节详细讨论。 -
网络和主机名:
可以在这里配置网络连接和设置主机名。 -
安全策略:
RHEL 8允许在安装时应用安全策略,如STIG或PCI-DSS标准。
2.4 磁盘分区方案
磁盘分区是Linux安装中最关键的步骤之一。RHEL 8提供了几种分区方案:
自动分区选项:
- 使用全部空间:擦除整个磁盘并自动分区
- 替换现有Linux系统:保留其他操作系统/数据
- 使用空闲空间:在未分配空间上安装
手动分区(推荐高级用户):
对于生产环境,我强烈建议使用手动分区以获得最佳性能和安全性。以下是典型的分区方案:
| 挂载点 | 建议大小 | 文件系统 | 备注 |
|---|---|---|---|
| /boot | 1GB | xfs | 引导分区 |
| / | 20-50GB | xfs | 根分区 |
| /home | 剩余空间 | xfs | 用户数据 |
| swap | 内存的1-2倍 | swap | 交换空间 |
对于现代系统,可以考虑以下优化方案:
- 省略swap分区,使用swap文件(特别是SSD系统)
- 为/var单独分区(日志和临时文件)
- 为数据库应用创建单独的分区
经验分享:在多个企业部署中,我发现为/var/log单独分区非常有用,可以防止日志文件填满根分区导致系统故障。建议给/var/log分配10-20GB空间,具体取决于日志量。
点击"完成"后,系统会提示确认更改,这将擦除磁盘上的现有数据,请确保已备份重要数据。
2.5 用户设置
在开始安装前,还需要设置root密码和创建用户账户:
-
Root密码:
- 设置强密码(至少12个字符,包含大小写字母、数字和特殊字符)
- 可以勾选"允许root用户通过SSH登录",但生产环境不建议
-
创建用户:
- 建议创建一个普通用户用于日常操作
- 可以勾选"将此用户设为管理员",将其加入wheel组(可以使用sudo)
安全提示:在实际生产环境中,我通常会禁用root的SSH登录,只允许通过sudo提权。这可以显著提高系统安全性。
3. 安装后配置
安装过程通常需要15-30分钟(取决于硬件性能)。安装完成后,系统会提示重启。取出安装介质后,系统将首次启动进入新安装的RHEL 8。
3.1 首次启动设置
首次启动时,系统可能会要求进行一些初始配置:
- 许可证信息:接受红帽许可证协议
- 订阅管理:
- 如果是正式环境,需要注册系统并附加订阅
- 开发或测试可以使用--skip-registration跳过(功能有限)
- 完成配置:设置时区、用户等(如果在安装过程中已设置,可以跳过)
3.2 系统注册和订阅管理
对于正式使用的RHEL系统,需要注册以获得更新和支持:
code复制# 注册系统(需要红帽账户)
sudo subscription-manager register --username <your_username> --password <your_password>
# 附加订阅池
sudo subscription-manager attach --auto
# 检查订阅状态
sudo subscription-manager status
如果没有订阅,可以暂时使用开发者订阅或考虑使用CentOS Stream等替代方案。
3.3 基本系统更新
安装完成后,首先应该更新系统:
code复制sudo dnf update -y
sudo reboot
RHEL 8使用DNF作为包管理器,取代了旧版的YUM。基本用法相似但性能更好。
3.4 防火墙和SELinux配置
RHEL默认启用防火墙和SELinux,这是企业级安全的重要特性:
防火墙管理:
code复制# 查看防火墙状态
sudo firewall-cmd --state
# 开放HTTP端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
SELinux管理:
code复制# 查看SELinux状态
getenforce
# 临时设置为宽容模式(调试用)
sudo setenforce 0
# 永久禁用(不推荐)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
重要建议:除非有特殊需求,否则不要禁用SELinux。许多权限问题可以通过正确设置SELinux上下文解决,而不是直接关闭它。我在安全审计中经常发现禁用SELinux是系统被入侵的主要原因之一。
4. 常见问题与解决方案
在多年的RHEL安装和支持经验中,我总结了一些常见问题及其解决方法,帮助大家避免常见的陷阱。
4.1 安装启动问题
问题1:无法从安装介质启动
- 检查BIOS/UEFI设置,确保启动顺序正确
- 尝试重新制作安装介质,使用不同的USB端口
- 禁用Secure Boot(某些硬件可能需要)
问题2:安装过程中出现dracut警告
code复制dracut-initqueue timeout - starting timeout scripts
- 通常表示存储设备检测问题
- 尝试在启动时添加内核参数
nomodeset或inst.nompath
4.2 图形安装界面问题
问题1:安装界面分辨率不正确
- 在引导菜单按Tab键编辑启动参数,添加
vga=792(1024x768) - 或者尝试
nomodeset参数
问题2:安装程序卡住或无响应
- 检查硬件兼容性,特别是显卡
- 尝试文本模式安装:在引导菜单选择"Install RHEL 8 in basic graphics mode"
4.3 磁盘分区问题
问题1:安装程序无法识别磁盘
- 检查磁盘控制器模式(AHCI通常兼容性最好)
- 对于RAID或特殊存储,可能需要加载额外驱动
- 尝试在启动时添加
inst.dd参数加载驱动
问题2:分区方案不被接受
- 确保/boot分区足够大(至少1GB)
- 对于UEFI系统,需要EFI系统分区(ESP)
- 检查分区是否设置了正确的挂载点
4.4 网络配置问题
问题1:安装过程中无法连接网络
- 检查网线连接和交换机端口
- 尝试不同的网络模式(NAT/桥接)
- 对于无线网络,可能需要先配置有线网络安装驱动
问题2:安装后网络不工作
code复制# 检查网络接口
ip a
# 启用接口
nmcli connection up <interface_name>
# 检查NetworkManager服务
systemctl status NetworkManager
4.5 软件包管理问题
问题1:dnf update失败
- 检查网络连接
- 确认系统已注册并附加了有效订阅
- 尝试清理缓存:
sudo dnf clean all
问题2:缺少软件包
- 启用额外仓库:
code复制sudo subscription-manager repos --enable <repo_name> - 对于EPEL仓库(额外软件包):
code复制sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
5. 生产环境优化建议
在为企业部署RHEL系统时,仅仅完成基本安装是不够的。根据多年系统管理经验,我总结了一些生产环境下的优化建议,帮助您构建更稳定、安全的系统。
5.1 安全加固措施
1. 用户和权限管理:
code复制# 禁用root SSH登录
sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
# 设置密码策略
sudo vi /etc/security/pwquality.conf
# 修改参数如:
minlen = 12
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
2. 定期更新策略:
code复制# 设置自动安全更新
sudo dnf install dnf-automatic -y
sudo sed -i 's/apply_updates = no/apply_updates = yes/g' /etc/dnf/automatic.conf
sudo systemctl enable --now dnf-automatic.timer
3. 审计和日志:
code复制# 启用审计服务
sudo systemctl enable --now auditd
# 查看审计日志
ausearch -k <key_name>
5.2 性能调优
1. 内核参数优化:
code复制# 编辑sysctl配置
sudo vi /etc/sysctl.conf
# 添加或修改以下参数(根据具体应用调整):
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
2. 文件系统优化:
- 对于XFS文件系统(RHEL 8默认):
code复制# 禁用atime更新,减少磁盘IO sudo vi /etc/fstab # 在挂载选项中添加noatime,nodiratime
3. 服务管理:
code复制# 禁用不必要的服务
sudo systemctl disable bluetooth cups abrtd
# 设置服务超时(防止启动卡住)
sudo vi /etc/systemd/system.conf
# 修改:
DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s
5.3 监控和维护
1. 系统监控工具:
code复制# 安装常用监控工具
sudo dnf install htop iotop iftop nmon -y
# 配置日志轮转
sudo vi /etc/logrotate.conf
2. 定期维护任务:
code复制# 添加每日维护脚本
sudo vi /etc/cron.daily/system-maintenance
#!/bin/bash
/usr/bin/logger -t MAINTENANCE "Starting daily maintenance"
/usr/bin/dnf update -y
/usr/bin/logger -t MAINTENANCE "Daily maintenance completed"
exit 0
sudo chmod +x /etc/cron.daily/system-maintenance
3. 备份策略:
code复制# 简单备份脚本示例
#!/bin/bash
BACKUP_DIR="/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# 创建系统配置备份
tar -czvf ${BACKUP_DIR}/config_backup_${TIMESTAMP}.tar.gz /etc /var/spool/cron /root
# 数据库备份(如果有)
# mysqldump -u root -p --all-databases > ${BACKUP_DIR}/mysql_backup_${TIMESTAMP}.sql
在实际企业环境中,我通常会结合这些基础优化与具体的应用需求进行调整。例如,数据库服务器需要不同的内核参数和磁盘调度器设置,而Web服务器则可能更需要网络栈的优化。关键是根据监控数据进行持续调整,而不是一次性设置后就置之不理。
