安裝系統爲centos6.5 (base server),安裝方式爲全新安裝html
使用ext4分區格式java
安裝前能夠交互輸入root密碼,主機名,swap分區大小,以後安裝過程自動化linux
關閉防火牆,selinux數據庫
網絡爲dhcp方式獲取vim
時區爲Asia/Shanghaicentos
分區表類型爲mbrbash
默認設置三個分區,boot分區200M,swap分區由用戶指定,其他爲根分區網絡
更改軟件包安裝背景爲自定義logo,更改歡迎信息app
yum -y install anaconda repodata createrepo mkisofs rsync
mkdir /mnt/cdrom (掛載光盤) mkdir /data/ISO (ISO目錄) mkdir /data/ISO/mydata (須要封裝的數據)
mount -o loop /data/iso/CentOS-6.4-x86_64-bin-DVD1.iso /mnt/cdrom
rsync -a --exclude=Packages/ /mnt/cdrom/ /data/ISO/ #--exclude=Packages/排除此目錄 rm -fr /data/ISO/repodata mkdir -p /data/ISO/{Packages,repodata} #建立yum倉庫,軟件包存放位置
#!/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
#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
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 ./
#進入光盤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
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
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/
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
#更多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