设为首页 加入收藏

TOP

利用Shell脚本创建基于本机的ISO镜像
2014-11-24 07:29:27 来源: 作者: 【 】 浏览:0
Tags:利用 Shell 脚本 创建 基于 ISO 镜像

前提:1.以当前系统的anaconda-ks.cfg为模板,创建kickstart文件
2.以install.log为模板摘取其中软件包包名信息并复制这些软件包到/tmp/iso目录中去,而后要复制过来的目录做createrepo(注意要保留原有光盘上的目录结构,比如Server,VT等而复制来的软件包应按原来的位置存放)
3.将第一步创建的kickstart文件复制到/tmp/iso目录中为ks.cfg
4.创建光盘镜像


#!/bin/bash
#
cat /root/install.log |awk '{print $2}' |sed 's/.*://g' >>/tmp/pkglist.txt
MYFILE='/tmp/pkglist.txt'
LDIR='/mnt/cdrom'
MDIR='/tmp/iso'
let count=0


[ -e $MDIR ] && mv $MDIR $MDIR.old && mkdir -p $MDIR/{Cluster,ClusterStorage,Server,VT} 2>>/tmp/error1.txt || mkdir -p $MDIR/{Cluster,ClusterStorage,Server,VT} 2>>/tmp/error1.txt

while read LINE
do
for I in Cluster ClusterStorage Server VT ;do
if cp -r $LDIR/$I/$LINE.rpm $MDIR/$I 2>>/tmp/error2.txt ;then
let COUNT++
echo -e "${COUNT}:$LINE.rpm copy \033[31msuccessfully...\033[0m"
break
else
continue
fi
done
done < $MYFILE

echo -e "\033[31,5mcopy successfylly......\033[0m"

cp -r $LDIR/{isolinux,.discinfo,EULA,eula.en_US,GPL,images,README-en,TRANS.TBL,.treeinfo} $MDIR

echo -e "\033[32mcontinue...\033[0m"

[ -x `which wget` ] && wget ftp://192.168.0.254/pub/gls/server.repo /etc/yum.repos.d/ || rpm -i $LDIR/Server/wget-1.11.4-2.el5.i386.rpm $>/dev/null


yum clean all &>/dev/null

[ -x `which createrepo` ] && echo "The command createrepo exits..." || rpm -i $LDIR/Server/createrepo-0.4.11-3.el5.noarch.rpm &>/dev/null

cd $MDIR/Cluster/
createrepo -g repodata/comps-rhel5-cluster.xml ./
cd $MDIR/ClusterStorage/
createrepo -g repodata/comps-rhel5-cluster-st.xml ./
cd $MDIR/Server/
createrepo -g repodata/comps-rhel5-server-core.xml ./
cd $MDIR/VT/
createrepo -g repodata/comps-rhel5-vt.xml ./
rm -rf $MDIR/*/.olddata/ &>/dev/null

echo -e "\033[34mcreaterepo successfully...\033[0m"

cp /root/anaconda-ks.cfg $MDIR/ks.cfg
sed -i '20,26s/^#//g' $MDIR/ks.cfg

find $MDIR/isolinux -name "*" -exec chmod u+w {} \;

sed -i 's/default linux/default linux=cdrom:/ks.cfg/g' $MDIR/isolinux/isolinux.cfg

echo -e "\033[31mStart make linux ISO\033[0m"

cd /tmp
mkisofs -o mylinux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/

echo -e "The \033[31,5mISO\033[0m created successfully..."


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle RAC Linux 安装 出现ssh的.. 下一篇实现Android屏幕控制Androidscree..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)