一.环境
centos6.8
关闭selinux iptables
关闭防火墙
CentOS-6.8-x86_64-bin-DVD1.iso
CentOS-6.8-x86_64-bin-DVD2.iso
二.步骤:
合并 CentOS 6 的两个DVD镜像
1、相关目录:
/mnt/dvd1和/mnt/dvd2 用于挂载 Centos 镜像
/mnt/dvd3 合并后的镜像文件
/mnt/iso ISO储存
mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd3 /mnt/iso
2、上传 Centos 镜像到服务器,挂载 Centos 镜像文件
mount -o loop /mnt/iso/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/dvd1
mount -o loop /mnt/iso/CentOS-6.5-x86_64-bin-DVD2.iso /mnt/dvd2
3、拷贝文件
首先,拷贝第一张DVD中的所有文件到 /mnt/dvd3 目录下,然后,只拷贝第二张 DVD 中 Packages 目录下的所有RPM文件到 /mnt/dvd3/Packages 目录下
cp -av /mnt/dvd1 /mnt/dvd3
cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd3/Packages/
4、合并TRANS.TBL
将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存
cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd3/Packages/TRANS.TBL
mv /mnt/dvd3/Packages/{TRANS.TBL,TRANS.TBL.BAK}
sort /mnt/dvd3/Packages/TRANS.TBL.BAK > /mnt/dvd3/Packages/TRANS.TBL
rm -rf /mnt/dvd3/Packages/TRANS.TBL.BAK
dvd3已经是合并后的文件了,可以用作本地源和做成ISO使用。
5、备份YUM配置文件
cd /etc/yum.repos.d
rename .repo .repo.bak *.repo
vi /etc/yum.repos.d/CentOS-Media.repo
[c6-media]
name=CentOS-\$releasever - Media
baseurl=file:///mnt/dvd3
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
7、更新YUM源
yum clean all
yum upgrade
8、将 /mnt/dvd3/ 打包为 ISO
mkisofs -l -J -L -r -V "CentOS-6.*-x86_64" -o /mnt/iso/CentOS-6.*-x86_64-DVD.iso /mnt/dvd3
9、解压iso镜像要使用UltraISO,不能使用RAR
不知道是RAR的问题还是镜像文件的的虚拟目录文件引起的,当使用RAR解压镜像文件的时候,repodata文件夹内的文件 *.gz 会变成没有后缀的文件,所以用作源的时候,就会报错。你可以给每个文件都加gz的后缀就会没有问题了。但你也可以使用UltraISO提取出来的文件是正常有*.gz的后缀的,就可以正常使用了。
Unable to read package Metadata.This may be due to a missing repodata directory.Please ensure that your insert tree has been correctly generated.failure:repodata/repomd.xml from anaconda:[Ermo 256]No more mirrors to try.
附件中是我自己写的脚本,可以直接使用