[问题描述]
最近在PXE安装RHEL9.2的时候,遇到一个奇怪的问题,一直提示找不到安装源(如下图)。这里由于是PXE安装,所以实际问题就是安装程序无法在PXE服务器上找到正确的repository。提示“Error setting up base repository”。
查看PXE服务器后台日志,发现是找不到repo文件。
[问题分析]
1, 由于PXE服务器上部署了各种Linux发行版的安装文件,PXE安装其它版本都是正常的,所以快速检查并排除了PXE服务器配置的问题。
2, 我的PXE服务器是部署在Windows Server上,所以再次将RHEL9.2的ISO文件挂载到虚拟光驱上,然后对比检查repodata文件。通过对比可以发现,RHEL9.2的repo文件名都是不完整的(对比9.3的文件名),都被阶段成了只有32个字符。这就导致PXE服务器通过repomd检索repo文件时找不到正确的文件。
3, 通过对照repomd将所有文件修改正确的文件名以后,安装程序就可以正确找到安装源并开始安装,但是在安装过程中还是会提示找不到某个rpm安装包再一次安装失败。
4, 查找相关文件发现文件名也是不对的,例如下图的文件名最后一位少了一个“4”,应该是x86_64才对。最初我还是以手动方式,找到对应的rpm文件然后修改一下。但是我发现文件名不正确的文件特别多,全都手动修改不是一个聪明的办法,需要找到问题的本质。
5, 经过研究,只有在Windows系统中将ISO文件挂载到虚拟光驱时(右键单击ISO文件,选择“挂载”)才会有此问题。如果通过第三方工具挂载(例如UltraISO工具)文件名是完整的。将ISO文件导出后再导到到PXE服务器后,就完全解决了上述问题。另外如果在Linux系统中挂载ISO文件,也是正常的不会有问题。
[分析结论]
1, 此问题应该是RHEL9.2 ISO镜像文件本身的问题,似乎是红帽在打包发布此镜像时缺少一些参数导致的一些兼容性问题。
2, 此镜像问题导致其与Windows自带软件不兼容(Windows自带的挂载ISO文件功能)。
3, 经查询,在红帽官方网站上也有对此问题的描述。