天天看點

簡單定制一個适合自己用的CentOS系統

實驗環境:VMware + CentOS5.6(64bit)

根據自己的習慣,将CentOS重新打包成一個新ISO,可以自動分區、選擇原件包,快速安裝系統。

先用虛拟機按照正常的流程安裝一個CentOS系統,接下來在這系統上去建立我們的定制系統:

1、挂載光驅

mount /dev/cdrom /mnt

2、建立臨時目錄

mkdir  -p /root/iso/CentOS

3、提取需要的RPM包,正常安裝好作業系統在/root目錄下會有install.log檔案,這個就是作業系統安裝RPM包的記錄,我們從這些記錄中,将所需的RPM包從/mnt/CentOS中複制到/root/iso/CentOS裡面去

#!/bin/bash

cd /root

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

DVD='/mnt/CentOS'   

PACKDIR='/root/package.txt'    

NEW_DVD='/root/iso/CentOS/'  

while read LINE

do

cp ${DVD}/${LINE}*.rpm  /${NEW_DVD} || echo "$LINE don't cp......."

done < package.txt

rm -f package.txt

4、把原鏡像除了CentOS目錄外的檔案全部複制至/root/iso目錄下

cd /mnt 

ls | grep -v CentOS | xargs -i cp -Rp {} /home/test/

5、把/root目錄下的anaconda-ks.cfg複制至/root/iso目錄下,并根據自己實際需要修改安裝要求

 # Kickstart file automatically generated by anaconda.

install

cdrom

lang en_US.UTF-8

keyboard us

network --device eth0 --bootproto dhcp

rootpw --iscrypted $1$fupKhGiH$sx2TexUjriSyu..IZUwT9.

firewall --disabled --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --disabled

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda

# 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 --linux

part /boot --fstype ext3 --size=100

part swap --size=512

part / --fstype ext3 --size=100 --grow

%packages

@base

@core

@development-tools

@dialup

@editors

@text-internet

keyutils

openCryptoki

libhbaapi

brltty

dmraid-events-logwatch

libhbalinux

aide

kexec-tools

nfs4-acl-tools

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

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

%post

# Disable unused service

chkconfig NetworkManager off

chkconfig acpid off

chkconfig anacron off

chkconfig atd off

chkconfig auditd off

chkconfig autofs off

chkconfig avahi-daemon off

chkconfig avahi-dnsconfd off

chkconfig bluetooth off

chkconfig capi off

chkconfig conman off

chkconfig cpuspeed off

chkconfig dnsmasq off

chkconfig dund off

chkconfig edac off

chkconfig fcoe off

chkconfig firstboot off

chkconfig gpm off

chkconfig haldaemon off

chkconfig hidd off

chkconfig ip6tables off

chkconfig ipsec off

chkconfig iptables off

chkconfig irda off

chkconfig iscsi off

chkconfig iscsid off

chkconfig isdn off

chkconfig kdump off

chkconfig kudzu off

chkconfig mcstrans off

chkconfig mdmonitor off

chkconfig mdmpd off

chkconfig messagebus off

chkconfig multipathd off

chkconfig netconsole off

chkconfig netfs off

chkconfig netplugd off

chkconfig nfs off

chkconfig nfslock off

chkconfig nscd off

chkconfig oddjobd off

chkconfig pand off

chkconfig pcscd off

chkconfig portmap off

chkconfig psacct off

chkconfig rawdevices off

chkconfig rdisc off

chkconfig readahead_early off

chkconfig readahead_later off

chkconfig restorecond off

chkconfig rpcgssd off

chkconfig rpcidmapd off

chkconfig rpcsvcgssd off

chkconfig saslauthd off

chkconfig sendmail off

chkconfig smartd off

chkconfig sssd off

chkconfig svnserve off

chkconfig tcsd off

chkconfig wpa_supplicant off

chkconfig xfs off

chkconfig xinetd off

chkconfig ypbind off

chkconfig yum-updatesd off

6、讓ISO按照anaconda-ks.cfg檔案來執行安裝

 vi /root/iso/isolinux/isolinux.cfg

Default  linux   修改成default linux  ks=cdrom:/anaconda-ks.cfg

7、生成comps.xml檔案

yum -y install createrepo mkisofs

cd /root/iso

createrepo -g repodata/*comps.xml /root/iso/

8、制作ISO

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

然後下次需要重裝系統的時候就直接使用這個ISO啦,友善快捷!有個缺點就是密碼是按照anaconda-ks.cfg中設定的執行,再研究一下看看能不能設定密碼跟使用者互動的模式。

繼續閱讀