作为CentOS的替代方案,RockyLinux在2021年问世后迅速成为企业级Linux发行版的新宠。最近我在三台不同配置的服务器上完成了RockyLinux 8.6的部署,这里分享从镜像准备到系统配置的全流程。相比官方文档,我会重点说明实际安装过程中容易踩坑的细节。
首先需要从RockyLinux官网获取正确的ISO镜像。这里有个重要细节:8.6版本有"Boot"(1.4GB)、"Minimal"(2GB)、"DVD"(10GB)三种镜像。经过实测:
制作启动盘时,建议使用Ventoy这类工具。相比传统Rufus或dd命令,Ventoy的优势在于:
重要提示:安装前务必检查服务器是否开启UEFI模式。我在Dell R740xd上就遇到过因Legacy BIOS设置导致安装失败的情况。可以通过进入服务器BIOS查看,或现有系统中执行
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy"确认。
启动进入安装界面后,以下几个配置项需要特别注意:
软件选择:
分区方案:
/boot:1GB(UEFI需要500MB以上)/:30-50GB/home:根据用户数据量调整swap:内存<8GB时设内存1.5倍,>8GB时8-16GB即可网络配置:
务必在安装阶段就配置好网络,否则安装后可能无法连接软件源。建议:
安装完成后,首次登录建议立即执行以下操作:
bash复制# 更新系统
sudo dnf update -y
# 安装常用工具
sudo dnf install -y vim wget curl net-tools bash-completion
# 设置时区(以上海为例)
sudo timedatectl set-timezone Asia/Shanghai
掌握Linux命令不能停留在简单使用层面,理解其工作原理才能应对复杂场景。下面分享几个最常用但容易被误解的命令细节。
ls命令的进阶用法:
bash复制# 显示inode号(排查硬链接时有用)
ls -i
# 按文件大小排序(human-readable格式)
ls -lhS
# 显示完整时间(包括纳秒级时间戳)
ls --full-time
find命令的精准搜索:
bash复制# 查找7天内修改过的php文件
find /var/www -name "*.php" -mtime -7
# 查找大于10MB的文件并显示详情
find / -size +10M -exec ls -lh {} \;
# 查找属主为www-data的文件并修改权限
find / -user www-data -exec chmod 750 {} \;
grep命令的性能优化:
bash复制# 排除二进制文件(加速搜索)
grep -I "pattern" /path
# 显示匹配行前后3行内容
grep -A 3 -B 3 "error" /var/log/messages
# 使用PCRE正则表达式
grep -P "\d{3}-\d{4}" access.log
top命令的隐藏功能:
1键显示所有CPU核心详情Shift+M按内存使用排序c显示完整命令路径W保存当前配置为默认视图iostat的磁盘分析:
bash复制# 每2秒刷新,显示扩展统计
iostat -x 2
# 关键指标解读:
# %util > 70% 表示磁盘繁忙
# await > 10ms 可能存在I/O瓶颈
网络排查组合拳:
bash复制# 查看ESTABLISHED连接数
ss -s | grep ESTAB
# 检查端口占用
sudo lsof -i :80
# 追踪网络延迟
mtr -w 8.8.8.8
RockyLinux 8使用systemd作为init系统,传统service命令其实是通过兼容层调用systemctl。推荐直接使用:
bash复制# 查看服务状态(带高亮)
systemctl --type=service --state=running
# 设置服务开机自启
sudo systemctl enable nginx
# 诊断服务启动失败
journalctl -u nginx --no-pager -n 50
除了crontab,systemd timer是更现代的选择:
ini复制# /etc/systemd/system/backup.service
[Unit]
Description=Daily backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
ini复制# /etc/systemd/system/backup.timer
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
bash复制sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer
systemctl list-timers --all
SSH安全配置:
bash复制# /etc/ssh/sshd_config 关键修改:
Port 2222 # 修改默认端口
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
ClientAliveInterval 300
防火墙策略优化:
bash复制# 允许必要端口
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
# 设置默认区域为drop
sudo firewall-cmd --set-default-zone=drop
# 保存规则
sudo firewall-cmd --runtime-to-permanent
现象:ifconfig命令不存在,ping不通外网
解决方案:
bash复制# 查看网卡名称
ip addr
# 激活网卡(假设网卡为ens192)
sudo nmcli con up ens192
# 安装网络工具包
sudo dnf install -y net-tools
排查步骤:
df -h查看分区使用情况du -sh /* | sort -h定位大目录bash复制# 查找超过100MB的日志
sudo find /var/log -size +100M -exec ls -lh {} \;
# 清空日志文件(不删除文件)
sudo truncate -s 0 /var/log/messages
典型场景:安装A软件需要libX-1.0,但B软件依赖libX-2.0
解决方法:
bash复制# 查看冲突详情
sudo dnf repoquery --duplicates
# 使用模块化仓库
sudo dnf module enable postgresql:12
# 排除特定包
sudo dnf install packageA --exclude=libX-2.0*
应急处理:
systemd.unit=rescue.targetbash复制mount -o remount,rw /sysroot
chroot /sysroot
fsck -y /dev/sda1
掌握这些核心命令和技巧后,日常系统管理效率能提升数倍。下次我们将深入探讨RockyLinux上的容器化部署和性能调优实战。