CentOS 6.3定製自動安裝
之前有折騰過CentOS5.x版本,今天在論壇中看到有哥們提問關於最新版本的定製光碟片,按照這之前的方法不成功。我特意下載一個CentOS 6.3 進行測試並記錄過程一起分享,發現其實方法和之前的區別不大。由於水平有限,環境有限,所以不能保證這是十分的正確的。
測試環境:VMware Workstation 8.0 CentOS 6.3 x86_64
首先當然是下載一個CentOS 6.3
CentOS 6.3:
32位:http://mirror.centos.org/centos/6.3/isos/i386/CentOS-6.3-i386-bin-DVD1to2.torrent
64位:http://mirror.centos.org/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-bin-DVD1to2.torrent
安裝系統時選擇所需要的軟體包進行迷你安裝,安裝過程和之前的版本差不多,這裡略過,接下來就開始以下步驟:
1.安裝所需的軟體包:
[root@localhost ~]# yum -y install createrepo mkisofs isomd5sum
2.根據當前系統已安裝的軟體包產生安裝系統所需要的rpm列表
[root@localhost ~]# awk '/Installing/{print $2}' install.log |sed 's/^[0-9]*://g' >/root/packages.list
3.建立定製所需要的目錄並把除Packages目錄以外的檔案複製到新的系統目錄
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mkdir -p /data/OS
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
[root@localhost ~]# rsync -a --exclude=Packages /mnt/cdrom/ /data/OS/
[root@localhost ~]# mkdir /data/OS/Packages
4.使用指令碼自動複製所需要的RPM包到建立立的光碟片目錄中Packages
[root@localhost ~]# vim cprpms.sh
1.
#!/bin/bash
2.
SRC_RPMS=/mnt/cdrom/Packages
3.
DST_RPMS=/data/OS/Packages
4.
packages_list=/root/packages.list
5.
number_of_packages=`cat $packages_list | wc -l`
6.
i=1
7.
while [ $i -le $number_of_packages ] ;
8.
do
9.
name=`head -n $i $packages_list | tail -n -1`
10.
echo "cp $SRC_RPMS/$name* $DST_RPMS/"
11.
cp $SRC_RPMS/$name* $DST_RPMS/
12.
i=`expr $i + 1`
13.
done
[root@localhost ~]# sh cprpms.sh
5.配置kickstart指令碼
[root@localhost ~]# vim /data/OS/isolinux/ks.cfg
1.
#platform=x86, AMD64, or Intel EM64T
2.
# Firewall configuration
3.
firewall --disabled
4.
# Install OS instead of upgrade
5.
install
6.
# Use CDROM installation media
7.
cdrom
8.
# Root password default is "redhat"
9.
rootpw --iscrypted $1$36bsCbH1$UDJ6eCqPi2Nm1KsgajvHs1
10.
# System authorization information
11.
auth --useshadow --passalgo=md5
12.
# Use text mode install
13.
text
14.
firstboot --disable
15.
# System keyboard
16.
keyboard us
17.
# System language
18.
lang en_US
19.
# SELinux configuration
20.
selinux --disabled
21.
# Do not configure the X Window System
22.
skipx
23.
# Installation logging level
24.
logging --level=info
25.
# Reboot after installation
26.
reboot
27.
# System timezone
28.
timezone Asia/Shanghai
29.
# Network information
30.
network --bootproto=dhcp --device=eth0 --onboot=on –noipv6
31.
# System bootloader configuration
32.
bootloader --location=mbr
33.
# Clear the Master Boot Record
34.
zerombr
35.
# Partition clearing information
36.
clearpart --all --initlabel
37.
# Disk partitioning information
38.
part /boot --fstype="ext4" --size=100
39.
part / --fstype="ext4" --size=5120
40.
part swap --size=1024
41.
part /data --fstype="ext4" --grow --size=1
42.
%packages
43.
@base
44.
@core
45.
@development
46.
@server-policy
47.
sgpio
48.
ntp
49.
6.讓系統從kickstart配置啟動安裝
[root@localhost OS]# vim /data/OS/isolinux/isolinux.cfg
default linux
label linux
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img #修改行
7.產生rpm包的依賴關係
[root@localhost ~]# cd /data/OS/
[root@localhost OS]# createrepo -g repodata/*-comps.xml /data/OS/
[root@localhost OS]# declare -x discinfo=`head -1 .discinfo`
[root@localhost OS]# createrepo -u "media://$discinfo" -g repodata/*-comps.xml /data/OS/
8.產生ISO鏡像檔案
[root@localhost ~]# cd /data/OS/
[root@localhost OS]# mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot \
-allow-leading-dots -no-bak -o /data/CentOS-6.3-x86_64.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table /data/OS
9.產生MD5校正碼
[root@localhost ~]# implantisomd5 /data/CentOS-6.3-x86_64.iso