一、准备rhel-server-5.4-i386-dvd.iso

二、准备4个文件

1、comps-server.xml

----来自原始光盘的repodata目录中的Server/repodata/目录中的comps-rhel5-server.xml的修改,修改方法参

考 http://cooker.techsnail.com/index.php/Custom_Linux_bootable_CD

2、install.log

----来自已经完成安装的系统,内容是选择core和base和dialup软件组后装完的系统中所带的RPM包列表。

3、makesrcdisk.sh 【未测试】 【注意:ks.cfg中有Extra目录, 但脚本中未添加Extra目录,如需要增加自己的软件,可以在上面的脚本中加入】

----安装过程脚本,内容如下,见脚本即见步骤。

#!/bin/bash

########################################################
## set parameter
########################################################
currentpath=`dirname $0`
cdromsourceiso=$currentpath/rhel-server-5.4-i386-dvd.iso
mediapath=/mnt
isoimagepath=/iso
installrpmlist=$currentpath/install.log
xmlrepofile=$currentpath/comps-hissage-server.xml 
destisofile=mini32.iso
kickstartfile=$currentpath/ks_2.cfg
isomenufile=$currentpath/isolinux.cfg

if [[ -z $currentpath ]] || [[ -z $cdromsourceiso ]] || [[ -z $mediapath ]] || [[ -z $isoimagepath ]] || [[ -z $installrpmlist ]] || [[ -z $xmlrepofile ]] || [[ -z $destisofile ]]
then
    echo "missing args"
    exit
fi

########################################################
## mount iso image
########################################################
if [[ `ls /mnt|wc -l` -ne 0 ]]
then 
    echo "/mnt mount point is not empty"
    exit
fi
mount -t iso9660 -o loop $cdromsourceiso /mnt
if [[ `ls /mnt|wc -l` -eq 0 ]]
then 
    echo "mount iso image failed"
    exit
fi

########################################################
## check required rpm 
########################################################
if  ! rpm -qa|grep -q createrepo   ||  ! rpm -qa|grep -q mkisofs ||  ! rpm -qa|grep -q rsync
then
   echo "missing rpms createrepo or mkisofs or rsync"
   exit
fi 
    
########################################################
## copy required file
########################################################
rsync -av --exclude Server/  $mediapath/  $isoimagepath/
mkdir -p $isoimagepath/Server

########################################################
## copy customed rpms
########################################################
less  $installrpmlist| awk -F" " '/Installing/ {print $2}'|while read line
do
    line=`echo $line|sed 's/[0-9]\+:\(.*\)$/\1/'` 
    rpmfile=$line.rpm
    if [[ ! -e $mediapath/Server/$rpmfile ]]
    then
        echo "not exit $rpmfile"
     exit
    fi
    cp -a $mediapath/Server/$rpmfile $isoimagepath/Server/
done

########################################################
## create repo
########################################################
discinfo=$(head -1 $isoimagepath/.discinfo)
if [[ -z $discinfo ]] || [[ $discinfo = "" ]]
then
   echo "missing discinfo"
   exit
fi
/bin/rm -f $isoimagepath/Server/repodata/*
/bin/cp -f $xmlrepofile $isoimagepath/Server/repodata
createrepo -u "media://$discinfo"  -g repodata/$xmlrepofile $isoimagepath/Server

########################################################
## create disk
########################################################
/bin/cp -f $isomenufile $isoimagepath/isolinux/isolinux.cfg
/bin/cp -f $kickstartfile $isoimagepath/ks.cfg
mkisofs -R -J -T -v -no-emul-boot  -boot-load-size 4  -boot-info-table -V Hesine -b isolinux/isolinux.bin  -c isolinux/boot.cat -o $destisofile  $isoimagepath
echo "create iso success!"

4、ks.cfg

光盘kickstart文件,内容如下

install
cdrom
#xconfig --startxonboot
text
key 2515dd4e215225dd
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$ra5hd2y4$nqcZPQxT75.tewecKyf7Q1
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
firstboot --disable
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux
#part swap --recommended
#part / --fstype ext3 --size=7000 --grow

%post --nochroot --log=/mnt/sysimage/root/copy.log --erroronfail
#!/bin/sh
mkdir -p /mnt/cdrom
mount -t iso9660 /tmp/cdrom /mnt/cdrom
cp -a /mnt/cdrom/Extra /mnt/sysimage
umount /mnt/cdrom

%post --log=/mnt/sysimage/root/post.log --erroronfail
#!/bin/sh
cd /Extra/software
/bin/bash /Extra/software/postscript.sh

%packages
@base
@core
@dialup

5.isolinux.cfg

修改头三行为

default linux ks=cdrom:/ks.cfg
prompt 1
timeout 1

三、必备软件包

rsync、createrepo、mkisofs

四、运行脚本

makesrcdisk.sh

五、制作Redhat6.0安装光盘

因为光盘目录有变化,因此制作库的软件包有升级,拷贝文件的脚本有变化,其他雷同

脚本如下

makesrcdisk.sh脚本如下

#!/bin/bash

########################################################
## set parameter
########################################################
currentpath=`dirname $0`
cdromsourceiso=$currentpath/rhel-server-6.0-x86_64-dvd.iso
mediapath=/mnt
isoimagepath=/iso
installrpmlist=$currentpath/install.log
xmlrepofile=$currentpath/comps-hissage-server.xml
destisofile=mini64.iso
kickstartfile=$currentpath/ks_2.cfg
isomenufile=$currentpath/isolinux.cfg
if [[ -z $currentpath ]] || [[ -z $cdromsourceiso ]] || [[ -z $mediapath ]] || [[ -z $isoimagepath ]] || [[ -z $installrpmlist ]] || [[ -z $xmlrepofile ]] || [[ -z $destisofile ]]
then
    echo "missing args"
    exit
fi

########################################################
## mount iso image
########################################################
if [[ `ls /mnt|wc -l` -ne 0 ]]
then 
    echo "/mnt mount point is not empty"
    exit
fi
mount -t iso9660 -o loop $cdromsourceiso /mnt
if [[ `ls /mnt|wc -l` -eq 0 ]]
then
    echo "mount iso image failed"
    exit
fi

########################################################
## check required rpm 
########################################################
if  ! rpm -qa|grep -q createrepo   ||  ! rpm -qa|grep -q mkisofs ||  ! rpm -qa|grep -q rsync
then
   echo "missing rpms createrepo or mkisofs or rsync"
   exit
fi

########################################################
## copy required file
########################################################
rsync -av --exclude Packages/ --exclude Server/repodata/ $mediapath/  $isoimagepath/
mkdir -p $isoimagepath/Packages
mkdir -p $isoimagepath/Server/repodata

########################################################
## copy customed rpms
########################################################
less  $installrpmlist| awk -F" " '/Installing/ {print $2}'|while read line
do
    rpmfile=$line.rpm
    if [[ ! -e $mediapath/Packages/$rpmfile ]]
    then
        echo "not exit $rpmfile"
        exit
    fi
    cp -a $mediapath/Packages/$rpmfile $isoimagepath/Packages/
done

########################################################
## create repo
########################################################
discinfo=$(head -1 $isoimagepath/.discinfo)
if [[ -z $discinfo ]] || [[ $discinfo = "" ]]
then
   echo "missing discinfo"
   exit
fi
/bin/rm -f $isoimagepath/Server/repodata/*
/bin/cp -f $xmlrepofile $isoimagepath/Server/repodata
createrepo -u "media://$discinfo"  -g repodata/comps-hissage-server-2.xml $isoimagepath/Server

########################################################
## create disk
########################################################
/bin/cp -f $isomenufile $isoimagepath/isolinux/isolinux.cfg
/bin/cp -f $kickstartfile $isoimagepath/ks.cfg
mkisofs -R -J -T -v -no-emul-boot  -boot-load-size 4  -boot-info-table -V Hesine -b isolinux/isolinux.bin  -c isolinux/boot.cat -o $destisofile  $isoimagepath
echo "create iso success!"

六、参考

http://cooker.techsnail.com/index.php/Custom_Linux_bootable_CD

http://www.redhat.com/archives/kickstart-list/2011-March/msg00007.html

http://forums.fedoraforum.org/showthread.php?t=247303

http://www.linuxquestions.org/questions/red-hat-31/create-custom-rhel5-4-iso-802845/

http://www.linuxtopia.org/online_books/rhel6/rhel_6_migration_guide/rhel_6_migration_ch02s02s02s04.html

How to custom RedHat DVD相关推荐

  1. linux版本i686,linux-x86_64平台上的gcc i686

    我在RHEL X86_64上安装GCC i686时遇到一些麻烦. 确实,我必须在此平台上构建一些32位软件和共享库. 我可以在32位平台(Linux或Windows)上构建这些软件和库. 我的问题在这 ...

  2. 【推荐】Redhat 5配置YUM服务器【利用DVD盘做yum源】

    话说N久没写东东了,生命在于运动,博客在于更新,更新下吧. 平台还是Redhat 5里,要准备的东西很简单,只要一张DVD光盘就可以了. 当然,还是老话,这里用的是VMware虚拟机,不是物理机,只是 ...

  3. linux iso合并,把RedHat Linux 5.0的CD ISO合并成DVD的脚本

    最近找RedHat Linux5.0 x86_64的DVD ISO文件,结果一直找不到,却找到了6个cd的ISO,因为最后一个为源码盘,暂时不管,把其他5个CD合并成一个DVD. 脚本如下: vim ...

  4. redhat linux光盘4,技巧:把3张Redhat Linux 9的安装光盘刻录到一张DVD光盘中

    有DVD刻录机了,想把3张RedHat Linux 9的安装光盘刻录到一张DVD中.我尝试过用UltraISO打开第一张盘的ISO后再把其余两张德文件也加进去,然后保存为一个1.7GB左右的ISO文件 ...

  5. [转]VirtualBox下RedHat 5.4 使用DVD光盘作为yum源

    转自:http://blog.csdn.net/lele5000/article/details/7080749 1.首先挂载光盘 设备-分配光驱-Choose a virtual CD/DVD di ...

  6. redhat使用DVD光盘作为yum软件源

    1. 放系统光盘到光驱 2. 创建光盘挂载目录 mkdir -p /mnt/cdrom 3. 挂载光驱到/mnt/cdrom目录 mount /dev/cdrom /mnt/cdrom 返回mount ...

  7. RHEL 4 update 4 DVD版制作

       RedHat Enterprise Linux 一般说来 RedHat 只有提供标准光盘 ISO 档案,伴随软件套件的功能演进,RHEL 4 update 4 已经有 5 张光盘片的容量.不过一 ...

  8. VMWare虚拟机安装RedHat Linux全过程

    简单的说,vmware就是一个虚拟机软件,它可以在你现有的OS上虚拟出一个新的子机,这个子机一方面是建立在你正在运行的OS之上的,同时, 它又拥有自己独立的CPU,硬盘,内存及各个硬件,当然,这些都是 ...

  9. Redhat Linux 8.3 安装方法

    Redhat Linux 8.3 安装方法 Red Hat Linux Enterprise 8.3安装教程 一,创建虚拟机 1.打开VMware,点击创建新的虚拟机,选择自定义类型配置: 2,选择硬 ...

最新文章

  1. Substance Painter实时角色制作视频教程
  2. SIP协议的传输层原理报文解析(解读rfc3581)(待排版)
  3. 点云处理不得劲?球卷积了解一下
  4. 支持向量回归 svr
  5. Metaphors for a richer understanding of software development -- Code complete reading notes(2)
  6. SAP Spartacus lock focus directive如何判断有没有focusable children
  7. php引用类,thinkphp引用类的使用
  8. 厦门one_理想ONE真是“500万内最好的车”?
  9. python编程(rq调度系统)
  10. 自动控制原理5.1---频率特性
  11. 【英语四六级-必背单词】高中英语单词(C - 1)MP3试听与下载
  12. 英语砖石法则(三)----用好你的耳朵
  13. 微慕小程序专业版V3.6.6发布
  14. 如何用计算机打出平方,平方符号在电脑怎么打出来(电脑输入平方符号的2种方法)...
  15. 【java】Java中关于String类型的详解
  16. 单工通信、半双工通信和双工通信
  17. js 递归树根据子节点获取所有父节点
  18. CentOS7 安装Chrome
  19. 人工智能之数学基础篇—线性代数基础(下)
  20. Android 移动广告sdk的原理

热门文章

  1. 接口应用练习题(用接口的方式实现某网上商城的网上支付功能)
  2. 【RS】Amazon.com recommendations: item-to-item collaborative filtering - 亚马逊推荐:基于物品的协同过滤...
  3. Java URL协议扩展实现
  4. 浪潮存储双活方案:新疆道路运输管理局的大数据应用不再是梦
  5. 2017中国新型智慧城市创新50强在京发布
  6. linux磁盘和文件系统管理
  7. 链路聚合-CISCO
  8. 语音通话框架_普通话考试得高分的方法
  9. 华为ac控制器web配置手册_家庭WIFI网络规划设计与配置实战,一文教会你
  10. oracle删除定义变量,Oracle存储过程,临时表的创建、删除,变量的定义和使用