ARTICLE DETAIL

资讯详情

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

RHEL8安装避坑指南:从U盘启动到系统初始化全流程

RHEL8安装避坑指南:从U盘启动到系统初始化全流程 如果你正准备给一台物理机或者虚拟机装RHEL 8我得先把丑话说在前面安装程序本身并不难难的是装完以后你面对的第一个dnf install报错、第一次重启找不到引导项以及第一次发现网卡名和网上文档里写的不一样。红帽企业级Linux 8Red Hat Enterprise Linux 8以下简称RHEL8作为生产环境里最常见的发行版之一安装流程早就不用你像老前辈那样自己编译内核但它同样不是一个让你全程“下一步”就能高枕无忧的系统。这篇博文不打算做成官方手册我只想站在一个反复装过几十台RHEL8系统的人的角度把从拿到ISO之前到装完初始化这段路讲清楚把那些最容易踩的坑提前指出来。1. 拿不定主意先别下ISO版本、介质与硬件兼容性1.1 RHEL8的小版本选择不是越旧越稳而是越新越省事RHEL8是一个大版本代号从8.0一路走到8.10每个小版本都会包含更新的驱动、固件以及安全补丁。很多新人有个惯性思维生产环境用旧版本更“稳定”于是上来就找一个8.2、8.3的老镜像。说实话我在一台较新的联想工作站上试过装8.2结果NVMe固态硬盘识别正常但板载Intel网卡驱动没跟上安装界面里“网络和主机名”那一步直接看不到网卡装完系统后还得自己找驱动包去打补丁非常折腾。我的建议是如果你不是被客户合同绑定了某个特定小版本优先选择官方能下载到的最新小版本。因为RHEL8的小版本之间软件包仓库是持续向后兼容的新版驱动和硬件支持覆盖旧版安全补丁也更完整。而且你之后用dnf update升级时系统本来就会把软件包推进到当前订阅仓库里的最新状态所以从安装介质角度新版本永远是更方便的起点。1.2 Boot ISO与DVD ISO两种镜像别选错RHEL8官网下载页面通常提供两类ISO类型体积用途适合场景Boot ISO约800MB只含安装程序引导文件安装时从网络拉取软件包有内网YUM源、镜像站、网络环境稳定DVD ISO约4GB多自带完整BaseOS和AppStream软件包物理机离线安装、网络不稳、虚拟机挂载安装绝大多数情况下我推荐直接下载DVD ISO。原因很简单Boot ISO在安装过程中如果网络源断一下或者仓库地址配置错一个字母安装就会卡在“下载软件包”阶段出错后排查链路长很打击信心。而DVD ISO相当于把软件包全部打包带在身边安装全程不需要网络等系统装完再处理订阅和更新问题也不迟。另外有个常见误区页面上还会出现“Source ISO”之类的源码镜像那是给开发者看源代码用的体积可能比DVD ISO还大但它不是用来安装系统的别下错了。1.3 刻录U盘的正确姿势校验和、Rufus和dd命令下载完ISO之后第一步永远是对校验和。Red Hat官网每个ISO旁边都会给SHA256值Linux和macOS下可以用sha256sum rhel-8.10-x86_64-dvd.isoWindows下用PowerShell也行Get-FileHash .\rhel-8.10-x86_64-dvd.iso -Algorithm SHA256如果校验值对不上直接重新下载。这一步我踩过坑曾经图快用某个网盘转存的“RHEL8镜像”校验值对不上强行刻录后安装到60%报软件包损坏排查了很久才发现是镜像本身被截断了。U盘制作工具方面Windows系统我推荐RufusLinux环境则直接命令行ddsudo dd ifrhel-8.10-x86_64-dvd.iso of/dev/sdX bs4M statusprogress注意of后面是U盘设备名比如/dev/sdb千万别写成了/dev/sda或者某个分区/dev/sdb1后者会直接损坏你现有系统。确认U盘写完后用sync让缓存落盘再拔U盘。Rufus有一个细节需要注意默认分区类型是MBR如果你要在UEFI环境安装建议在Rufus里把“分区类型”手动改成GPT目标系统类型选“UEFI非CSM”。不然有些主板会以传统BIOS方式启动U盘装出来的系统引导布局和后续维护习惯会有出入。2. 开机到安装界面启动引导、安全启动与安装源2.1 UEFI好还是BIOS好安全启动要不要关现在物理机基本都是UEFI固件RHEL8安装程序对UEFI的支持已经很完善了安装时会自动创建/boot/efi分区来放EFI引导文件。我在实践中一直建议能选UEFI就选UEFI磁盘分区表选GPT。原因很直白UEFIGPT可以支持2TB以上磁盘后续磁盘扩容不别扭而且开机速度和支持特性都好一些。安全启动Secure Boot是个容易被忽略的点。RHEL8的引导程序是经过微软签名的正常情况下开着Secure Boot也能启动。但如果你后面要安装NVIDIA闭源驱动、某些第三方内核模块或者主板对Secure Boot实现有兼容问题就会在启动阶段卡住或者出现无法加载驱动的情况。所以我的经验是在物理机上装RHEL8如果这台机器不是严格受控的企业终端安装时直接在固件里关闭Secure Boot省得以后自找麻烦。虚拟机里一般没有这个选项的压力默认设置即可。2.2 引导界面改启动参数什么时候用nomodeset、inst.repoRHEL8安装光盘启动后会出现一个GRUB引导菜单。如果你只是直接回车大多数机器能顺利进入图形安装界面但也有不少情况会黑屏。这时候就要用到临时修改内核启动参数的技巧在GRUB菜单界面选中“Install Red Hat Enterprise Linux 8”按e键进入编辑模式找到以linux开头的那一行在行尾追加参数然后按CtrlX启动。最常用的几个参数nomodeset不让内核加载显卡驱动模式设置解决安装界面黑屏、花屏问题。inst.repohd:LABELRHEL-8.10手动指定安装源用于安装程序找不到U盘或ISO的情况。inst.vnc如果你需要通过网络做VNC远程安装可以加这个参数。ipdhcp网络安装时先让网卡自动获取地址。这里要特意说明这种方式改的参数只对当前这一次启动有效不会写入硬盘所以试错了可以重启再来没有任何风险。我几乎每次在物理机上装RHEL8都会先加一个nomodeset尤其在NVIDIA显卡的机器上这招能避免90%的安装黑屏问题。2.3 安装源选择本地介质、HTTP、NFS和Kickstart的适用场景进入图形安装界面的第一步安装程序会问“安装源”。如果你用的是DVD ISO选“本地介质”然后它一般能自动识别到光盘或U盘如果识别不到可以手工指定iso:///dev/sda1或者用hd:LABELxxx的方式。虚拟机挂载ISO时直接选“本地介质”并点“完成”基本不会出错。在有企业内网镜像站的场景下很多人会选HTTP源比如http://mirror.internal.example.com/rhel8/BaseOS这种方式的优势是安装源更新方便可以统一管理软件包版本适合批量装机。NFS源和HTTP类似早期老运维习惯用NFS因为那时网络安装协议方面NFS更稳定现在HTTP/HTTPS已经完全够用了。如果你需要批量部署十台以上相同配置的机器可以考虑Kickstart无人值守安装在引导菜单按e修改inst.kshttp://your-server/ks.cfg指向一个应答文件系统就会全自动装完。但新手不建议一上来就折腾Kickstart先把单台手工安装跑通理解每一步在做什么再去做自动化才不会抓瞎。3. 别急着点“开始安装”配置页里最花时间的四件事3.1 软件选择带GUI和最小化到底差在哪AppStream是什么RHEL8安装摘要页里“软件选择”是新手最容易纠结的地方。默认选项往往是“带GUI的服务器”装上以后不仅有Gnome桌面还带了一大堆图形管理工具装完占硬盘好几GB运行内存也吃得多。对生产服务器来说这通常不是最优解。如果你只是练手或者需要在图形界面里操作选“带GUI的服务器”没问题但如果你是给生产环境装系统我强烈建议选“最小化安装”。最小化安装只包含核心系统组件和基础命令行工具装完大概只占1GB多空间。后续需要哪个软件再用dnf install单独装既清晰又可控。这里要解释一下RHEL8的软件仓库结构它把软件包拆成了BaseOS和AppStream两个仓库。BaseOS里是系统底层核心组件比如内核、glibc、systemdAppStream里则是各种应用软件如Nginx、PHP、PostgreSQL等并且很多软件提供了模块化多版本选择你可以指定dnf module install postgresql:13来装特定大版本。其实安装的时候我们不用太纠结这个系统会默认启用这两个仓库但理解了这层关系后面配置订阅和仓库时就不会一头雾水。3.2 磁盘分区手动LVM分区的每一步和容量规划安装摘要页里“安装目的地”是最关键的环节默认是“自动分区”对新手来说全自动确实省事但自动分区方案不一定适合你的业务需求。我个人的习惯是直接选“自定义”手动分区用LVM做逻辑卷管理。手动分区前先理清楚规划思路以一台256GB固态硬盘的服务器为例分区/卷大小说明/boot1GB用ext4或xfs存放内核和引导文件/boot/efi200MBUEFI环境自动要求格式为EFI System Partitionpv.01物理卷剩余全部空间加入LVM卷组vg_root卷组 物理卷大小在卷组上划分逻辑卷/80GB根分区我通常给到80GB以上系统和日志都在这里/var30GB日志和缓存数据放独立逻辑卷避免根分区被塞满/home剩余空间如果不需要多人多目录可不分swap4GB内存大时可以设小一些在图形分区界面里操作顺序大致是新建/boot、/boot/efi然后创建LVM物理卷再创建卷组最后在卷组里创建逻辑卷并挂载到/、/var、swap等路径。每一步都有下拉框选择文件系统类型比如根分区选xfsswap选swap/boot选ext4或者xfs都没毛病。为什么要用LVM而不是标准分区因为LVM可以在系统运行状态下扩缩容比如以后/var空间不够了可以直接从卷组里分一块加上去不用重新分区、不用重启。这对运维来说太重要了。3.3 Kdump要不要开影响的是内存占用而不是安装本身安装摘要页里的“Kdump”默认是启用的它会在系统内核崩溃时保留一块内存用于保存崩溃转储vmcore便于事后排查死机原因。生产环境建议开启尤其是数据库、核心业务服务器一旦内核panicKdump转储文件是定位问题的重要证据。但如果你是在一台内存只有2GB的小虚拟机上装RHEL8学习Kdump默认会划走一部分内存作为“预留内存”导致系统可用内存进一步缩水这时候我就会在安装界面的Kdump选项里直接把它禁用。装完以后可以用systemctl status kdump查看状态如果没开改完配置后需要执行systemctl enable --now kdump。很多新手有一个误解以为Kdump影响的是安装过程速度或者磁盘占用。实际上它只关系到内存预留和崩溃时的转储机制安装过程中几乎不占用资源。所以开不开主要看业务场景不是必选项。3.4 网络与主机名安装时配好省得装完再折腾安装摘要页里“网络与主机名”这一步往往被人直接跳过等装完系统才发现IP不对、主机名不对又要去改配置文件其实完全没必要。我建议在安装时就做好三件事点击“网络”右上角的开关把网卡启用为自动连接并确认网卡能拿到IPDHCP环境或者手动填上静态IP、子网掩码、网关和DNS。在下方的主机名输入框里填上你规划好的主机名比如web01.internal.example.com点击“应用”。这里注意主机名不要乱填后面很多服务会依赖它。如果是一台有多个网卡的机器安装界面会列出所有网卡你要确认哪一块是管理口的网卡把管理口配好避免装完以后远程登录找不到机器。安装时把网络配好还有一个好处注册订阅那一步如果是在图形界面里操作网络通了就能直接注册省去后续命令行排查网络的时间。4. 安装中那些报错与黑屏我踩过的坑和排查路径4.1 “软件包下载失败”和安装中断多半是ISO或U盘问题安装到中途突然报“无法下载软件包”或者“软件包与源不匹配”这是我在早期遇到过比较多的中断场景。首先不要慌按下面的链路排一遍第一确认ISO校验和是否通过。这一步如果没做直接重下ISO再试不要继续拿有问题的镜像折腾。第二检查U盘接口和供电。U盘插在机箱前面板的USB口可能供电不稳安装过程中掉盘就会报各种读取错误。换到机箱后面板或者换个USB2.0口往往就好了。第三如果是用Boot ISO 网络源安装那就要检查网络源地址是否能访问、仓库路径是否正确尤其注意HTTP源需要BaseOS和AppStream两个仓库路径都存在只写一半装到中途也会失败。第四虚拟机场景下检查虚拟光驱是否正常挂载了ISOCD/DVD设备是否在虚拟机启动顺序里排在第一位。如果ISO文件本身没问题虚拟化平台一般不会报这种错。4.2 进入图形界面后黑屏、花屏显卡驱动和启动参数排查物理机上很常见的一种现象是安装界面一开始能看到GRUB菜单按回车后显示器一直黑屏但硬盘灯在闪机器似乎在工作。这种问题九成是显卡驱动加载失败尤其是NVIDIA独立显卡在笔记本或台式机上特别常见。解决办法就是前面提到的在GRUB编辑界面给内核参数加nomodeset。加nomodeset的本质是让内核在启动过程中不进行模式切换和显卡驱动加载先用最基础的显示输出等系统安装完成、进入桌面或者安装好专有驱动后再恢复。这里有一个容易混淆的地方如果你是在虚拟机里装RHEL8虚拟显卡比如VMware SVGA一般不会触发黑屏所以不需要加这个参数。如果加了nomodeset仍然黑屏那就要考虑是不是显示器接口或者分辨率问题比如DP线接触不良、4K显示器在安装界面默认分辨率过高导致无法显示。可以尝试换HDMI口或者在GRUB参数中追加video1024x768强制一个低分辨率。4.3 装完重启找不到引导项GRUB装到哪块盘上了这个坑在手动分区时特别容易踩。装完系统后重启屏幕提示“No bootable device found”或者直接进BIOS界面人一下就慌了。问题根源通常是GRUB引导程序虽然装到了某块硬盘但主板的启动顺序指向了另一块盘或者GRUB被装到了分区上而不是磁盘的主引导记录/EFI分区。排查路径是这样的开机进BIOS看启动顺序确认第一启动项是不是你装RHEL8的那块盘。UEFI模式下应确保启动项里出现了类似“Red Hat Enterprise Linux”或者“UEFI: 硬盘型号”的选项。如果没有说明引导信息没有正确写入EFI分区。修复方法很简单用安装介质重新启动在引导菜单里选择“故障排除 → 救援已安装的系统”等它探测到你的根分区后选择挂载到/mnt/sysimage然后执行chroot /mnt/sysimage grub2-mkconfig -o /boot/grub2/grub.cfg grub2-install /dev/sda如果是UEFI系统执行grub2-install /dev/sda之前确认EFI分区已经挂载在/boot/efi下。修完以后重启就能正常引导了。这个命令组合在我工作中使用频率不低建议遇到引导问题时先别急着重装系统。5. 装完后的第一小时订阅、仓库与基础初始化5.1 订阅原理解析为什么RHEL8不注册就不能正常yum安装第一次接触RHEL8的人最不适应的就是明明系统装好了dnf install nginx却提示“无法找到可用的软件包”或者“没有已启用的仓库”。这是因为RHEL的包管理机制默认绑定在订阅服务上系统必须完成Red Hat订阅注册才能解锁官方软件仓库。很多人会把订阅和“破解”“盗版”画上等号其实完全不是一回事。RHEL本身是开源的但红帽的商业模式是提供企业级支持服务注册订阅以后才能获得补丁、技术支持以及合规的仓库访问。个人学习用红帽官方提供免费开发者订阅注册一个Red Hat开发者账号就能把最多16台RHEL系统注册到开发者订阅里合法免费使用。这条路径我亲测有效适合学习和实验。5.2 注册、订阅与仓库配置的完整命令流程系统装完后先用root或者有sudo权限的用户登录执行subscription-manager register --username 你的账号 --password 你的密码如果系统里有多个订阅可用可以查看并附加subscription-manager list --available subscription-manager attach --auto注册完成后启用对应的仓库subscription-manager repos --enablerhel-8-for-x86_64-baseos-rpms subscription-manager repos --enablerhel-8-for-x86_64-appstream-rpms这两条是必须的BaseOS和AppStream缺一不可刚才讲过它们各自承载系统底层和应用层软件。很多同学还需要EPEL仓库它是Fedora社区维护的扩展包仓库里面有大量不包含在RHEL标准仓库里的软件包dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm装完之后执行一次全量更新dnf update -y更新完成后系统重启一下确保内核和驱动都处于最新状态。5.3 系统初始化检查清单SELinux、网卡名、时区、防火墙、SSH装完系统并更新完我建议按下面这个清单过一遍每一项都关系到后续使用体验先查看SELinux状态getenforce如果是Enforcing说明强制模式开启。生产环境建议保持这个状态不要为了省事一上来就改Permissive或者Disabled。如果某些应用确实不兼容SELinux再针对性调整策略而不是全局关闭。查看网络和主机名hostnamectl ip addrRHEL8默认使用Systemd的网卡命名规则例如ens160、enp3s0。如果你看惯了Ubuntu的eth0别急着改只要网卡能正常联网名字并不重要。如果确实需要改配置/etc/default/grub里的net.ifnames0 biosdevname0然后重新生成GRUB配置比较麻烦非必要不折腾。同步时间是很容易被忽视的一步timedatectl set-timezone Asia/Shanghai systemctl enable --now chronyd timedatectl status时间不同步会导致日志排查困难、SSL证书验证失败等问题别小看。防火墙和SSHfirewall-cmd --list-all systemctl status sshd如果你不打算用密码登录可以提前把公钥写到~/.ssh/authorized_keys然后修改/etc/ssh/sshd_config关闭密码登录。这一步建议在确保密钥可用之后再操作否则会把自己锁在外面。6. 从踩过的坑里提炼的几条“反常识”经验建议新手先记住6.1 一条适合大多数人的安装路线图说了这么多给一条可以照着走的标准路线从官网下载最新RHEL8 DVD ISO校验SHA256。用Rufus或dd制作U盘UEFI环境记得选GPT。物理机进BIOS关闭Secure Boot开启UEFI启动。启动安装介质后在GRUB界面加nomodeset物理机显卡用户强烈建议。安装摘要里软件选择用“最小化安装”安装目的地用手动LVM分区网络配置里填好主机名和IP。安装完成后注册开发者订阅启用BaseOS和AppStream仓库安装EPEL。执行dnf update -y配置时区、时间同步、防火墙、SSH密钥登录。重启一次验证所有服务状态做一个虚拟机快照或者系统备份。这张路线图适合大多数场景不管是虚拟机还是物理机只要跟着走基本不会出大问题。6.2 几个“反常识”的注意点第一点别在安装时为了“省事”把SELinux禁用。这个反常识在于禁用SELinux确实会让系统变“宽容”很多软件部署时少报错但一旦系统被入侵禁用了SELinux就等于少了一层重要防线。我更建议保持Enforcing等真的出现服务启动失败时先看/var/log/audit/audit.log里的AVC拒绝记录再判断是否要调整策略。第二点最小化安装的系统不一定更安全。有些人觉得装的东西越少越安全但从实际事故案例看最小化系统往往缺少审计、日志分析工具出了问题反而更难定位。安全的关键在于持续更新和合理配置而不是单纯的“少”。第三点分区时很多人坚持要单独分/home实际服务器上我基本不分。因为服务型系统上/home只是给登录用户放基础文件用的占用通常很小把它独立出来反而会浪费空间、影响卷组分配灵活性。真正需要重点保护的是/、/var、/opt这些路径做容量规划时优先考虑它们。关于物理机安装的最后一条经验如果安装界面黑屏先加nomodeset如果装完重启没引导先进BIOS看启动顺序如果dnf装不了包先查订阅和仓库。这三个“如果”基本覆盖了我这几年遇到的大部分RHEL8装机和初始化问题。遇到新问题不要一上来就重装系统先想清楚它是出现在哪个阶段、哪个配置环节按链路排查往往十分钟内就能定位。我自己的习惯是每次在物理机上装完RHEL8后都会顺手把主机名、IP、分区结构、SELinux状态、Kdump状态、注册账号和订阅ID记录在一个Markdown文档里。这台机器以后出任何问题翻这个文档能省大量排查时间。RHEL8安装本身不难难的是你从安装那一刻起就做出的每个选择——分区怎么分、SELinux开不开、网络是不是装时配好了——这些决定都会在后续运维里兑现成省心或者费劲。希望这篇博文能让你在下一次安装时少走几步弯路。
返回列表