码迷,mamicode.com
首页 > 其他好文 > 详细

centos 系统裁剪与iso重新封装

时间:2015-12-10 18:49:21      阅读:1203      评论:0      收藏:0      [点我收藏+]

标签:

a.在VM安装linux系统

b.安装定制工具anaconda repodata createrepo mkisofs

c.关联太多采用yum安装 定制过程需要产生comps.xml文件以及生成iso

 

 

1、定制安装系统,选择常用的组件

2、安装制作发行版所需的基本软件包

yum install -y createrepo genisoimage

 

#genisoimage 提供/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.

技术分享

 

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/

 

技术分享

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

vi /data/OS/isolinux/isolinux.cfg

技术分享

 

自定义启动界面

在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/

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

技术分享

10、生成MD5检验码

技术分享

11、测试

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

技术分享

FAQ:

技术分享

 

要把光盘中的“.discinfo”文件拷贝过来,如果没有拷贝此文件,在用光盘安装时

会提示如下错误:“The CentOS CD was not found in any of your CDROM drives.

Please insert the CentOS CD and press OK to retry.”

centos 系统裁剪与iso重新封装

标签:

原文地址:http://www.cnblogs.com/sysk/p/5036681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!