俗话说一瘦遮三丑,一胖全没有。原生的系统过于庞大和臃肿,工作中有很多组件和安装包根本是用不到的,只安装我们需要的组件,并实现自动安装,这样在产线批量布署服务器的时候,显的效率非常高。
a.在VM安装linux系统
b.安装定制工具anaconda repodata createrepo mkisofs
c.关联太多采用yum安装 定制过程需要产生comps.xml文件以及生成iso

1、定制安装系统,选择常用的组件
2、安装制作发行版所需的基本软件包
yum install -y createrepo genisop_w_picpath#genisop_w_picpath 提供/usr/bin/mkisofs 命令用于重新生成iso
3、生成安装系统所需的rpm文件列表
awk '/Installing/{print $2}' install.log |sed 's/^[0-9]*://g' >/root/packages.list#生成后,需要仔细看该文件,一般会在某些文件开始部分如“1:”这样的字符,需要删除这些字符,否在后面执行copy动作会报错
4、创建定制工作目录
mkdir -p /mnt/cdrom
mkdir -p /data/OS
mount /dev/cdrom /mnt/cdrom
rsync -a --exclude=Packages /mnt/cdrom/* /data/OS   #将源系统镜像除packages目录所有文件拷贝到/data/OS
mkdir /data/OS/Packages

查看是否有.discinfo文件,如果没有将光盘里的文件拷贝到/data/OS;若无此文件安装的时候将会出现disk not found.

怎么制作centos启动盘 centos 制作iso_awk

 

5、复制精简后的RPM包

vi /data/cprmps.sh           #创建自动复制RPM包脚本
#!/bin/bash
DEBUG=0
CentOS_DVD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/Packages
KOS_RPMS_DIR=/data/OS/Packages
packages_list=/root/packages.list
number_of_packages=`cat $packages_list | wc -l`
i=1
    while [ $i -le $number_of_packages ] ; do
        line=`head -n $i $packages_list | tail -n -1`
        name=`echo $line | awk '{print $1}'`
        version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
    if [ $DEBUG -eq "1" ] ; then
        echo $i: $line
        echo $name
        echo $version
    fi
    if [ $DEBUG -eq "1" ] ; then
        ls $ALL_RPMS_DIR/$name-$version*
        if [ $? -ne 0 ] ; then
            echo "cp $ALL_RPMS_DIR/$name-$version* "
        fi
        else
            echo "cp $ALL_RPMS_DIR/$name-$version* $KOS_RPMS_DIR/"
            cp $ALL_RPMS_DIR/$name-$version* $KOS_RPMS_DIR/
        # in case the copy failed
        if [ $? -ne 0 ] ; then
            echo "cp $ALL_RPMS_DIR/$name-$version* "
            cp $ALL_RPMS_DIR/$name* $KOS_RPMS_DIR/
        fi
    fi
i=`expr $i + 1`
done
 
 
#执行脚本
sh  /data/cprmps.sh
6、配置kickstart脚本
ks文件主要分为三个部分
a、系统安装及配置
b、自定义安装准备(%post --nochroot)
c、用户自定义安装(%post)

系统安装及配置一般写在ks.cfg文件最前面,定义系统安装设置,以%post –nochroot为结束标志,接着是用户自定义安装准备部分,以“%post --nochroot”作为开始,以“%post”作为结束,

自定义安装部分以“%post”作为开始。
一般方便可以直接由root下面的anaconda-ks.cfg修改vi /data/OS/isolinux/jeffery.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
cdrom
# Root password jeffery
rootpw --iscrypted  $1$HaJb7jcC$Hg.5DlmP2uheGxf88BdQ3. 
# System authorization information
auth  --useshadow  --passalgo=md5
# Use graphical install
#graphical
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=100
part swap --fstype="swap" --size=1500
part / --fstype="ext4" --grow --size=1
%packages
@security-tools
aide
amtu
hmaccalc
openscap
openscap-utils
tpm-tools
trousers
%end

 

 

7、生成仓库文件comps.xml
cd /data/OS
createrepo -g repodata/*-comps.xml /data/OS/

怎么制作centos启动盘 centos 制作iso_python_02

 

8、让系统从kickstart配置启动安装

vi /data/OS/isolinux/isolinux.cfg

怎么制作centos启动盘 centos 制作iso_linux_03


自定义启动界面
在isolinux里面有三个文件和自定义安装界面有关
boot.msg是定义启动界面如何显示
isolinux.cfg决定如何处理用户的输入,并执行对应的安装过程
splash.lss是启动界面的背景图片 


9、生成ISO文件
cd /data/OS

mkisofs -o /root/Jeffery_CentOS.6.5_x86.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table  -joliet-long  -R -J -v -T /data/OS/

如果出现下面 基本上就定制成功了 

怎么制作centos启动盘 centos 制作iso_怎么制作centos启动盘_04

10、生成MD5检验码

怎么制作centos启动盘 centos 制作iso_python_05

 

11、测试

新建一台机器 使用定制的iso 

怎么制作centos启动盘 centos 制作iso_awk_06

 

 

 

FAQ:

怎么制作centos启动盘 centos 制作iso_python_07

要把光盘中的“.discinfo”文件拷贝过来,如果没有拷贝此文件,在用光盘安装时
会提示如下错误:“The CentOS CD was not found in any of your CDROM drives.
Please insert the CentOS CD and press OK to retry.”


https://blog.51cto.com/oceanszf/1536284