定制CENTOS5.6安装光盘

需要安装的rpm包

awk '/zpjinstalling/{print $2}' install.log |sed 's/^[0-9]*://g' >packages.list

复制

#!/bin/sh  
DEBUG=1 
#CentOS_DVD=/mnt/cdrom  
ALL_RPMS_DIR=/mnt/sda4/dvdo54/CentOS #源光盘RPM包存放的目录  
KOS_RPMS_DIR=/mnt/dvdwk/zpj/disk/CentOS    #精简后RPM包存放的目录  
packages_list=/mnt/dvdwk/zpj/packages.list  #精简后的RPM包列表  
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:$version"  
    fi  
    if [ $DEBUG -eq "1" ] ; then  
        #ls $ALL_RPMS_DIR/$name-$version*  
        ls $ALL_RPMS_DIR/$name*  
        if [ $? -ne 0 ] ; then  
            #echo "cp $ALL_RPMS_DIR/$name-$version* "  
            echo "cp $ALL_RPMS_DIR/$name* "  
        fi  
        else  
            #echo "cp $ALL_RPMS_DIR/$name-$version* $KOS_RPMS_DIR/"  
            #cp $ALL_RPMS_DIR/$name-$version* $KOS_RPMS_DIR/  
            echo "cp $ALL_RPMS_DIR/$name* $KOS_RPMS_DIR/"  
            cp $ALL_RPMS_DIR/$name* $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/  
            echo "cp $ALL_RPMS_DIR/$name* "  
            cp $ALL_RPMS_DIR/$name* $KOS_RPMS_DIR/  
        fi  
    fi  
i=`expr $i + 1`  
done 

检查

createrepo -g repodata/comps.xml disk/

制作ISO

mkisofs -r -J -T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset UTF-8 -o ../Centoszpj.iso disk

http://blog.sina.com.cn/s/blog_659b48590100v4vb.html

背景:

安装centos 5 时,无法全部选择安装包安装,想简单化安装步骤。

需要用到工具和文件:
centos 5.6 安装镜像,我用的是DVD镜像
UltraISO工具
还需要一个windows环境的机器。

实现原理:
使用定制安装配置文件:anaconda-ks.cfg 来配置安装的步骤和需要安装的软件包。
按照自己的需求编写anaconda-ks.cfg文件,以及将需要安装的RPM包替换原来安装镜像的CENTOS目录,达到目的。

实现步骤:
1 生成anaconda-ks.cfg文件:
有两种方式,第一种,按照自己的要求安装一边操作系统,之后会在root根目录下生成anaconda-ks.cfg文件。第二种是自己编辑。

2 修改anaconda-ks.cfg文件:
修改anaconda-ks.cfg文件,将分区部分的设置注释掉。
类似于:

#raid swap --fstype swap --level=RAID1 --device=md0 raid.34 raid.35

#raid /boot --fstype ext3 --level=RAID1 --device=md1 raid.36 raid.37

#raid / --fstype ext3 --level=RAID1 --device=md2 raid.38 raid.39

我使用的是linux自带的raid装系统,类似这样的分区配置注释掉就行。

以下是anaconda-ks.cfg完全安装的样板:

# Kickstart file automatically generated by anaconda.


install

cdrom

lang zh_CN.UTF-8

keyboard us

xconfig --startxonboot

network --device eth0 --onboot no --bootproto dhcp

rootpw --iscrypted $1$sqWHb25u$zS1z2PvG1hN3nonWB.Zlj1

firewall --disable --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --disable

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda,sdb --append="rhgb quiet"

# 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 --all --drives=sda,sdb

#part raid.36 --size=100 --ondisk=sda

#part raid.37 --size=100 --ondisk=sdb

#part raid.35 --size=2048 --ondisk=sdb

#part raid.34 --size=2048 --ondisk=sda

#part raid.39 --size=100 --grow --ondisk=sdb

#part raid.38 --size=100 --grow --ondisk=sda

#raid swap --fstype swap --level=RAID1 --device=md0 raid.34 raid.35

#raid /boot --fstype ext3 --level=RAID1 --device=md1 raid.36 raid.37

#raid / --fstype ext3 --level=RAID1 --device=md2 raid.38 raid.39


%packages

@admin-tools

@authoring-and-publishing

@base

@chinese-support

@cluster-storage

@clustering

@core

@dns-server

@development-libs

@development-tools

@dialup

@editors

@emacs

@engineering-and-scientific

@ftp-server

@gnome-desktop

@gnome-software-development

@games

@graphical-internet

@graphics

@java

@java-development

@kde-desktop

@kde-software-development

@kvm

@legacy-network-server

@legacy-software-development

@legacy-software-support

@mail-server

@mysql

@network-server

@news-server

@office

@openfabrics-enterprise-distribution

@sql-server

@printing

@ruby

@server-cfg

@sound-and-video

@system-tools

@text-internet

@xen

@web-server

@smb-server

@x-software-development

@base-x

system-config-kickstart

system-config-netboot

system-config-netboot-cmd

scribus

tetex-xdvi

keyutils

openCryptoki

libhbaapi

brltty

dmraid-events-logwatch

libhbalinux

aide

kexec-tools

nfs4-acl-tools

gpart

tpm-tools

iscsi-initiator-utils

trousers

bridge-utils

authd

fipscheck

squashfs-tools

star

sssd

hardlink

freeipmi

x86info

device-mapper-multipath

hfsutils

fcoe-utils

edac-utils

hesinfo

fuse-libs

convmv

fuse

cpufreq-utils

openswan

isns-utils

scsi-target-utils

kmod-gnbd-xen

kmod-gfs-xen

freeipmi

systemtap-sdt-devel

perl-XML-SAX

pth

perl-XML-Twig

perl-XML-Dumper

perl-TimeDate

perl-libxml-perl

tog-pegasus-devel

perl-Convert-ASN1

libstdc++44-devel

libassuan-devel

perl-XML-NamespaceSupport

perl-DateManip

libksba-devel

fipscheck-devel

sblim-cmpi-dhcp-devel

perl-Crypt-SSLeay

perl-Mozilla-LDAP

pth-devel

log4cpp-devel

perl-LDAP

perl-XML-Grove

libpciaccess-devel

python-imaging

libhbaapi-devel

fuse-devel

libksba

perl-Archive-Zip

gcc44-c++

gcc44-gfortran

pexpect

dejagnu

imake

java-1.6.0-openjdk-devel

gcc-objc

ElectricFence

memtest86+

gcc-gnat

libgfortran44

gcc44

expect

java-1.6.0-openjdk

unifdef

nasm

statserial

efax

emacs

vim-X11

emacs-nox

gnuplot-emacs

lapack

lam

pvm

xferstats

gnome-bluetooth

gconf-editor

gnome-pilot-conduits

compiz

gnome-keyring-manager

dasher

libgnome-java

gob2

libgtk-java

libglade-java

libgconf-java

kdegames

gftp

thunderbird

xchat

agg

kdegraphics

libsane-hpaio

xfig

bsh-demo

kdeadmin

kdesdk-devel

qpixman-devel

log4cpp-devel

celt051-devel

libvirt-cim

Virtualization-en-US

libcmpiutil

qcairo-devel

qffmpeg-devel

telnet-server

talk-server

rsh-server

bootparamd

rusers-server

tftp-server

rarpd

compat-db

openssl097a

qt4

compat-readline43

compat-openldap

compat-slang

openmotif22

gtk+

mod_auth_mysql

mysql-devel

qt-MySQL

mysql-bench

php-mysql

ypserv

openldap-servers

amanda-server

vnc-server

quagga

dhcpv6

radvd

privoxy

dhcp

krb5-server

freeradius

kdepim

openoffice.org-pyuno

openoffice.org-base

openoffice.org-javafilter

openoffice.org-testtools

taskjuggler

jpilot

tetex-xdvi

openoffice.org-emailmerge

mvapich2

mpitests-mvapich

ibsim

mpitests-mvapich2

mstflint

tvflash

srptools

qlvnictools

opensm

postgresql-tcl

unixODBC-kde

qt-ODBC

postgresql-contrib

postgresql-pl

postgresql-test

libdbi-dbd-pgsql

postgresql-jdbc

postgresql-odbc

postgresql-docs

bluez-utils-cups

eruby

ruby-ri

system-config-bind

system-switch-mail-gnome

system-config-boot

dvgrab

xcdroast

mikmod

kdemultimedia

k3b

arpwatch

adjtimex

avahi-tools

rdesktop

tn5250

lsscsi

uucp

dtach

festival

tsclient

x3270

gnutls-utils

lslk

arptables_jf

am-utils

uuidd

createrepo

mtx

nmap-frontend

wireshark-gnome

audit

mrtg

net-snmp-utils

mc

sblim-gather

amanda-client

sblim-wbemcli

sysstat

gnome-nettool

iptraf

mt-st

vlock

dstat

tftp

epic

lynx

Virtualization-en-US

php-odbc

tomcat5-admin-webapps

php-pear

mod_auth_kerb

tomcat5-webapps

mod_nss

mod_auth_pgsql

mod_auth_mysql

mod_authz_ldap

tomcat5

php-mysql

php-pgsql

mod_revocator

xorg-x11-xbitmaps

mesa-libGLw-devel

openmotif-devel

icon-naming-utils

mesa-libGLU-devel

icon-slicer

xorg-x11-server-sdk

libXp-devel

xorg-x11-resutils

xorg-x11-xsm

xorg-x11-server-Xnest

xorg-x11-xfs-utils

xorg-x11-server-Xvfb

switchdesk


3 整理需要安装的RPM包:
两种方式,按照自己需求安装centos5 的话,在root根目录下有一个,install.log文件是记录的安装的RPM包,要么就自己在里边自己找(这个难度大)
先将centos5.6的iso挂在起来:
mount -o loop  CentOS-5.6-i386-bin-DVD.iso /tmp/centos5.6
之后运行脚本:
#!/bin/bash
test -d /tmp/rpm
if [ $? -ne 0 ];
then
mkdir /tmp/rpm
fi

FILE=~/install.log
KEYWORD=`head -1 install.log | cut -d" " -f1`
NUM=`grep $KEYWORD $FILE | wc -l`
cat install.log | grep $KEYWORD | cut -d" " -f2 > rpm.tmp
egrep -v ^[0-9] rpm.tmp > rpm.txt
egrep ^[0-9] rpm.tmp | cut -d":" -f2 >> rpm.txt
NUM1=`wc -l rpm.txt | cut -d" " -f1`
if [ $NUM = $NUM1 ];
then
while read LINE
do
cp /tmp/centos5.6/CENTOS/[$LINE].rpm /tmp/rpm/
done < rpm.txt
else
echo "something wrong"
fi

将安装的RPM包拷贝至/tmp/rpm目录下

4 整合建立新的ISO文件:

将新的RPM目录和anaconda-ks.cfg拷贝至windows平台机器上,并将anaconda-ks.cfg文件更名:ks.cfg(不更名也行)。

使用UltraISO工具将centos 5.6 的ISO 打开,使用RPM目录内的文件替换 CENTOS 内的所有RPM包,并将ks.cfg上船只 iso 的根目录。

修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值