尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CentOS 7 安装实战:从镜像下载到系统配置的完整指南

CentOS 7 安装实战:从镜像下载到系统配置的完整指南 1. 从零开始为什么今天还要安装CentOS 7如果你正在看这篇文章大概率是刚接触Linux运维、后端开发或者需要搭建一个稳定的服务器环境。面对市面上Ubuntu、Debian、Rocky Linux等众多选择你可能会疑惑为什么还要折腾一个已经停止主流维护的CentOS 7这恰恰是我想和你聊的第一个问题。CentOS 7的生命周期支持ELS已经结束这意味着它不再接收常规的安全更新和错误修复。然而在现实的生产和开发环境中它依然有着顽强的生命力。很多遗留的企业应用、特定的商业软件比如一些老版本的Oracle、WebLogic以及大量的内部系统其部署和运行环境依然被严格限定在CentOS 7上。此外对于学习者而言CentOS 7的RPM包管理、systemd服务管理以及其经典的稳定特性是理解传统企业级Linux的绝佳样本。所以安装CentOS 7在今天可能不是为了追求前沿而是为了兼容历史、满足特定需求或是完成一次经典的系统管理启蒙。这次安装我们将聚焦于最经典的场景在一台物理机或虚拟机如VMware、VirtualBox上全新安装一个64位的CentOS 7最小化系统。我会带你走完从镜像下载、启动介质制作到分区规划、软件包选择直至完成基础配置的完整链路。过程中我会穿插大量我过去几年在真实服务器上部署时踩过的坑和总结的技巧这些是官方文档不会告诉你的“实战经验”。我们的目标不仅仅是让系统跑起来更是让你理解每一个步骤背后的“为什么”从而在遇到任何变体需求比如无图形界面安装、网络安装、自动化部署时都能游刃有余。2. 战前准备镜像、介质与启动环境安装任何操作系统准备工作的重要性占了一半。草率的准备往往会导致安装过程中断、数据丢失甚至需要从头再来。2.1 获取正确的安装镜像首先你需要一个CentOS 7的64位安装镜像。虽然官方主站已转向Stream版本但历史版本的镜像仍然可以从可靠的镜像站获取例如阿里云开源镜像站、清华大学开源软件镜像站等。这里有一个关键选择你需要决定下载哪个ISO文件。DVD ISO (CentOS-7-x86_64-DVD-2009.iso)这是最常用的版本大小约4.4GB。它包含了安装一个基本系统所需的绝大多数软件包适合绝大多数有网络或离线安装的场景。对于新手和大多数用途我强烈推荐使用这个版本。Everything ISO (CentOS-7-x86_64-Everything-2009.iso)大小约10GB包含了完整的软件仓库。除非你确定需要在完全离线的环境中安装大量非常用软件包否则通常不需要它。Minimal ISO (CentOS-7-x86_64-Minimal-2009.iso)大小约1GB只包含能启动系统并完成最基本安装的核心包。安装后的系统极其精简需要手动配置网络后再通过yum安装其他软件。适合对系统纯净度有极致要求或用于构建Docker基础镜像的场景。注意务必核对下载文件的SHA256校验和这是确保镜像文件在下载过程中未损坏或被篡改的关键一步。从镜像站下载时通常旁边会有一个sha256sum.txt文件在Linux或Mac下可以使用sha256sum 文件名.iso命令进行校验。2.2 制作启动介质U盘还是光盘有了ISO文件你需要将其制作成可启动的安装介质。U盘推荐这是目前最主流、最方便的方式。你需要一个容量至少8GB的U盘。制作过程会清空U盘内所有数据请务必提前备份。在Windows下不要简单地复制ISO文件到U盘。你需要使用诸如Rufus、Ventoy这类工具。以Rufus为例选择你的U盘设备在“引导类型选择”处点击“选择”找到你下载的CentOS 7 ISO文件其他选项通常保持默认分区方案为MBR或GPT取决于你的机器目标系统类型为BIOS或UEFI然后点击“开始”。Rufus会正确处理引导信息将U盘制作成可启动安装盘。在Linux/macOS下可以使用dd命令但这是一把“双刃剑”命令错误可能导致磁盘数据丢失。命令通常为sudo dd if/path/to/centos.iso of/dev/sdX bs4M statusprogress sync。请万分小心of后面的/dev/sdX必须是你的U盘设备标识符如/dev/sdb而不是某个分区如/dev/sdb1。一个更安全的替代方案是使用Etcher工具它图形化界面友好且不易出错。光盘如果服务器是老式设备可能仍需要DVD光盘刻录。使用任何光盘刻录软件如ImgBurn、macOS磁盘工具选择“刻录镜像到光盘”即可。2.3 配置虚拟机如使用VMware/VirtualBox对于学习和测试虚拟机是完美的沙盒。这里以VMware Workstation为例有几个细节需要注意创建虚拟机时客户机操作系统选择“Linux”版本选择“CentOS 7 64位”。这会让VMware应用一些针对该系统的优化设置。固件类型选择“BIOS”或“UEFI”。如果你的物理机是较新的设备2015年后通常支持UEFI。UEFI启动更快、支持更大的磁盘和更安全。但如果你要模拟老服务器或不确定选择BIOS兼容性更好。这个选择会影响后续分区时的引导装载程序安装位置。网络适配器默认的“NAT”模式可以让虚拟机共享主机IP上网适合大多数安装场景。“桥接模式”会让虚拟机获取一个和主机同网段的独立IP更像一台真实机器。处理器和内存对于最小化安装1核CPU、1GB内存足以启动安装程序。但如果你计划安装图形界面或运行服务建议至少2核、2GB内存。磁盘选择“创建新虚拟磁盘”。类型用默认的SCSI即可。大小建议至少20GB并选择“将虚拟磁盘拆分成多个文件”这样迁移和备份更方便。最关键的一步在自定义硬件时将新创建的虚拟磁盘的“虚拟设备节点”设置为SCSI 0:0即第一块磁盘。这能避免一些罕见的引导问题。3. 安装程序详解从引导到分区将启动介质插入服务器或配置好虚拟机启动项后开机。你会看到CentOS 7的安装引导菜单。3.1 引导菜单与测试介质第一个界面通常有三个选项Install CentOS 7直接开始安装。Test this media install CentOS 7先检测安装介质的完整性再安装。对于U盘安装我强烈建议第一次时选择此项。我曾经遇到过因为U盘质量问题或制作不当安装到一半报错的情况跑一遍介质检测能提前排除这个风险。Troubleshooting用于修复已存在的系统或进入救援模式。选择第二项回车。检测过程可能需要几分钟如果所有检测都通过会自动进入图形化安装界面如果内存小于1GB则会进入文本模式。3.2 语言、时区与软件选择安装界面首先让你选择语言。这里选择的是安装过程的界面语言不是系统安装后的默认语言。为了方便可以选择中文。接下来是核心的“安装信息摘要”界面这里需要配置多项内容。本地化日期和时间点击进入在地图上点击你所在区域如Asia/Shanghai或手动选择。务必关闭“网络时间”同步直到系统安装完成并配置好网络后再开启否则安装过程可能会因网络等待而卡住。键盘保持默认即可。语言支持可以添加额外的语言包但基础安装后也可以再添加。软件安装源确认你的安装介质如DVD或U盘已被正确检测到。如果是网络安装则需要在这里配置网络仓库地址。软件选择这是决定系统面貌的关键一步。点击进入。最小安装这是我最推荐给服务器和初学者的选项。它只安装核心系统没有图形界面通过命令行管理。系统纯净、占用资源少、安全性相对更高强迫你学习使用命令行。带GUI的服务器如果你确实需要图形界面进行操作可以选择这个。它会安装GNOME桌面环境。其他变体如“基础设施服务器”、“文件及打印服务器”等会预装一些特定的服务组。对于新手建议从“最小安装”开始需要什么再用yum groupinstall命令安装软件组。系统安装位置即磁盘分区这是接下来要重点讲解的。KDUMP一个内核崩溃转储机制用于调试。对于学习或资源紧张的虚拟机可以关闭它能节省一点内存。网络和主机名可以先不在这里配置等系统安装完成后再配置更清晰。但如果你需要从网络源安装软件则需要在这里开启并配置网络例如在虚拟机NAT模式下通常只需打开以太网连接开关即可。3.3 磁盘分区手动规划的艺术点击“安装位置”进入磁盘分区界面。你会看到可用的磁盘例如/dev/sda。对于全新磁盘你需要选择“我要配置分区”然后点击完成。现在进入手动分区界面。对于服务器一个经典、安全的分区方案如下。点击“”号来创建挂载点/boot分区挂载点/boot期望容量1GiB文件系统xfs(CentOS 7默认) 或ext4为什么需要它这个分区存放系统内核、引导程序GRUB等启动所需的文件。将其独立出来即使根分区损坏只要/boot完好仍有希望修复系统。1GB空间对于CentOS 7来说绰绰有余。/分区根分区挂载点/期望容量剩余所有空间可以先不填满例如留20GB给/home文件系统xfs为什么需要它系统的根目录所有其他目录的起点。必须要有。/home分区可选但推荐挂载点/home期望容量20GiB或根据用户数据量决定文件系统xfs为什么需要它将用户数据家目录与系统文件分离。这样未来如果需要重装系统可以格式化/分区而保留/home分区用户数据无损。对于多用户服务器尤其重要。swap分区交换分区挂载点不设挂载点在“文件系统”中选择swap期望容量一个经验法则是当物理内存小于8GB时swap大小设为物理内存的1.5-2倍大于8GB时设为8-16GB即可。例如对于2GB内存的虚拟机可以设为4GiB。为什么需要它当物理内存不足时系统会将部分不常用的内存数据暂时移到swap空间防止程序崩溃。在现代服务器拥有大内存的情况下swap的角色更多是用于系统休眠Hibernate和应对极端的内存压力。重要提示在“分区方案”下你需要选择“标准分区”而不是LVM。对于初学者标准分区更直观易懂。LVM逻辑卷管理提供了更灵活的磁盘空间管理如在线扩容但概念更复杂我们可以在系统安装后再学习如何添加和使用LVM。分区创建完毕后在下方还有一个“引导装载程序”的选项。默认情况下GRUB引导程序会被安装到第一块磁盘的主引导记录MBR或UEFI系统分区ESP上这通常是正确的无需修改。点击“完成”系统会提示你“接受更改”确认后返回摘要界面。4. 收尾工作用户、密码与首次启动所有配置检查无误后点击右下角的“开始安装”。安装过程会持续一段时间期间你需要设置root密码和创建一个普通用户。4.1 设置root密码点击“ROOT密码”进行设置。Root是系统的超级管理员账户权限至高无上。务必设置一个强密码包含大小写字母、数字、特殊字符且长度足够。如果密码过于简单安装程序会提示你你需要点击两次“完成”来确认使用弱密码不推荐。4.2 创建用户虽然你可以一直使用root操作但这是极其危险的做法。任何误操作都可能导致系统崩溃。最佳实践是日常使用一个普通用户账户仅在需要时使用sudo命令临时获取root权限。点击“创建用户”输入用户名如admin或你的名字设置全名可选同样设置一个强密码。最关键的一步勾选“将此用户设为管理员”。这会将用户加入wheel组从而拥有使用sudo的权限。安装进程继续进行直到完成。点击“重启”按钮系统会重启。重启后记得在BIOS/UEFI设置中调整启动顺序或者从虚拟机中移除安装介质如弹出ISO镜像否则可能会再次进入安装程序。4.3 首次启动与登录系统重启后你会看到GRUB引导菜单如果只有一个系统可能只显示几秒。随后进入系统。接受许可证首次启动可能会显示许可证信息勾选“我同意许可协议”并点击完成。初始设置可选如果你安装的是带GUI的版本可能会有一个初始设置向导可以跳过或简单配置。登录在登录界面输入你创建的普通用户的用户名和密码登录系统。如果是“最小安装”重启后你会看到一个纯文本的登录提示符CentOS Linux 7 (Core) Kernel 3.10.0-1160.el7.x86_64 on an x86_64 localhost login:输入你的普通用户名和密码即可进入命令行界面。4.4 基础配置与网络设置登录后第一件事是更新系统和配置网络。切换到root权限输入su -然后输入root密码或者更推荐使用sudo -i如果你创建的用户是管理员并输入你自己的密码。配置网络如果安装时未配置 CentOS 7使用NetworkManager但最小安装通常使用network-scripts。查看网卡名称ip addr或nmcli d如果nmcli可用。假设网卡名为ens33在虚拟机中常见。 编辑网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33。 确保关键配置如下以静态IP为例TYPEEthernet BOOTPROTOstatic # 静态IP如果是DHCP则改为dhcp NAMEens33 DEVICEens33 ONBOOTyes # 开机自启非常重要 IPADDR192.168.1.100 # 你的IP地址 NETMASK255.255.255.0 # 或使用PREFIX24 GATEWAY192.168.1.1 # 你的网关 DNS18.8.8.8 # DNS服务器保存退出:wq然后重启网络服务systemctl restart network。 测试网络ping www.baidu.com。更新系统配置好网络后立即更新系统以获取最新的安全补丁和软件包在ELS结束后这步可能只能从一些第三方存档仓库获取更新需谨慎。sudo yum makecache # 更新仓库元数据 sudo yum update -y # 升级所有包更新完成后建议重启sudo reboot。5. 安装后的精调与必备软件系统安装并更新后还处于“裸奔”状态。以下几个步骤能让你的CentOS 7更好用、更安全。5.1 配置防火墙与SELinux防火墙firewalldCentOS 7默认使用firewalld。了解其基本状态sudo systemctl status firewalld # 查看状态 sudo firewall-cmd --state # 查看运行状态如果你只是在内网测试可以暂时关闭它sudo systemctl stop firewalld和sudo systemctl disable firewalld。但在生产环境强烈建议学习并配置firewalld规则而不是直接关闭。SELinux这是一个强大的安全模块但也会给新手带来很多“权限被拒绝”的困扰。在学习和测试环境可以将其模式改为“宽容”模式它只记录违规而不阻止sudo setenforce 0 # 临时设置为Permissive sudo sed -i s/SELINUXenforcing/SELINUXpermissive/g /etc/selinux/config # 永久生效重启后生产环境请务必在充分理解后配置SELinux策略而不是直接禁用。5.2 安装常用工具最小化系统缺少很多常用工具用yum安装它们sudo yum install -y vim wget net-tools bash-completion epel-releasevim比默认的vi更强大的文本编辑器。wget命令行下载工具。net-tools包含ifconfig、netstat等传统网络工具虽然ip命令是未来但很多脚本仍依赖它们。bash-completion提供命令自动补全功能。epel-release安装EPELExtra Packages for Enterprise Linux仓库它提供了大量CentOS官方仓库中没有的常用软件。5.3 配置SSH远程登录针对服务器如果你安装的是服务器需要通过SSH远程管理确保openssh-server已安装并运行sudo systemctl status sshd。如果需要从外部连接在防火墙中开放22端口sudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reload重要安全措施修改SSH默认端口并禁用root登录 编辑/etc/ssh/sshd_config文件Port 2222 # 改为一个非22的高位端口比如2222 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication yes # 如果你用密码登录保持yes如果用密钥可设为no重启SSH服务sudo systemctl restart sshd。注意修改端口后连接命令需指定端口ssh usernameserver_ip -p 2222。在重启sshd前务必确保新端口已在防火墙中开放并且你有一个可以sudo的普通用户否则你可能会把自己锁在系统外面。6. 避坑指南那些年我踩过的安装“雷区”回顾无数次安装CentOS 7的经历有些错误反复出现。这里集中列出希望能帮你一次成功。坑一安装介质制作失败。这是最常见的问题。症状启动时卡在dracut提示符或提示找不到安装介质。解决方案务必使用Rufus、Etcher等专业工具并以DD模式如果工具提供选项写入U盘。在Windows下绝对不要直接解压或复制ISO文件到U盘。坑二安装过程中图形界面卡死或无响应。可能原因虚拟机分配内存不足小于1GB或显卡驱动问题。解决方案为虚拟机分配至少1GB推荐2GB内存。对于物理机在引导菜单按Tab键编辑启动参数在行尾添加nomodeset再回车这会禁用内核模式设置使用基本显示驱动。坑三分区后无法安装引导程序。错误提示“引导装载程序配置失败”。可能原因在UEFI模式下安装但没有创建EFI系统分区ESP或者磁盘分区表类型MBR/GPT与引导模式BIOS/UEFI不匹配。解决方案UEFI模式你必须创建一个EFI系统分区。挂载点为/boot/efi文件系统类型为EFI System Partition大小至少200MB推荐500MB。确保虚拟机设置中的“固件类型”与分区方案匹配。不确定的话在物理机BIOS设置中尝试切换“Legacy Support”/“UEFI Only”模式。坑四安装完成后无法联网。可能原因网卡未启用或NetworkManager与network服务冲突。解决方案检查网卡是否启用ip addr看看对应网卡如ens33是否有UP标志。设置开机自启确保/etc/sysconfig/network-scripts/ifcfg-ens33中ONBOOTyes。停止冲突服务CentOS 7有时会同时运行NetworkManager和network服务。可以尝试禁用其中一个sudo systemctl stop NetworkManager; sudo systemctl disable NetworkManager然后重启network服务。坑五安装后yum命令报错“Cannot find a valid baseurl”。这通常是因为网络未通或者DNS未设置。解决方案按照前面所述正确配置静态IP和DNS或确保DHCP能正确分配。可以尝试ping 8.8.8.8测试网络连通性再ping www.baidu.com测试DNS解析。安装一个系统就像搭建一个房子的地基。CentOS 7这个“地基”虽然老但依然坚固、可靠并且有海量的文档和社区经验可供参考。通过这次从准备到精调的完整流程我希望你收获的不仅仅是一个可用的系统更是一种面对问题时的排查思路和动手能力。记住在Linux的世界里遇到问题查看日志/var/log/下的文件、善用man命令和搜索引擎比你想象中更能解决问题。
返回列表