ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CentOS 7 安装与配置全指南:从规划到优化,新手避坑实录

CentOS 7 安装与配置全指南:从规划到优化,新手避坑实录 1. 项目概述为什么今天还要折腾CentOS 7如果你点开了这篇文章大概率是正准备搭建一个服务器环境或者在学习Linux系统管理。在2024年面对众多Linux发行版选择CentOS 7可能会让你有些犹豫——毕竟它的官方支持周期已经结束。但现实情况是大量企业遗留系统、特定的商业软件以及许多经典的教学和实验环境依然运行在CentOS 7上。它就像一位经验丰富但已退休的老师傅其稳定性和广泛的生态文档依然是新手入门和特定场景下不可多得的“教科书”。今天我就带你完整走一遍CentOS 7 64位系统的安装流程这不仅仅是点击“下一步”的操作指南更会穿插我在多年运维中积累的磁盘分区思路、网络配置心法以及安装后那些“教科书不会告诉你”的优化设置。无论你是想在虚拟机里搭建一个学习沙盒还是为老旧硬件寻找一个稳定的服务器系统这篇手把手的实录都能让你避坑直达。2. 安装前的核心准备介质、环境与规划安装操作系统就像盖房子动工前的规划和材料准备决定了后续的稳固与便捷。跳过这一步你可能会在安装中途或之后遇到各种令人头疼的问题。2.1 获取官方安装镜像与验证首先你需要CentOS 7的64位安装镜像。虽然官方已经停止更新但历史版本的镜像依然可以从可靠的镜像站获取例如阿里云开源镜像站或清华大学开源镜像站。搜索“CentOS 7.9 2009”版本这是CentOS 7的最终更新版本相对最完善。你需要下载的是DVD镜像通常文件名为CentOS-7-x86_64-DVD-2009.iso大小约4.4GB它包含了安装所需的基础软件包适合绝大多数离线安装场景。Minimal镜像虽然更小但安装后需要网络来补充大量软件对于新手或网络不稳定的环境并不友好。注意下载完成后务必进行校验。镜像站通常会提供SHA256或MD5校验文件。在Windows下可以使用CertUtil命令在Linux/Mac下使用sha256sum命令来比对校验值。这一步能确保你下载的镜像完整无误避免安装过程中因文件损坏而报错。2.2 安装环境选择物理机、虚拟机与要点接下来是选择安装载体物理服务器/老旧电脑这是最直接的方式。你需要准备一个至少8GB的U盘使用工具如RufusWindows或dd命令Linux/Mac将ISO镜像刻录成可启动安装盘。刻录时Rufus请选择“DD镜像模式”这兼容性更好。虚拟机推荐新手这是学习和测试的最佳环境。VMware Workstation Player免费或VirtualBox都是优秀的选择。创建虚拟机时关键参数设置如下系统类型选择Linux版本选“CentOS 7 64位”。内存至少分配1024MB如果后续要跑服务建议2048MB或以上。硬盘创建新虚拟磁盘类型用默认的SCSI即可大小建议20GB以上并选择“拆分成多个文件”便于迁移。网络适配器初期选择“NAT模式”这样虚拟机会通过宿主机上网无需额外配置最适合安装阶段。我个人更推荐虚拟机起步因为它允许你随时快照、回滚大胆尝试各种操作而不必担心搞坏物理机。2.3 磁盘分区规划最重要的思维预演这是安装过程中最具技术含量的一步也是决定系统后期是否易于管理的关键。对于新手可以使用安装程序提供的“自动配置分区”。但如果你想知其所以然或者有特定需求如希望/home目录独立以便重装系统时不丢个人数据就需要理解手动分区的思路。对于一个典型的20GB虚拟磁盘或小型服务器我建议采用以下分区方案它兼顾了简单与实用挂载点建议大小文件系统类型说明与理由/boot1GBext4/xfs存放系统内核和启动引导文件。1GB足够独立出来可以避免内核更新塞满根分区导致无法启动。swap2GBswap交换分区相当于虚拟内存。大小通常为物理内存的1-2倍但如今内存充裕2GB足矣主要用于休眠支持。/剩余所有空间xfs (CentOS 7默认)根目录存放系统所有其他文件和目录。对于学习环境这样最简单。实操心得对于生产环境的服务器我强烈建议将/home、/var存放日志和动态数据甚至/opt安装第三方软件单独分区。这样做的巨大好处是当某个分区如日志暴增塞满/var被写满时不会导致整个系统崩溃只会影响对应的服务。同时重装系统时可以格式化/分区而保留/home分区用户数据安然无恙。这就是“规划优于救火”的运维思维。3. 图文详解安装全过程现在我们启动虚拟机或从U盘引导物理机开始正式的安装旅程。我会标注出每一个容易出错的细节。3.1 引导与安装程序初始化选择安装模式屏幕出现第一个界面选择第一项Install CentOS 7直接回车。第二项Test this media install CentOS 7会先检测安装介质完整性耗时较长除非你怀疑镜像有问题否则不必选。语言与键盘设置接下来选择安装过程显示的语言这里选择中文-简体中文。但请注意我强烈建议将“系统语言”设置为English (United States)。这是因为绝大多数服务器软件、日志和错误信息都是英文的使用英文环境可以避免后续开发、排错时出现乱码减少很多不必要的麻烦。键盘布局保持汉语即可。进入主配置界面你会看到一个图形化的配置总览界面所有带黄色感叹号的项都需要配置。我们按顺序来。3.2 关键配置项拆解日期和时间点击进入首先在地图上点击亚洲然后城市选择上海即使你在其他时区选择东八区即可。记得将右上角的“网络时间”开关打开这样系统会自动通过NTP同步时间。时间同步对于分布式系统、日志分析至关重要。键盘保持默认无需改动。语言支持在“已安装的语言”中可以添加中文支持这样安装好的系统可以显示中文。但如前所述系统语言仍建议用英文。安装源因为我们使用的是完整的DVD镜像安装程序会自动检测到本地介质显示“本地介质”无需改动。如果你使用Minimal镜像网络安装这里需要配置网络和镜像源地址。软件选择这是影响系统初始状态的关键步骤。默认选中的是最小安装只有一个纯命令行界面。对于新手我推荐选择带GUI的服务器并在右侧勾选兼容性程序库、开发工具。这样安装后你既有一个图形桌面方便操作又具备了编译软件所需的基础开发环境如gcc, make避免日后频繁追加安装。安装目的地磁盘分区点击进入。你会看到之前创建的虚拟磁盘。直接点击它选择“我要配置分区”然后点击左上角“完成”会进入手动分区界面。点击左下角“”号按上一节的规划依次创建分区。创建/boot挂载点输入/boot期望容量输入1G。创建swap挂载点无需输入文件系统类型选择swap期望容量输入2G。创建/挂载点输入/期望容量留空表示占用剩余所有空间文件系统类型选择xfs。最终确认分区布局无误后点击左上角“完成”在弹出的摘要中点击“接受更改”。网络和主机名点击进入首先在顶部主机名输入框里给你的机器起个名字比如centos7-local。然后务必打开右上角以太网连接的开关使其显示“已连接”。系统会自动通过DHCP获取IP地址。你可以点击右下角“配置”来设置静态IP但对于初次安装动态获取即可。记住这里获取到的IP地址如192.168.1.100后续可以通过SSH连接。安全策略初次安装可以跳过保持默认。3.3 开始安装与root密码设置所有黄色感叹号消失后点击右下角“开始安装”。安装过程会持续10-30分钟取决于你的磁盘速度。在安装进度条运行的同时你需要设置ROOT密码和创建用户。ROOT密码点击“ROOT密码”进行设置。Root是系统的超级管理员密码必须足够复杂。如果密码强度太低安装程序会提示你需要点击两次“完成”来确认。务必牢记此密码。创建用户虽然你可以一直用root操作但这是极不安全的做法。最佳实践是创建一个普通用户用于日常登录和操作仅在需要时使用sudo命令临时获取管理员权限。点击“创建用户”输入用户名如admin、全名并设置密码。最重要的是勾选“将此用户设为管理员”这会将用户加入wheel组使其拥有sudo权限。安装完成后点击右下角“重启”按钮。系统重启后你会看到初始化设置界面。4. 首次启动后的必要配置与优化系统重启后会有一个简单的初始化设置同意许可协议然后就可以用你创建的用户登录了如果安装了GUI会进入图形登录界面如果是最小安装则是命令行登录。登录后别急着开始用以下几个步骤能让你的系统更好用、更安全。4.1 连接网络与更新系统首先确认网络通畅。在终端里输入ping www.baidu.com看是否能收到回复。如果不行检查网络设置。接着进行系统更新。虽然CentOS 7已停止更新但你的镜像可能不是最新的2009版本或者有一些基础更新。打开终端执行sudo yum update -y这个命令会更新所有已安装的软件包到镜像中包含的最新版本。-y参数表示自动确认所有询问。实操心得在生产环境中执行yum update前最好先yum check-update查看有哪些更新评估影响。对于关键服务器建议先在测试环境更新观察无误后再在生产环境操作。这就是所谓的“变更管理”意识。4.2 配置静态IP地址可选但重要虚拟机使用DHCP没问题但如果你希望服务器有一个固定的IP这对于部署Web服务、数据库等至关重要就需要配置静态IP。找到网卡配置文件sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33网卡名可能是ens32、eth0等可以用ip addr命令查看。修改文件内容如下TYPEEthernet BOOTPROTOstatic # 将dhcp改为static NAMEens33 DEVICEens33 ONBOOTyes # 确保是yes开机自启 IPADDR192.168.1.100 # 你想要的静态IP NETMASK255.255.255.0 # 子网掩码 GATEWAY192.168.1.1 # 你的网关地址通常是路由器IP DNS1114.114.114.114 # 主DNS DNS28.8.8.8 # 备选DNS保存退出后重启网络服务sudo systemctl restart network。4.3 安装基础工具与优化最小安装或甚至GUI安装都会缺少一些常用工具。我习惯第一时间安装一个“全家桶”sudo yum install -y wget curl vim bash-completion net-tools lrzsz treewget/curl网络下载工具。vim比默认vi更强大的文本编辑器。bash-completion提供命令自动补全提升效率神器。net-tools包含ifconfig、netstat等传统网络工具虽然ip命令是未来但很多脚本仍依赖它。lrzsz可以在SecureCRT/Xshell等终端工具中直接通过rz/sz命令上传下载文件极其方便。tree以树状图列出目录结构。关闭SELinux针对学习环境SELinux是强大的安全模块但过于严格的策略常导致各种权限问题让新手崩溃。在学习和测试环境可以暂时将其设置为“宽容模式”sudo setenforce 0 # 临时生效 sudo sed -i s/SELINUXenforcing/SELINUXpermissive/g /etc/selinux/config # 永久生效需重启重要提示在生产环境中不建议直接关闭SELinux而是应该学习如何配置正确的策略。但在你摸清门道之前宽容模式能减少很多障碍。5. 常见问题与故障排查实录即使按照步骤操作你也可能会遇到一些“坑”。这里记录了几个最常见的问题和我的解决思路。5.1 安装过程中找不到磁盘或硬盘现象在“安装目的地”步骤看不到任何可用磁盘。原因与解决虚拟机场景最常见的原因是虚拟机磁盘控制器类型不兼容。CentOS 7对旧的IDE控制器支持更好。解决方法是关闭虚拟机电源进入虚拟机设置将磁盘的“控制器类型”从默认的SCSI或SATA改为IDE然后重新启动安装。物理机场景可能是磁盘模式问题。某些RAID卡或NVMe硬盘需要加载额外的驱动。在安装引导界面修改启动参数在Install CentOS 7选项上按Tab键在行尾添加nodmraid禁用软RAID或ahci.modeenable等参数尝试。更彻底的方法是制作包含所需驱动的定制安装盘。5.2 系统安装后无法启动卡在“dracut”界面现象重启后不是进入系统而是出现dracut:/#这样的命令行提示符。原因通常是引导程序GRUB安装位置错误或者内核镜像initramfs与磁盘驱动不匹配。排查步骤在dracut提示符下尝试ls /dev/sd*查看能识别哪些磁盘。你可能发现系统盘不是你以为的sda。重启服务器在GRUB菜单如果出现界面按e键编辑启动参数。找到以linux16开头的那一行查看root后面的设备名是否正确例如是否是root/dev/sdb1而非/dev/sda1。可以尝试修改。如果GRUB菜单都不出现说明引导程序损坏。你需要使用安装U盘进入“救援模式”Troubleshooting - Rescue a CentOS system然后重新安装GRUBchroot /mnt/sysimage # 切根到你的系统 grub2-install /dev/sda # 假设你的磁盘是sda grub2-mkconfig -o /boot/grub2/grub.cfg5.3 网络连接失败无法获取IP现象系统安装后ping不通外网ip addr显示网卡没有IP地址。排查检查物理连接/虚拟机网络设置确认网线、虚拟机网络适配器是否为NAT或桥接状态正常。检查NetworkManager服务CentOS 7默认使用NetworkManager管理网络。确保其已启动sudo systemctl status NetworkManager。如果没有运行启动它sudo systemctl start NetworkManager。检查网卡是否启用ip link show查看网卡状态如果显示DOWN使用sudo ip link set ens33 up启用它ens33换成你的网卡名。查看DHCP日志sudo journalctl -u NetworkManager --since 5 minutes ago可以查看最近5分钟的网络管理器日志里面常有获取IP失败的详细原因。5.4 忘记root密码怎么办这是一个经典问题。解决方法是通过单用户模式重置。重启系统在GRUB启动菜单界面选中要启动的CentOS条目按e键进入编辑模式。找到以linux16开头的一行将光标移动到最后先输入一个空格然后添加rd.break参数。按CtrlX启动。系统会进入一个紧急救援模式的shell。依次输入以下命令mount -o remount,rw /sysroot # 以读写方式重新挂载根分区 chroot /sysroot # 切换根目录 passwd root # 修改root密码输入两次新密码 touch /.autorelabel # 非常重要这会让SELinux在下次启动时重新标记所有文件上下文 exit reboot系统重启后就可以用新密码登录了。6. 从安装到日常高效使用习惯养成系统装好了问题也能解决了最后分享几个让我受益多年的日常使用习惯帮助你真正用好CentOS。善用sudo告别root裸奔永远不要直接以root用户登录进行日常操作。用你创建的具有sudo权限的普通用户登录。需要执行特权命令时在前面加sudo。这能极大降低误操作毁灭系统的风险。配置SSH密钥登录抛弃密码在本地机器生成SSH密钥对ssh-keygen然后将公钥~/.ssh/id_rsa.pub的内容复制到服务器的~/.ssh/authorized_keys文件中。之后登录无需输入密码且更安全。记得在服务器SSH配置中禁用密码登录PasswordAuthentication no。熟悉systemctl管理服务CentOS 7使用systemd服务管理命令是systemctl。记住几个核心命令sudo systemctl start nginx启动sudo systemctl stop nginx停止sudo systemctl restart nginx重启sudo systemctl status nginx查看状态sudo systemctl enable nginx开机自启sudo journalctl -u nginx -f查看该服务的实时日志建立自己的软件安装源虽然CentOS官方源停止了但EPELExtra Packages for Enterprise Linux源依然活跃提供了大量额外的软件包。安装它sudo yum install epel-release。对于更新的软件可以考虑使用第三方仓库如Remis RPM repository常用于PHP版本但需谨慎评估稳定性。养成查看日志的习惯系统出问题第一反应应该是看日志。/var/log/messages系统主日志、/var/log/secure认证安全日志、/var/log/boot.log启动日志以及各个服务自己的日志目录如/var/log/nginx/。使用tail -f /var/log/messages可以实时追踪日志动态。安装一个操作系统只是起点。CentOS 7作为一个经典的、文档浩如烟海的平台是你深入理解Linux服务器管理的绝佳跳板。从配置服务、编写脚本、到性能调优和安全加固每一步的实践都会积累宝贵的经验。当你在这个系统上踩过足够多的坑并成功爬出来后再面对任何新的发行版或云环境你都会有一种从容不迫的底气。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进