定製centos6.5自動安裝ISO光盤

一 ISO定製項清單

  1. 安裝系統爲centos6.5 (base server),安裝方式爲全新安裝html

  2. 使用ext4分區格式java

  3. 安裝前能夠交互輸入root密碼,主機名,swap分區大小,以後安裝過程自動化linux

  4. 關閉防火牆,selinux數據庫

  5. 網絡爲dhcp方式獲取vim

  6. 時區爲Asia/Shanghaicentos

  7. 分區表類型爲mbrbash

  8. 默認設置三個分區,boot分區200M,swap分區由用戶指定,其他爲根分區網絡

  9. 更改軟件包安裝背景爲自定義logo,更改歡迎信息app

二 安裝步驟

一、安裝製做系統鏡像所須要的工具

yum -y install anaconda repodata createrepo mkisofs rsync

 

二、建立光盤掛載目錄、資源重構目錄、自定義數據庫目錄

mkdir /mnt/cdrom (掛載光盤)
mkdir /data/ISO (ISO目錄)
mkdir /data/ISO/mydata (須要封裝的數據)

 

三、掛載CentOS系統光盤

mount -o loop /data/iso/CentOS-6.4-x86_64-bin-DVD1.iso /mnt/cdrom

 

四、拷貝定製ISO光盤所需的數據和文件

rsync -a --exclude=Packages/ /mnt/cdrom/ /data/ISO/ #--exclude=Packages/排除此目錄
rm -fr /data/ISO/repodata
mkdir -p /data/ISO/{Packages,repodata} #建立yum倉庫,軟件包存放位置

 

五、拷貝定製的的軟件包到ISO重構目錄(/data/ISO/Packages)

#!/bin/bash 
cd /root
awk '/Installing/{print $2}' install.log | sed 's/^*://g' > package.txt 
PACKAGES='/mnt/cdrom/Packages'
PACKDIR='/root/package.txt'
NEW_PACKAGES='/data/ISO/Packages'
while read LINE 
do
cp ${PACKAGES}/${LINE}.rpm /${NEW_PACKAGES} || echo "$LINE don't cp......."
done < package.txt
rm -f package.txt

 

六、建立自響應文件 ks.cfg ,把此文件放在/data/ISO/isolinux/ks.cfg

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
#interactive
# Root password
#rootpw --plaintext 123456
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
#text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# 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=200
#part swap --fstype="swap" --size=16384
#part / --fstype="ext4" --grow --size=1
%include /tmp/mydata.txt
%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
@workstation-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end
%pre
#!/bin/bash
exec < /dev/tty6 > /dev/tty6
chvt 6
clear
echo "######################################################################"
echo " Welcome to xxx OS , before install, we will set something"
echo "######################################################################"
echo -n "Please entrer the hostname:"
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
echo -e "\n"
echo -n "Please input the root passwd:"
read -s Passwd
echo "rootpw --plaintext $Passwd" >> /tmp/mydata.txt
echo -e "\n"
echo -n "Please input the swap size(M):"
read Size
echo -e "part /boot --fstype="ext4" --size=200\npart swap --fstype="swap" --size=${Size}\npart / --fstype="ext4" --grow --size=1" >> /tmp/mydata.txt
exec < /dev/tty1 > /dev/tty1
chvt 1
%end

 

七、修改啓動安裝導向文件/data/ISO/isolinux/isolinux.cfg,下面爲修改後內容

default vesamenu.c32 
#prompt 1 
timeout 50                               ##等待時間
display boot.msg
menu background splash.jpg 
menu title Welcome to use 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                              #用ks.cfg自響應方式安裝
menu label ^Install PowerSoft OS
menu default 
kernel vmlinuz 
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img        #加載ks應答文件做爲默認配置
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 -

 

八、建立軟件倉庫

cd /data/ISO
declare -x discinfo=$(head -1 .discinfo)
cp /mnt/cdrom/repodata/*-c6-x86_64-comps.xml repodata/c6-x86_64-comps.xml
createrepo -g repodata/c6-x86_64-comps.xml ./

 

9.修改光盤背景,文字等信息

9.1修改系統自動安裝過程當中顯示的背景圖片.修改光盤背景,文字等信息
#進入光盤images目錄
cd /data/ISO/images/
#install.img鏡像中包含了光盤安裝過程當中使用到的背景圖片,掛載此img文件
mount -o loop -t squashfs install.img /mnt/install 
mkdir tmp
#掛載的install.img不能編輯,須要拷貝一份,修改後替換原install.img文件
rsync -av /mnt/install/ tmp/
#進入背景圖片所在目錄,選擇須要修改的圖片,並替換(主機圖片尺寸,格式須要與原來的相同),圖片位置爲:tmp/install/usr/share/anaconda/pixmaps
#從新建立新的install.img
mksquashfs tmp/ install_v1.img -all-root
#替換install.img
cp tmp/install_v1.img install.img
9.2 修改安裝過程當中的歡迎語
mkdir /data/ISO/isolinux/tmp
#解壓initrd.img鏡像
xz -dc ../initrd.img | cpio -id
#修改歡迎語.buildstamp文件,把其中的CentOS替換爲PowerSoft
vim .buildstamp
#建立新的initrd.img並替換
find . | cpio -c -o | xz -9 --format=lzma > ../initrd.img

 

十、重構系統,生成ISO鏡像

mkisofs -o CentOS-6.5_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ISO/

 

十一、用生成的ISO刻錄光盤進行安裝測試

virt-install -n centos6 -r 1024 -c CentOS-6.6_64.iso --disk path=centos6_v1.qcow2,device=disk,bus=virtio,size=5,format=qcow2 --vnc --vncport=5902 --vnclisten=0.0.0.0 -v

#這裏使用KVM虛擬化測試ISO文件ide

 

12 ks.cfg文件解析

#更多ks.cfg配置選項,參考redhat文檔:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
#關閉防火牆
firewall --disabled

#install表示爲全新安裝系統
install
 
#使用的安裝源爲光盤
cdrom
 
#打開此選項,使用ks.cfg中的選項做爲默認配置,可是容許用戶手動修改每一項配置,用戶須要手動點擊下一步
#interactive

#設置root密碼
#rootpw --plaintext 123456
 
#設置系統認證信息
auth  --useshadow  --passalgo=sha512
 
#打開此選項,表示安裝過程使用純文本模式,沒有此選項爲圖形安裝界面
#text
 
#鍵盤類型
keyboard us

#系統語言
lang en_US

#關閉selinux
selinux --disabled
 
#配置eth0網卡開機啓動,使用dhcp獲取IP信息,禁用ipv6
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
 

#不配置x window
skipx
 
#設置安裝過程當中的錯誤記錄等級爲info
logging --level=info
 
#安裝完成以後,重啓系統(注:使用kvm虛擬機測試製做的ISO鏡像時發現,安裝完成以後是關機,不能重啓)
reboot
 
#系統時區
timezone --isUtc Asia/Shanghai
 
#分區表類型爲mbr
bootloader --location=mbr
 

#清楚主機原有mbr分區信息
zerombr
 
#初始化系統全部分區,執行全新安裝
clearpart --all --initlabel 
 

#指定分區方式,boot分區200M,swap分區16G,其他全爲主分區
#part /boot --fstype="ext4" --size=200
#part swap --fstype="swap" --size=16384
#part / --fstype="ext4" --grow --size=1
 
#加載額外的配置信息做爲ks項
%include /tmp/mydata.txt
 
#安裝軟件包(base server)
%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
@workstation-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end
 
#安裝前執行腳本
%pre
#!/bin/bash
#切換到終端6執行腳本,而後再切換會原終端1
exec < /dev/tty6 > /dev/tty6
chvt 6
clear
echo "######################################################################"
echo "     Welcome to xxx
echo "######################################################################"
#設置主機名
echo -n "Please entrer the hostname:"
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
echo -e "\n"
#設置root密碼
echo -n "Please input the root passwd:"
read -s Passwd
echo "rootpw --plaintext $Passwd" >> /tmp/mydata.txt
echo -e "\n"
#設置swap分區大小
echo -n "Please input the swap size(M):"
read Size
echo  -e "part /boot --fstype="ext4" --size=200\npart swap --fstype="swap" --size=${Size}\npart / --fstype="ext4" --grow --size=1" >> /tmp/mydata.txt
exec < /dev/tty1 > /dev/tty1
chvt 1
%end
相關文章
相關標籤/搜索