错误信息

file:///mnt/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/cdrom/repodata/repomd.xml

问题根源

1、yum源配置时,敲错了字母、少一个/、目录路径不对,请按如下配置仔细核对

2、yum需要读取的是CD1,实际错误把镜像挂载成了CD2,导致一直读取不到xml配置文件

本文对此做重点介绍。

同理:CentOS8,也有类似问题,不再累述,见:CentOS8和RHEL8 yum源码配置详解

一、开机自动挂载光盘的两个镜像

1.创建CD1和CD2的挂载目录

mkdir /mnt/cdrom   /mnt/cdrom1

2.配置/etc/fstab,使其开机自动挂载

vim /etc/fstab

/dev/sr0              /mnt/cdrom              iso9660 defaults        0 0
/dev/sr1              /mnt/cdrom1             iso9660 defaults        0 0

 

3.挂载CD镜像

mount /dev/cdrom /mnt/cdrom

二、检查yum配置

1.配置自己的yum源

cd /etc/yum.repos.d
ls
vim CentOS6.5.repo

建议:先备份(重命名)本文件夹内的所有文件(后缀修改为_backup),然后编辑自己的配置文件。

 

[CentOS6.5-yumSource-CD1]
name=CentOS6-server1
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0

注意:

baseurl的字母,不要有错别字;后面的:///都是英文的;挂载目录是/mnt/cdrom (该目录在上面已经创建) 

enabled=1 #启用yum源
gpgcheck=0 #默认不校验安装包来源以及完整性;如是1 则配置公钥校验安装包来源

2.查看yum源并发现问题

yum repolist #查看yum源信息
...错误信息
ls /mnt/cdrom #发现挂载目录确实没有/repodata/repomd.xml这个目录和xml文件
~~~
df -h  #查看挂载情况
/dev/sr0  1.2G  1.2G  #这里明显有问题,正常光盘镜像应该是4G左右

问题分析:此处已足以说明,是挂载的CD镜像出了问题。

三、检查虚拟机光盘挂载情况

1.检查虚拟机右下角的光盘挂载情况

  

  问题分析:正常情况下,右下角应该有两个光盘镜像的“圆盘”符号

注:上图在你的机器上看到的,不一定是这个界面。

或许,你的机器显示的是两个光盘镜像,鼠标放到上面,可以看到镜像地址配置是不对的。

镜像地址默认指向的可能是虚拟机安装目录下的windows.iso(这个是错误的指向)

总之,针对这个点,要彻底整顿一下。 

2.检查虚拟机设置CD/DVD设置情况

图片解析:你本机看到的和上图,可能有差异,但是,右侧的镜像一定的有问题的。

解决方案:简单粗暴,直接把CD/DVD这个IDE光驱,删除掉重新添加。  

四、问题具体解决步骤

1.关机后,重新添加CD并挂载

重要!!!

删除掉原来的,再重新添加两块光盘驱动,并在右侧分别指定CD1和CD2镜像的位置

2.开机再次检查yum源

ls /mnt/cdrom  #此时已正常展示CD1光盘中的文件
ls /mnt/cdrom1 #这个目录是我们刚开始,挂载的误认为是CD1(本质它是CD2)
df -h  #查看挂载情况(上面/etc/fstab已经设置了开机自动挂载)
yum repolist  #查看yum源,均正常

至此,问题解决

 

至此通过命令df -h 可以明显看到,/dev/sr0下面磁盘占用大小是4G,而不是在错误挂载的1.2G.

后记:

问题的出现,找到问题的根本原因,问题就解决了一半,网上的解决方案,一个又一个,不疼不痒的答案,看完后完全是浪费时间,版本一直在迭代,加上水平有限,有分析不到位的地方,欢迎吐槽!

如果你觉得还不错,赶快点赞收藏吧!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐