1、安裝所需軟件包? yum -y install createrepo mkisofs isomd5sum
上傳centos6.9原始鏡像內容
mkdir /mnt/centos?? 創建掛載目錄
mount -o loop centos6.9 /mnt/centos?? 上傳centos6.9鏡像并且掛載至centos目錄
mkdir /tmp/iso?? 創建定制目錄
cp -r /mnt/centos/. ?/tmp/iso??? 注意要復制整個目錄(除了Packages,repodata 目錄),尤其是目錄下的二個 ? ? ? ? ?隱藏文件.discinfo和.treeinfo
或者rsync -a –exclude=Packages –exclude=repodata? /mnt/centos?? /tmp/iso
mkdir /tmp/iso/{Packages,repodata}?? 創建軟件包目錄和repodata目錄
如缺少這二個隱藏文件,會導致安裝是找不到disc,如下圖:
參考當前系統的軟件包, 拷貝至定制目錄? awk ‘/Installing/ {print $2}’ install.log | xargs -i cp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/mnt/centos/Packages/{}.rpm? ./tmp/iso/Packages
install.log文件可以從/root目錄下獲取,目的是可以刪除不必要的rpm包
# 執行createrepo程序生成repodata下的comps.xml文件(重要)
#comps.xml 文件中包含了安裝時用戶所見到的與rpm相關的所有內容,它會檢查Packages下
# 的RPM包的依賴關系,安裝時如果缺少依賴包,它會提示您哪個RPM 包需要哪些依賴庫。
2、#編輯shell腳本
#!/bin/bash
ISO_DIR=/tmp/iso
cd? ${ISO_DIR}
declare -x discinfo=$(head -1 .discinfo)
cp? /mnt/centos/repodata/*-minimal-x86_64.xml ${ISO_DIR}/repodata/minimal-x86_64.xml
createrepo? -g? ${ISO_DIR}/repodata/minimal-x86_64.xml? ${ISO_DIR}
createrepo -u “media://$discinfo” -g ${ISO_DIR}/repodata/*-minimal-x86_64.xml ${ISO_DIR}
到這里,comps.xml文件和其他相關聯的文件已被重新生成到repodata目錄下。
如果你新增或刪除了Packages目錄的RPM包,請重新生成comps.xml文件。
3、修改 isolinux.cfg 配置文件,指定 ks 路徑
chmod +w? isolinux.cfg
vi /tmp/iso/isolinux/isolinux.cfg
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg????? 如果使用U盤需要改成hd:sdb4:/isolinux/ks.cfg
手動增加kickstart文件
touch /tmp/iso/isolinux/ks.cfg
4、必填項
ks.cfg文件內容:
#表示是安裝,而不是升級
install
#文本方式安裝
text
graphical? 使用圖形安裝
#使用網絡安裝
url –url=ftp://ip/centos
#使用光盤安裝
cdrom
#使用U盤安裝
harddrive –partition=/dev/sdb4 –dir=/????? 若有多塊硬盤,則U盤的盤符可能不是sdb,而是sdd,或sdg或是其 ? ? ? ? ?他的等。這里U盤的盤符一定要寫對,要不然系統找不到ks.cfg文件。
#如果是RedHat的系統,會要求輸入key,這里配置為跳過,如果不配置安裝時會停在那里要求用戶輸入key
key –skip
#使用美式英語
lang en_US.UTF-8
#lang zh_CN.UTF-8
#使用美式鍵盤
keyboard us
#網絡配置
network –device eth0 –bootproto dhcp –noipv6 –hostname qidian??? 自動獲取IP同時設置主機名為qidian
network –bootproto=static –device=eth0 –gateway=192.168.1.1 –ip=192.168.1.252 –netmask=255.255.255.0 –onboot=on? 設置靜態IP
#root密碼
rootpw Aa123456
rootpw –iscrypted $6$6OUksX3K$vWTIM663H??? 使用加密
#禁用防火墻
firewall –disabled
#禁用selinux
selinux –disabled
#禁用第一次啟動時設置系統的向導
firstboot –disable
#用戶認證配置,useshadow表示使用本地認證,–passalgo表示密碼加密算法
authconfig –enableshadow –passalgo=sha512
#設置時區為上海
timezone –utc Asia/Shanghai
#指明bootloader的安裝位置,指明驅動器的排序,指明操作系統安裝完成之后,向內核傳遞的參數
bootloader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet”
#通常情況下,kickstart安裝時跳過了不必要的屏幕顯示。該選項可以讓安裝過程簡單地顯示每一步的屏幕。autostep多用于調試。
在安裝過程中,將每一步的屏幕截圖并在安裝完成后將這些截圖拷貝到/root/anaconda-screenshots目錄下。這對寫文檔非常有幫助
–autoscreenshot
#清除MBR引導記錄
zerombr yes???? 使用 clearpart –all 時,需要加上這個選項,否則安裝過程會被暫停,需要手動選擇
#清除硬盤上的所有數據
clearpart –all –initlabel
#例如,下面的命令清除了前指定兩個驅動器上所有分區
clearpart –drives=sda,sdb –all
#自動創建分區–一個根分區(/)、一個swap分區,以及一個適合體系架構(architecture)的boot分區。如果磁盤驅動器足夠大,也會創建/home分區。
選擇自動分區機制。必須是lvm, btrfs, plain, thinp中的一個。Plain意味著常規分區,沒有btrfs和lvm.
autopart –type=<type>
#自定義分區
#創建一個200M大小的分區掛載/boot類型為ext4
part /boot –fstype=ext4? –size=200 –ondisk=sda
#創建一個2000M大小的SWAP分區
part swap –size=2000 –ondisk=sda
#創建/目錄
part / –fstype=ext4 –grow –size=1 –ondisk=sda
–grow? ?會讓邏輯卷使用所有可用空間(若有)
#U盤安裝千萬不要格式化U盤
part None –fstype efi –label=”Centos_6.9″ –onpart=sdb4 –noformat
#僅有列出的磁盤可以在安裝過程中被使用
ignoredisk –only-use=sda
#控制anaconda對系統磁盤的訪問。下面的兩個選項中可能只有一個被用到。
ignoredisk –drives=[disk1,disk2,…]
#只分區sda硬盤,每個分區后面加上–ondisk=sda
#設置完成之后重啟
reboot
#定制軟件包
%packages –nobase
@base
@core
#安裝前允許自定義腳本
%pre表示系統安裝前,此時ISO鏡像文件被掛載到內存中Linux的/mnt/source
#安裝后運行自定義腳本
%post?? 在系統安裝后執行
–不帶參數,其實就是在真實的操作系統里操作。
–nochroot 已安裝的真實操作系統被掛載到內存虛擬操作系統中的/mnt/sysimage目錄。這個參數的用途主要是配合%pre使用的。先將光盤里的文件copy到內存運行的虛擬操作系統,再從內存虛擬操作系統copy到已安裝的真實操作操作。
%post –nochroot
mkdir /media
mount /dev/cdrom /media/
cp /media/test1.txt /mnt/sysimage/root/
%end
上面命令實現了從ISO鏡像中拷貝文本文件到安裝好的真實操作系統中。
#config service
#自定義服務
service NetworkManager stop
chkconfig NetworkManager off
#執行完畢后重啟
#reboot
#結束自動化部署
%end
5、生成iso鏡像
mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /root/CentOS-6.9-x86_64–minimal.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso
此時會在 /root/目錄創建一個名為CentOS-6.9-x86_64–minimal.iso 的鏡像文件
6、生成md5效驗碼
implantisomd5? CentOS-6.9-x86_64–minimal.iso
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93168