在运维和技术支持的领域中,维护老旧系统是一项常见但颇具挑战性的工作,CentOS 6.8作为一款曾经非常流行的服务器操作系统,至今仍在一些特定环境中稳定运行,其安装介质通常分为两个DVD镜像:DVD1包含核心系统和大部分常用软件包,而DVD2则包含了额外的软件包,在进行全新安装或构建本地化安装源时,频繁切换光盘会带来不便,将这两张DVD合并为一个单一的、功能完整的ISO镜像,就成了一个极具实用价值的操作,本文将详细介绍如何在Linux环境下合并CentOS 6.8的两个DVD ISO文件,并生成一个可直接用于安装的全新镜像。
在开始之前,需要明确一点:CentOS 6.8已于2020年11月30日停止官方维护(End of Life, EOL),使用它将面临巨大的安全风险,本教程仅适用于必须维护历史旧系统的特殊场景,强烈建议在生产环境中升级到受支持的现代操作系统。
准备工作
要顺利完成合并操作,你需要准备以下几样东西:
- CentOS 6.8 的ISO文件:确保你已下载了对应架构的两个DVD镜像,通常命名为
CentOS-6.8-x86_64-bin-DVD1.iso
和CentOS-6.8-x86_64-bin-DVD2.iso
。 - 一台Linux主机:任何现代的Linux发行版均可,例如Ubuntu、Fedora,甚至另一台CentOS机器。
- 充足的磁盘空间:至少需要两个ISO文件大小之和的2.5倍空间,用于存放临时文件和最终生成的ISO。
- 必要的软件包:执行合并操作需要一些工具,可以通过包管理器安装,例如在基于RHEL的系统上使用
yum install createrepo genisoimage isomd5sum
。
详细操作步骤
整个过程可以分解为挂载、复制、更新元数据和生成新ISO四个核心阶段,我们将通过一系列清晰的命令来完成它。
第一步:创建工作目录并挂载ISO
创建一个干净的工作环境,并将两个ISO文件分别挂载到不同的目录下。
# 创建主工作目录和挂载点 mkdir -p /mnt/centos68_merge mkdir /mnt/dvd1 mkdir /mnt/dvd2 # 挂载第一个DVD镜像 mount -o loop /path/to/CentOS-6.8-x86_64-bin-DVD1.iso /mnt/dvd1 # 挂载第二个DVD镜像 mount -o loop /path/to/CentOS-6.8-x86_64-bin-DVD2.iso /mnt/dvd2
第二步:复制所有文件
将DVD1中的所有内容完整地复制到我们主工作目录,这里使用 cp -a
命令可以保留文件的所有属性,如权限和时间戳。
# 复制DVD1的全部内容 cp -a /mnt/dvd1/* /mnt/centos68_merge/
是合并的关键步骤:将DVD2中Packages
目录下的所有软件包复制到主工作目录对应的Packages
中。
# 复制DVD2中的所有软件包 cp /mnt/dvd2/Packages/*.rpm /mnt/centos68_merge/Packages/
第三步:更新软件仓库元数据
当加入了新的软件包后,原有的软件包索引(即repodata
目录)已经失效,必须重新生成它,这样安装程序才能识别所有软件包及其依赖关系。
# 进入主工作目录 cd /mnt/centos68_merge # 删除旧的repodata目录 rm -rf repodata # 生成新的repodata # -g 参数指定了组信息文件,这对于图形化安装时选择软件包组至关重要 createrepo -g repodata/comps.xml .
第四步:生成最终的合并ISO文件
所有文件都已就位,元数据也已更新,最后一步是使用genisoimage
工具将整个目录打包成一个可引导的ISO镜像。
# 返回上一级目录,准备生成ISO cd /mnt # 使用genisoimage创建ISO genisoimage -o CentOS-6.8-x86_64-Everything.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /mnt/centos68_merge
生成ISO后,为了使其能够通过MD5校验并确保引导信息的正确性,还需要执行最后一步操作。
#植入MD5校验和 implantisomd5 /mnt/CentOS-6.8-x86_64-Everything.iso
至此,一个名为 CentOS-6.8-x86_64-Everything.iso
的、包含了两张DVD所有内容的完整安装镜像就制作完成了。
为了更清晰地回顾核心命令,下表小编总结了关键步骤及其作用:
步骤 | 核心命令 | 说明 |
---|---|---|
复制基础文件 | cp -a /mnt/dvd1/* /mnt/centos68_merge/ | 复制DVD1全部内容作为新ISO的基础 |
合并软件包 | cp /mnt/dvd2/Packages/*.rpm /mnt/centos68_merge/Packages/ | 将DVD2的软件包合并到主目录 |
更新仓库元数据 | createrepo -g repodata/comps.xml . | 重新生成软件包索引,让安装程序能识别所有软件 |
生成ISO | genisoimage [...] /mnt/centos68_merge | 打包成ISO文件,并使其可引导 |
植入校验和 | implantisomd5 <ISO_FILE> | 向ISO文件写入校验和信息,用于安装时的完整性检查 |
相关问答FAQs
答:repodata
目录是YUM软件仓库的“数据库”或“索引”,它记录了仓库中所有软件包的名称、版本、大小、依赖关系等关键信息,当我们向Packages
目录中添加了大量来自DVD2的新软件包后,旧的索引文件并不知道这些新成员的存在,如果不更新repodata
,安装程序(如Anaconda)或YUM工具将无法找到、列出或安装这些新增的软件包。createrepo
命令的作用就是扫描Packages
目录,并基于其内容生成一套全新的、准确的索引文件。
问:整个过程可以在Windows系统上完成吗?
答:直接在原生的Windows环境下完成这一整套操作非常困难,几乎不可能,虽然Windows 10/11可以挂载ISO文件,并且可以复制文件,但核心工具如createrepo
、genisoimage
和implantisomd5
都是为Linux/Unix环境设计的,要在Windows上实现,你需要借助兼容层,
- WSL (Windows Subsystem for Linux):在Windows上安装一个完整的Linux环境,然后在WSL中按照本教程操作,这是目前最推荐的Windows方案。
- 虚拟机:在VirtualBox或VMware中安装一个Linux系统,然后在虚拟机内完成所有操作。
- Cygwin:一个在Windows上提供大量Linux工具兼容层的软件,但配置相对复杂。
使用一台Linux主机是最直接、最简单、最可靠的方法。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复