定制打包自己的ISO镜像(kickstart)

来源:互联网 发布:sem优化培训 编辑:程序博客网 时间:2024/05/16 11:50

本文以一个Centos6.5的ISO镜像为基础,添加一些自己的RPM包或者Kickstart文件,重新打包成一个新的ISO镜像。

1. 建立文件目录结构

~/Centos6.5

    + -- isolinux

    |        + -- Packages

    |        + -- ks

    + -- utils

    + -- CoreBase

    + -- PackISO

    + -- AddRPM

2. 拷贝系统文件到新建目录

mount -o loop 挂载Centos6.5.iso到一个目录,然后把所有文件拷贝到isolinux下,注意拷贝到.discinfo文件。再把../isolinux/isolinux/* 拷贝出来


# mv isolinux/Packages/*  PackISO

要使用kickstart的话,把ks文件放到ks文件夹中即可

3.决定打包哪些RPM

Centos6.5核心基本包的选择:

使用一个perl脚本来解析comps.xml文件

(1)安装perl:

# cd PackISO

rpm -Uvh perl-Compress-Raw-Zlib-2.021-136.el6.x86_64.rpm\

                 perl-Compress-Zlib-2.021-136.el6.x86_64.rpm\

                 perl-HTML-Parser-3.64-2.el6.x86_64.rpm\

                 perl-HTML-Tagset-3.20-4.el6.noarch.rpm\

                 perl-IO-Compress-Zlib-2.021-136.el6.x86_64.rpm\

                 perl-IO-Compress-Base-2.021-136.el6.x86_64.rpm\

                 perl-libwww-perl-5.833-2.el6.noarch.rpm\

                 perl-URI-1.40-2.el6.noarch.rpm\

                 perl-XML-Parser-2.36-7.el6.x86_64.rpm\

                 perl-XML-Simple-2.18-6.el6.noarch.rpm

(2)perl工具

follow_deps.pl

http://smorgasbork.com/content/follow_deps.txt

parse_comps.pl

http://smorgasbork.com/content/parse_comps.txt

两个工具放在utils目录下

(3)comps.xml

# cp isolinux/repodata/b4e0b9342ef85d3059ff095fa7f140f654c2cb492837de689a58c581207d9632-comps.xml ./comps.xml

(4)选择核心基本包

# cd CoreBase

#~/Centos6.5/utils/parse_comps.pl ~/Cnetos6.5/comps.xml ~/Centos6.5/PackISO  x86_64

(5)添加自己的rpm包

比如openstack相关的安装包,全部放到AddRPM文件夹下

(6)检测rpm包的依赖问题

把全部要打包的文件全部拷贝到~/Centos6.5/isolinux/Packages

# cp ~/Centos6.5/CoreBase/*.rpm ~/Centos6.5/isolinux/Packages

# cp ~/Centos6.5/AddRPM/*.rpm ~/Centos6.5/isolinux/Packages

使用follow_deps.pl从PackISO中得到相关依赖的rpm包:

# cd ~/Centos6.5/isolinux/Packages

# ~/Centso6.5/utils/follow_deps.pl   ~/Centos6.5/PackISO x86_64


检测依赖:

# mkdir  /tmp/testdb

# rpm --initdb --dbpath /tmp/testdb

# rpm --test --dbpath /tmp/testdb -Uvh *.rpm

把还需要到的依赖包加到Packages里面,直到没有依赖问题。

(7)打包ISO

# cd isolinux

# declare -x discinfo=`head -1 .discinfo`

# createrepo -u "media://$discinfo" -g ~/Centos6.5/comps.xml .

# cd ~/Centos6.5

# mkisofs -o custom.iso -b isolinux.bin -c boot.cat -no-emul-boot    -boot-load-size 4 -boot-info-table -R  -v -T isolinux/


0 0
原创粉丝点击