2013年12月6日

CentOS 一鍵安裝小筆記 (Kickstart)

1.使用原版 CentOS-6.4-i386-bin-DVD1.iso iso檔在虛擬機上進行第一次安裝,套件部分依個人需求選擇
2.取得 /root/anaconda-ks.cfg ,裡面包含了剛剛選擇的套件
3.將  iso 檔掛載後複製需要的檔案到硬碟裡面
4.編輯 kickstart 腳本,詳細說明可以看鳥哥或是google
5.使用軟體重新產生 report 訊息
6.產生 iso 檔
7.產生 iso 檔 MD5


把需要的檔案用 script 複製到硬碟中
[root@centos ~]# mkdir /mnt/cdrom
[root@centos ~]# mount /dev/cdrom /mnt/cdrom
[root@centos ~]# mkdir /iso
[root@centos ~]# rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/ /iso/
[root@centos ~]# mkdir -p /iso/{Packages,repodata}

[root@centos ~]# vi copyiso.sh
#!/bin/bash
cd /root
awk '/Installing/{print $2}' install.log | sed 's/^*://g' >package.txt
SRC_RPMS=/mnt/cdrom/Packages
DST_RPMS=/iso/Packages
packages_list=/root/package.txt
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ;
do
name=`head -n $i $packages_list | tail -n -1`
echo "cp $SRC_RPMS/$name* $DST_RPMS/"
cp $SRC_RPMS/$name* $DST_RPMS/
i=`expr $i + 1`
done

[root@centos ~]# sh copyiso.sh



把 ks.cfg 複製到 /iso/isolinux/ 目錄下
然後修改 isolinux.cfg

用 yum 安裝需要的軟體,然後產生新的 repodata 下的檔案
[root@centos iso]# yum -y install anaconda repodata createrepo mkisofs
[root@centos iso]# cp /mnt/cdrom/repodata/07033ede37f45c21c1709553190758115ab00c6777555adcd95deb9c930c7075-c6-i386-comps.xml repodata/comps.xml
[root@centos iso]# createrepo -u "media://$(head -1 .discinfo)" -g repodata/comps.xml ./
[root@centos iso]# mkisofs -o CentOS-6.4_ks.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /iso/
[root@centos iso]# implantisomd5 CentOS-6.4_ks.iso



最後想辦法複製回本機就好了

ks.cfg
# Kickstart file automatically generated by anaconda.

#version=DEVEL
#安裝完成後自動reboot
reboot
#文字模式
text
#安裝模式
install
#來源
cdrom
#語系
lang en_US.UTF-8
keyboard us
#預設網路卡設定 DHCP
network --onboot yes --device eth0 --bootproto dhcp --noipv6
#預設 root 密碼 a1234
rootpw --iscrypted $6$2J8Xzyy5wtBrgC40$x34dvaQM04Eo2VRPfvHh7bRwUMidaKtOeWDHVKQW6OrlQPxlxKqXFByPzsPRRMsgj/.D45RtPYuTi8QqDhntD0
#關閉防火牆
firewall --disabled
authconfig --enableshadow --passalgo=sha512
#關閉 selinux
selinux --disabled
#時區設定
timezone --utc Asia/Taipei
#bootloader 開機管理程式安裝與設定
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto 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 --none
#刪除所有硬碟分割表(因為是全新系統安裝,所以沒差)
clearpart --all
#是否初始化尚未分割或有問題的分割表
zerombr

#Disk partitioning information
#磁區分割
# /boot 100MB,swap 2G,其他全部切割給 /
part /boot --fstype=ext4 --size=100
part swap --size=2048
part / --fstype=ext4 --grow --size=2000

#這行一定要註解掉,不然安裝會出問題
#anaconda-ks.cfg 內是沒有註解的
#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

#要安裝的套件,第一次安裝選的好的話,很多東西就不用再另外安裝了,所以最好依自己選擇先安裝一次取得此列表
%packages
@base
@compat-libraries
@console-internet
@core
@debugging
@development
@dial-up
@hardware-monitoring
@java-platform
@nfs-file-server
@network-file-system-client
@network-tools
@performance
@perl-runtime
@system-management-snmp
@server-platform
@server-platform-devel
@server-policy
@system-management
@system-admin-tools
sgpio
device-mapper-persistent-data
pax
systemtap-client
jpackage-utils
perl-DBD-SQLite
nmap
%end


isolinux.cfg

default vesamenu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
menu label ^Auto Install Linux System
menu default
kernel vmlinuz
#設定依照 ks.cfg 內容去安裝
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img

label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset

label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue

label local
menu label Boot from ^local drive
localboot 0xffff

label memtest86
menu label ^Memory test
kernel memtest
append -


ps1.光碟裡面有兩個 xxxx-c6-i386-comps.xml 檔案,我找不太到、有什麼差別、所以我是隨便複製一個就成功了Orz

ps2.6.5版的光碟裡面只有一個 comps.xml,直接複製改名就好了

ps3.要改用USB安裝的話,isolinux.cfg 裡面的 ks=cdrom:/isolinux/ks.cfg 要改成 ks=hd:sdb1:/isolinux/ks.cfg (如果系統只有一顆硬碟的話)

ps4.承上, ks.cfg 裡面原本的 cdrom 也要改成 harddrive --partition=sdb1 --dir=/

ps5.kickstart 相關參數, CentOS 官網介紹 http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html

0 意見:

張貼留言