rhel5添加光盘镜像为本地源(5张以CD合成一张DVD)

本文介绍如何将五张RHEL5安装CD整合到一张DVD中,并创建对应的本地YUM源。通过shell脚本实现ISO文件的合并,并进行必要的配置,最终实现从本地DVD镜像进行软件包的更新和安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rhel5添加光盘镜像为本地源(5张以CD合成一张DVD)
2007年08月10日 01:43 来源:ChinaUnix博客 作者:Christ 编辑:周荣茂

    1 将5张以CD合成一长DVD

    touch /root/make_dvd.sh

    内容如下

    #!/bin/bash

    # by Chris Kloiber

    # A quick hack that will create a bootable DVD iso of a Red Hat Linux

    # Distribution. Feed it either a directory containing the downloaded

    # iso files of a distribution, or point it at a directory containing

    # the "RedHat", "isolinux", and "images" directories.

    # This version only works with "isolinux" based Red Hat Linux versions.

    # Lots of disk space required to work, 3X the distribution size at least.

    # GPL version 2 applies. No warranties, yadda, yadda. Have fun.

    if [ $# -lt 2 ]; then

     echo "Usage: `basename $0` source /destination/DVD.iso"

     echo ""

     echo " The 'source' can be either a directory containing a single"

     echo " set of isos, or an exploded tree like an ftp site."

     exit 1

    fi

    cleanup() {

    [ ${LOOP:=/tmp/loop} = "/" ] && echo "LOOP mount point = \/, dying!" && exit

    [ -d $LOOP ] && rm -rf $LOOP

    [ ${DVD:=~/mkrhdvd} = "/" ] && echo "DVD data location is \/, dying!" && exit

    [ -d $DVD ] && rm -rf $DVD

    }

    cleanup

    mkdir -p $LOOP

    mkdir -p $DVD

    if [ !`ls $1/*.iso 2>&1>/dev/null ; echo $?` ]; then

     echo "Found ISO CD images..."

     CDS=`expr 0`

     DISKS="1"

     for f in `ls $1/*.iso`; do

     mount -o loop $f $LOOP

     cp -av $LOOP/* $DVD

     if [ -f $LOOP/.discinfo ]; then

     cp -av $LOOP/.discinfo $DVD

     CDS=`expr $CDS + 1`

     if [ $CDS != 1 ] ; then

     DISKS=`echo ${DISKS},${CDS}`

     fi

     fi

     umount $LOOP

     done

     if [ -e $DVD/.discinfo ]; then

     awk '{ if ( NR == 4 ) { print disks } else { print ; } }' disks="$DISKS" $DVD/.discinfo > $DVD/.discinfo.new

     mv $DVD/.discinfo.new $DVD/.discinfo

     fi

    else

     echo "Found FTP-like tree..."

     cp -av $1/* $DVD

     [ -e $1/.discinfo ] && cp -av $1/.discinfo $DVD

    fi

    rm -rf $DVD/isolinux/boot.cat

    find $DVD -name TRANS.TBL | xargs rm -f

    cd $DVD

    mkisofs -J -R -v -T -o $2 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

    /usr/lib/anaconda-runtime/implantisomd5 --force $2

    cleanup

    echo ""

    echo "Process Complete!"

    echo ""

    3 cd /root

    chmod a+x make_dvd.sh

    假设我的5张cd在

    /wind/redhat/rhel-5-server-i386-disc1.iso

    /wind/redhat/rhel-5-server-i386-disc2.iso

    /wind/redhat/rhel-5-server-i386-disc3.iso

    /wind/redhat/rhel-5-server-i386-disc4.iso

    /wind/redhat/rhel-5-server-i386-disc5.iso

    ./make_dvd.sh /wind/redhat /mydoc/rhel-5-server-i386-DVD.iso

    然后在/mydoc目录下产生rhel-5-server-i386-DVD.iso

    5 mkdir /rhel_dvd

    mount -o loop /mydoc/rhel-5-server-i386-DVD.iso /rhel_dvd

    6gedit /etc/yum.repos.d/rhel_local.repo

    内容如下:

    [Cluster]

    name=Red Hat Enterprise Linux $releasever-$basearch-Cluster

    baseurl=file:///rhel_dvd/Cluster

    enabled=1

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    [ClusterStorage]

    name=Red Hat Enterprise Linux $releasever-$basearch-ClusterStorage

    baseurl=file:///rhel_dvd/ClusterStorage

    enabled=1

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    [Server]

    name=Red Hat Enterprise Linux $releasever-$basearch-Server

    baseurl=file:///rhel_dvd/Server

    enabled=1

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    [VT]

    name=Red Hat Enterprise Linux $releasever-$basearch-VT

    baseurl=file:///rhel_dvd/VT

    enabled=1

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    7执行createrepo命令,如果找不到命令,则要先安装createrepo的rpm包,自己google吧

    为了方便,创建一个sh文件

    touch /root/yum.sh

    内容如下:

    mkdir -p /var/rhel/{Server,Cluster,ClusterStorage,VT}

    createrepo -o /var/rhel/Cluster -g /rhel_dvd/Cluster/repodata/comps-rhel5-cluster.xml /rhel_dvd/Cluster

    createrepo -o /var/rhel/ClusterStorage -g /rhel_dvd/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /rhel_dvd/ClusterStorage

    createrepo -o /var/rhel/Server -g /rhel_dvd/Server/repodata/comps-rhel5-server-core.xml /rhel_dvd/Server

    createrepo -o /var/rhel/VT -g /rhel_dvd/VT/repodata/comps-rhel5-vt.xml /rhel_dvd/VT

    mount --bind /var/rhel/Cluster/repodata /rhel_dvd/Cluster/repodata

    mount --bind /var/rhel/ClusterStorage/repodata /rhel_dvd/ClusterStorage/repodata

    mount --bind /var/rhel/Server/repodata /rhel_dvd/Server/repodata

    mount --bind /var/rhel/VT/repodata /rhel_dvd/VT/repodata

    yum clean all

    chmod a+x yum.sh

    ./yum.sh

    完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值