在Win下搭建CentOS 6网络安装源时/repodata目录下文件名后缀丢失问题及解决方法...

本文介绍了在使用虚拟光驱加载CentOS安装源时遇到的文件名后缀丢失问题及解决办法。通过对比正常源文件,手动添加后缀或将ISO文件通过特定工具加载解决了该问题。

在Win下搭建CentOS 6网络安装源时/repodata目录下文件名后缀丢失问题及解决方法

  本以为成功引导之后就没问题了,没想到安装的过程中出错了。提示如下

 

  大概是文件丢失。按着提示的文件名去寻找,发现./repodata/目录下有他提到的这个文件,但没有后缀,文件是这样的 ./repodata/ffb0e227e2cdd8a2b3609b65d7f38f6c1e756b437405b2918d6d36ebe59a0cb4

  然后再看看163的源,虽然文件名不同,但都是有后缀的。

  也就是可以确定问题出在这里了,我的安装源的文件里没有后缀。我用DaemonTools加载虚拟光驱然后直接设置路径的,文件里没有后缀。7zip打开ISO里面也是没有后缀。

  然后我发现在光盘目录里 ./repodata/repomd.xml 这个文件储存着完整的文件名,对着这个xml里面的文件名,依次手动把后缀重命名加上,成功安装。

 

  至此问题是解决了,但是,如果ISO里面的文件名真的没有后缀的话,那么是不是CentOS发行的时候就有问题了呢?光盘安装却可以正常进行,而虚拟光驱做成的网络源不能安装。于是在某个网友的提示下弄明白了原因:
  “ISO也有很多目录结构格式的,可能刚刚好我解压的那个ISO镜像采用了两种目录命名格式,或者使用了一种会导致虚拟光驱和解压缩工具都会用错误方式打开的格式,结果解压缩工具和虚拟光驱导致后缀丢失了……”

  为了验证这个想法,我用UltraISO打开,能看到后缀,用DaemonTools打开就没有了后缀....知道了出问题的地方,那就好办了,只要从UltraISO提取安装源就可以了,也省去了手动改名的麻烦。

<think>好的,用户现在遇到了输入curl -I http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml返回404的问题。我需要先理解这个错误的原因,然后给出解决方案。 首先,用户之前询问过关于“Cannot find a valid baseurl for repo: base/7/x86_64”的错误,我之前给出的解决方案包括检查网络、更换镜像等。现在用户执行了curl命令,结果返回404,这意味着访问的URL不存在。 CentOS 7在2024年6月30日已经结束生命周期(EOL),官方镜像可能已经移除了相关资,所以用户访问的路径可能不存在了。需要确认这一点。此外,用户可能没有更新镜像到vault.centos.org或者其他归档站点,导致访问旧的URL返回404。 接下来要考虑用户的身份和使用场景。用户可能是在维护一个旧的CentOS 7系统,需要安装或更新软件包,但由于EOL,原有的镜像不可用。用户可能不太了解CentOS 7已经停止支持,所以需要解释清楚,并建议升级系统,或者更换到可用的镜像。 用户的需求是解决404错误,能够正常使用yum。深层需求可能是保持系统的正常运行,可能需要安装软件或安全更新。但由于CentOS 7已经EOL,官方不再提供更新,所以需要引导用户使用归档镜像或者考虑系统升级。 解决方案方面,首先需要更换镜像到vault.centos.org或者阿里云、清华的镜像。同,用户可能需要修改repo文件中的baseurl,禁用mirrorlist,并启用baseurl。此外,可能还需要清理yum缓存,重新生成元数据。 另外,需要考虑用户是否在企业内网,可能需要配置本地镜像,或者使用离线的包。如果用户无法升级系统,可能需要长期支持的替代方案,比如AlmaLinux或Rocky Linux。 需要详细列出步骤,确保用户能够一步步操作,例如备份原有repo文件,修改配置,清理缓存,测试验证。同提醒用户升级系统的重要性,以避免安全风险。 最后,需要验证解决方案是否有效,比如再次运行curl命令检查是否返回200,或者使用yum list确认仓库可用。如果用户的问题仍然存在,可能需要进一步排查网络问题,或者配置文件是否正确。</think>--- ### 🔍 故障原因解析 当执行 `curl -I http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml` 返回 **404 Not Found** ,说明存在以下情况之一: 1. **CentOS 7 生命周期终止 (EOL)** - 官方镜像已于 **2024-06-30** 停止维护,原路径 `/centos/7/` 已被移除 - 当前访问的是**已失效的URL路径**,官方已将资迁移到归档站点 2. **镜像结构调整** - CentOS 项目转向 Stream 模式后,传统版本仓库路径发生变化 - 历史版本仓库统一迁移到 `vault.centos.org` 域名下 --- ### 🛠️ 完整解决方案 #### 第一步:切换归档镜像 ```bash # 备份原配置文件 sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak # 修改所有仓库配置(替换域名+路径) sudo sed -i \ -e &#39;s|^mirrorlist=|#mirrorlist=|g&#39; \ -e &#39;s|^#baseurl=http://mirror.centos.org/centos|baseurl=http://vault.centos.org/centos|g&#39; \ /etc/yum.repos.d/CentOS-*.repo ``` #### 第二步:指定精确版本路径 ```bash # 查询系统精确版本号 cat /etc/redhat-release # 输出示例:CentOS Linux release 7.9.2009 (Core) # 手动修改Base仓库配置 sudo vi /etc/yum.repos.d/CentOS-Base.repo ``` ```ini [base] name=CentOS-7 - Base baseurl=http://vault.centos.org/centos/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ``` #### 第三步:强制刷新仓库缓存 ```bash # 清理旧缓存并重建元数据 sudo yum clean all sudo rm -rf /var/cache/yum sudo yum makecache ``` --- ### 🌐 国内镜像替代方案 #### 阿里云镜像配置 ```bash sudo sed -i \ -e &#39;s|^mirrorlist=|#mirrorlist=|g&#39; \ -e &#39;s|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com/centos-vault|g&#39; \ /etc/yum.repos.d/CentOS-*.repo ``` #### 清华镜像配置 ```bash sudo sed -i \ -e &#39;s|^mirrorlist=|#mirrorlist=|g&#39; \ -e &#39;s|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault|g&#39; \ /etc/yum.repos.d/CentOS-*.repo ``` --- ### ⚠️ 关键注意事项 1. **版本精确匹配原则** ```bash # 查看所有可用历史版本 curl https://vault.centos.org/ | grep &#39;7.&#39; | awk -F&#39;"&#39; &#39;{print $2}&#39; ``` - 必须使用与系统完全一致的次版本号(如 7.9.2009) 2. **GPG密钥验证** ```bash # 如果出现GPG错误执行 sudo rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7 ``` --- ### 🔄 替代解决方案 #### 方案一:迁移到兼容系统 ```bash # 迁移到AlmaLinux(兼容RHEL/CentOS) sudo curl -o /etc/yum.repos.d/almalinux.repo https://repo.almalinux.org/alma/almalinux.repo sudo sed -i &#39;s/$releasever/7/g&#39; /etc/yum.repos.d/almalinux.repo ``` #### 方案二:本地ISO镜像挂载 ```bash # 挂载CentOS 7 ISO镜像 sudo mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt # 创建本地仓库配置 cat <<EOF | sudo tee /etc/yum.repos.d/local.repo [local-base] name=Local CentOS 7 baseurl=file:///mnt enabled=1 gpgcheck=0 EOF ``` --- ### 📊 验证操作有效性 ```bash # 检查新配置的URL可达性(应返回HTTP 200) curl -I http://vault.centos.org/centos/7.9.2009/os/x86_64/repodata/repomd.xml # 测试仓库元数据加载 sudo yum repolist ``` --- ### 📌 长期建议 1. **系统升级计划** - 建议迁移至 **CentOS Stream 8/9** 或 **RHEL 8/9** 等受支持版本 - 或选择 **AlmaLinux/Rocky Linux** 等替代发行版 2. **安全更新策略** - 对于必须保留的CentOS 7系统: ```bash # 添加扩展更新支持(EUS) sudo yum install centos-release-eus sudo yum-config-manager --enable eus ``` --- **注**:所有涉及`vault.centos.org`的操作需确认网络能访问境外服务器,如遇连接问题建议使用国内镜像替代。生产环境强烈建议制定系统升级路线图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值