ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

U盘直装CentOS 8服务器环境配置完整指南

U盘直装CentOS 8服务器环境配置完整指南 去年帮朋友整理实验室机柜角落那台老戴尔R630还跑着一套好几年没动过的业务系统重启一次都提心吊胆。朋友的诉求很直接不换新系统怕旧业务软件出问题干脆找台机器重装CentOS 8把服务器环境原样复刻一遍。这个场景我太熟悉了——CentOS 8官方停止维护之后网上不少教程已经失效但存量服务器的运维需求一直都在。这篇文章就整理一份完整的U盘直装CentOS 8并配置服务器环境的实操记录从启动盘制作、安装向导选择、网络配置到LNMP环境搭建和日常维护都按我实际踩过的坑来写适合运维新手、实验室设备管理者和需要维护存量服务器的朋友直接参考。1. 为什么CentOS 8停止维护了还要装选型背后的现实考量1.1 存量系统的惯性比想象中大很多朋友可能觉得CentOS 8在2021年底就停止维护了现在新装系统为什么还要选它我在实际维护中遇到的真实情况是不少企业内部系统、科研项目的运行环境是当年基于CentOS 8编译和调优的依赖库版本、内核参数、PHP扩展都跟这个发行版深度绑定。换到CentOS Stream或者Rocky Linux表面上兼容但真跑起来总会遇到个别软件包行为不一致的问题。更现实的是很多老设备的驱动和固件只在旧内核上有完美支持新系统装上去网卡认不出来、RAID卡驱动加载失败的情况并不少见。所以这类场景下的最优解往往是找同样版本的CentOS 8重新部署一套相同环境保证行为和原来完全一致。这不是保守而是稳定优先。如果你是全新项目没有任何历史包袱我反而建议直接用新的兼容发行版没必要刻意装CentOS 8。判断标准就一条这台机器是拿来跑存量业务还是建新环境。存量业务选CentOS 8完全合理新项目请向前看。1.2 CentOS 8、CentOS Stream与Rocky Linux的差异简单梳理一下这几个系统的关系方便你对照自己的场景做选择发行版定位更新节奏适合场景CentOS 8.5.2111最后一个CentOS 8版本已停止维护存量系统复刻、离线内网环境CentOS StreamRHEL的上游滚动版持续更新开发测试、想提前体验新特性Rocky Linux 8/9RHEL的下游兼容版持续维护新部署、需要长期稳定更新我个人对CentOS 8的态度是它生命周期结束了但并没有“变废”。系统本身是稳定的坏掉的是软件源和补丁更新通道。只要解决好软件源问题它作为一台内网服务器跑上几年完全没问题。后面第5章我会专门讲yum源修复这是装完系统后最关键的收尾动作。2. 制作U盘安装盘兼容性是第一个坑2.1 工具选型对比Ventoy、Rufus还是dd制作启动盘的方法很多我三种都试过结论是静态装机少、偶尔装一台选Ventoy追求单次写入简单直接选Rufus你本来就在Linux环境里用dd最快。工具平台核心优势注意点VentoyWindows/Linux一次制作多次使用直接拖ISO进U盘即可需要U盘容量足够建议16GB以上RufusWindows经典稳定分区类型可手动控制每次换镜像需要重新写入dd命令Linux最底层、最直接容易写错目标盘符务必确认我日常最常用Ventoy因为它最大的好处是同一个U盘可以同时放CentOS 8、Ubuntu Server、Windows安装镜像开机时自己选。做服务器维护的人手里有几个常用镜像太正常了不用每次找个新U盘重新烧录。2.2 镜像选择DVD版还是Minimal版CentOS 8最常用的镜像有两种DVD版约4GB和Minimal版约2GB。这里我强烈建议安装服务器环境用Minimal镜像原因有两个减少不必要组件DVD版自带图形界面和大量桌面软件包服务器根本用不上还多占磁盘空间、增加被攻击面。安装速度快DVD版在安装时可作为本地软件源但实际部署中我们最终都会切到网络源Minimal装完直接联网装需要的东西更干净。下载镜像务必认准官方源vault.centos.org或国内镜像站下载后用下面命令校验哈希值防止下到被篡改的文件# 下载后执行对比输出结果是否一致 sha256sum CentOS-8.5.2111-x86_64-boot.iso我记得8.5.2111是CentOS 8的最终版本文件名里带这个版本号的直接下就对了。2.3 U盘启动与BIOS设置的兼容性排查做好启动盘后插到目标机器上开机按F2/F12/Del进入BIOS不同品牌按键不同戴尔是F2惠普是F9联想台式机是F12。这里最容易踩的坑有三个Secure Boot必须关掉。CentOS 8虽然理论上支持Secure Boot但很多老服务器的固件实现有bug开着Secure Boot会导致引导直接卡死或黑屏。进BIOS找到Secure Boot设为Disabled能省掉90%的启动问题。启动模式要分清UEFI还是Legacy。如果机器原来装的是老系统磁盘是MBR分区表那U盘也要用Legacy模式引导。两个模式引导出来的安装界面一模一样但后续分区时会决定你用GPT还是MBR建议装之前先确认好。U盘插在哪个接口也有讲究。我遇到过一台机器U盘插前面板USB3.0口死活不识别换到机箱后置USB2.0口一次就过了。这类问题没有规律可循排查时换个接口试试是成本最低的手段。3. 安装向导实操把每一步选对3.1 语言、时区与键盘布局U盘引导进入安装界面后第一屏选择语言。这里我的习惯是选English而不是中文原因很实在终端环境下的报错信息、日志输出几乎都是英文安装时用英文界面后面排查问题时你看到的路径和术语都是对得上的减少翻译带来的歧义。接着设置时区为Asia/Shanghai键盘默认us即可。如果你后面计划用SecureCRT、Xshell这类终端工具连服务器键盘布局保持默认最省心因为中文输入法相关的东西在服务器端本来就不需要。3.2 磁盘分区方案手动分区避免后期麻烦安装界面中“Installation Destination”这一步是最关键的。服务器用途的机器我会毫不犹豫选择自定义Custom分区不碰自动分区。自动分区虽然快但默认会把大部分空间分给/home目录而服务器上/home通常没什么数据浪费了宝贵空间。以下是我在2TB数据盘、512GB系统盘这类常见服务器配置上用的分区策略挂载点建议容量文件系统用途说明/boot1GBxfs引导分区1GB留足内核更新空间/100GBxfs根分区系统软件都装这里留有余量swap16GBswap交换分区物理内存的1到2倍即可/data剩余全部xfs业务数据、数据库文件独立存放分区格式方面CentOS 8默认文件系统是xfs直接沿用就好。是否用LVM如果你不确定以后要扩容建议新建分区时选择LVM因为LVM逻辑卷可以在线扩容普通分区扩容必须借助工具且动静很大。但反过来如果这台机器完全是固定用途、后期不折腾直接用标准分区反而更直观系统坏了还能用救援模式挂着看。3.3 软件环境选择与安装源“Software Selection”里选择Minimal最合适。有些教程会让你选带“Server with GUI”的选项装完了有个图形界面还能用浏览器。我的看法是服务器图形界面除了消耗内存、增加图形漏洞之外没有任何必要。你远程维护用的是SSH不是一个坐在显示器前用鼠标点来点去的环境。另一个容易被忽略的点是“Installation Source”。如果使用Minimal镜像安装安装源默认是镜像本身附带的内容但软件包集合很精简。如果你有网络环境安装源保持“默认的网络源”即可但如果你的机器在内网、没有外网连接安装源必须指向本地镜像或DVD镜像否则后面安装过程可能卡在软件包解析上。曾经帮客户装一台油田内网的机器装到一半提示找不到软件包最后确认就是安装源没有切到本地介质。3.4 安装过程中的常见卡点与日志查看安装过程一般10到20分钟进度条卡住不动的现象偶尔会出现多数情况是在下载更新或处理软件包依赖。按CtrlAltF1可以切到安装日志界面看具体卡在哪一步。我第一次装时看到卡在“Starting installer, one moment...”足足5分钟差点以为死机了实际是在初始化显卡驱动。这种场景耐心等就行。如果进度条长时间完全不动且日志也没有新输出多为硬件兼容问题重点检查磁盘是否被正确识别、磁盘控制器是否需要额外驱动。老服务器装CentOS 8常见的有LSI RAID卡、某些板载NVMe控制器识别不全的情况进BIOS里把SATA模式从RAID改成AHCI往往能解决。4. 首次开机网络、SSH与防火墙基础4.1 用nmcli配置静态IP与DNS装完系统重启用root登录第一件事就是把网络配置好。CentOS 8默认使用NetworkManager管理网络命令行工具是nmcli。很多人习惯直接改/etc/sysconfig/network-scripts/ifcfg-*文件但新版系统重启后配置容易失效正确的做法是用nmcli操作# 查看网卡名称常见的比如ens192、ens33 nmcli device status # 为网卡配置静态IP注意要指定连接名称通常与网卡名一致 nmcli connection modify ens192 ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 223.5.5.5 8.8.8.8 # 重新加载配置使其生效 nmcli connection up ens192配置完成后用ip addr和ping -c 3 www.baidu.com验证网络是否通了。ping不通时最优先检查网关和DNS而不是折腾网卡配置。为方便记住这台机器顺手设置一下主机名hostnamectl set-hostname web-server-01写进/etc/hosts里后面内网解析自己机器名不会再走DNS查询。4.2 开启SSH远程登录与密钥认证服务器装上后大概率是放机房或者角落里的总不能用显示器键盘操作所以SSH是必须的。CentOS 8 Minimal默认安装了openssh-server但服务不一定启动# 启动并设置开机自启 systemctl start sshd systemctl enable sshd # 查看端口是否监听 ss -lntp | grep :22到这里其实已经可以用密码远程登录了。但我强烈建议再进一步配置SSH密钥登录密码留着做应急备用。操作分两步走本机生成密钥对并拷贝到服务器ssh-keygen -t ed25519 -C your_emailexample.com ssh-copy-id root192.168.1.100随后修改服务器的/etc/ssh/sshd_configPermitRootLogin prohibit-password PasswordAuthentication no改完重启sshd服务再开一个新终端测试密钥登录是否成功确认没问题再关旧连接。这步操作能避免以后纯密码登录被暴力破解的风险。4.3 防火墙与SELinux的边界CentOS 8默认的firewalld防火墙是开启状态常用的放行命令如下# 放行SSH、HTTP、HTTPS服务 firewall-cmd --permanent --add-servicessh firewall-cmd --permanent --add-servicehttp firewall-cmd --permanent --add-servicehttps # 重载配置生效 firewall-cmd --reload # 查看当前规则 firewall-cmd --list-all关于SELinux很多教程直接叫你setenforce 0关掉。我的态度是先别急着关尝试在enforcing模式下跑业务真遇到权限报错再看情况处理。用getenforce查看当前状态如果报错日志里明确提示SELinux拦截AVC denied字样再针对性地调整布尔值或文件上下文标签实在不行才考虑关闭。全公司服务器都比别人多一层安全防护这种习惯能省下不少后面补漏洞的心力。5. 配置服务器环境从修复yum源到LNMP环境落地5.1 CentOS 8停止维护后的yum源修复这是CentOS 8装机后最绕不开的一步。系统生命周期结束后官方默认的mirrorlist源已经无法访问直接执行dnf install会报错“Failed to download metadata”。处理办法是把源切换到vault源或者国内镜像站的archive源。操作要点是替换/etc/yum.repos.d/目录下几个repo文件里的baseurl# 以CentOS-Base.repo和CentOS-AppStream.repo为例 # 把源地址改成如下结构 baseurlhttps://mirrors.cloud.tencent.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ # 注释掉mirrorlist行如果懒得一个个改文件可以一条命令把旧的.repo文件挪走重新下载一个写好的源配置mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 手动创建CentOS-Base.repo内容指向可用的镜像站 # 也可以直接用阿里云/腾讯云提供的centos-vault源模板弄完后执行dnf clean all dnf makecache能正常检索到软件包就说明源修好了。这一步不做后面所有软件都装不上。5.2 安装基础工具与开发组件源修复后先把基础工具补齐。以下是我每次装机都会装的一套组合dnf install -y vim wget git curl net-tools bash-completion dnf groupinstall -y Development Tools dnf install -y tree lrzsz sysstat lsof解释几个容易被忽略的net-tools提供ifconfig和netstat虽然新系统不推荐但排查问题时很多人肌肉记忆还是敲这两个命令sysstat提供sar、iostat等性能查看工具服务器跑一段时间后看负载和磁盘IO全靠它bash-completion装完要重新登录终端才生效让tab补全能识别dnf子命令和systemctl服务名。5.3 部署Nginx、MySQL与PHP运行环境服务器环境按需求不同组合方式千差万别。这里以最常见的Web服务器环境为例用包管理器搭建一套Nginx MySQL PHP。首先安装Nginxdnf install -y nginx systemctl start nginx systemctl enable nginx # 验证是否正常运行 curl -I http://localhost然后是数据库。CentOS 8自带的MySQL模块是8.0版本直接安装dnf install -y mysql-server systemctl start mysqld systemctl enable mysqld # 初始化安全配置设置root密码等 mysql_secure_installationPHP的安装容易踩坑。CentOS 8默认的PHP版本较低7.2左右且各种扩展包分散在不同模块里。我的建议是先查看默认模块版本是否满足需求再用模块流方式安装dnf module list php # 启用指定版本的模块比如8.0 dnf module enable php:8.0 dnf install -y php php-fpm php-mysqlnd php-gd php-mbstring装完PHP后要让Nginx能处理PHP请求需要改/etc/nginx/conf.d目录下的配置文件把server块里index加上index.php同时配置location ~ .php$ 部分指向php-fpm。这里最偷懒的办法是找一份现成的LNMP配置模板改改比从零写要稳得多。最后记得放行防火墙firewall-cmd --permanent --add-servicehttp firewall-cmd --permanent --add-servicehttps firewall-cmd --reload用浏览器访问服务器IP看到Nginx默认页面就成功了。再写一个phpinfo文件验证PHP环境echo ?php phpinfo(); /usr/share/nginx/html/index.php5.4 服务管理、开机自启与验证到这里整套环境的服务都要纳入systemd管理。常用命令整理如下操作命令说明设置开机自启systemctl enable nginx重启后自动运行取消自启systemctl disable mysqld平时不需要可关闭查看运行状态systemctl status php-fpm显示是否active和最近日志重启服务systemctl restart nginx改配置后执行查看服务日志journalctl -u nginx -n 50只看最近50行日志验证整条链路是否跑通我用一个很土但很有效的方法在服务器上执行curl http://localhost能返回页面内容再从另一台电脑浏览器访问IP也能打开说明Nginx工作正常执行mysqladmin -uroot -p ping返回mysqld is alive说明数据库正常PHP写完测试文件能渲染出phpinfo页面三个组件就都通了。6. 装完之后的日常维护建议6.1 数据备份先备份配置再备份数据服务器环境搭好之后习惯性把所有配置文件的“正常状态”记录下来方便出问题时对照恢复。我自己维护的每台服务器都有一个备份目录定期打包备份tar czf /data/backup/etc_backup_$(date %Y%m%d).tar.gz /etc/nginx /etc/php-fpm.d /etc/my.cnf数据库数据用mysqldump定时全量备份放在/data/backup下配合crontab每天凌晨执行。老机器上跑的存量系统最高优先级就是“别丢数据”备份策略宁可冗余不可缺失。6.2 监控磁盘、内存与服务状态服务器跑起来后日常巡检不需要频繁但要有固定周期。我一般每周看一次磁盘使用率每月看一次内存与CPU负载趋势# 磁盘使用率重点看根分区和/data分区 df -h # 内存、swap使用情况 free -h # 系统负载 uptime一旦发现根分区使用率超过80%就要考虑清理dnf缓存、journald日志或者扩容分区了。日志文件要注意定期清理journal日志如果不限制大小能慢慢吃满磁盘# 查看journal日志占用的磁盘空间 journalctl --disk-usage # 只保留最近3天的日志 journalctl --vacuum-time3d6.3 内核与驱动老机器稳定压倒一切CentOS 8这个系统有个特点内核和用户态软件栈是强绑定的。老服务器装完CentOS 8如果运行正常就不要轻易执行dnf update去升级内核。我印象很深的是有台机器稳定跑了十个月某次例行更新把内核从4.18.0升级到4.18.0-477开机后存储卡驱动加载顺序变了挂在/data上的LVM卷没起来业务直接中断。所以维护老服务器的一个核心原则是能用就不动动之前先备份更新之前看清楚要更新的包是什么。内核参数优化、驱动调整这类操作一定要在维护窗口执行留好回滚方案。说白了运维老CentOS 8系统追求的不是新功能而是确定性和稳定性。最后再分享一个我个人的习惯每次装完CentOS 8系统我会把这台机器的主机名、IP、分区表、装过的服务、改过的配置文件全部记在一个文件里放到/etc目录下专门留存。半年后再回来看这台机器翻一下这份记录比翻聊天记录和浏览器收藏夹有效率得多。U盘直装CentOS 8这件事本身不难难的是装完之后这台机器在你的维护体系里能不能活得明明白白。
返回列表