紅帽7制作全自動安裝光盤
操作系統: redhat enterprise 7.3
全自動安裝光盤 也就是把光盤放進去,開機,等..................,然後就安裝(操作系統)完畢了!
好,那麽怎麽做呢?
先來看下光盤的結構:
images 文件系統鏡像,可用它來生成用來啟動紅帽7 Linux 安裝的引導介質
Packages 一大堆RPM包
repodata 解決依賴的
LiveOS 裏面是個很關鍵的img(images裏面也是這種文件)
isolinux 這是核心,裏面有initrd.img boot.msg boot.cat等
其余的就木有那麽重要了
然後把它全部考到你的目錄(除了packages,因為太大了)下
所謂自動安裝,就是提前寫一個配置(ks.cfg)文件,告訴機器我要怎麽安裝這臺操作系統,
基本上每臺linux操作系統安裝好後都有這麽一個配置文件在root家目錄(/root/),名字可能不一樣,總之交叫 .cfg ,我的叫anaconda-ks.cfg,把ks.cfg(名字有點長,我把它改為了ks.cfg)考到isolinux/下面去。配置如下:
#%packages到第一個%end之間是需要安裝的包,有@的是包組
br/>配置如下:
#%packages到第一個%end之間是需要安裝的包,有@的是包組
install keyboard ‘us‘ rootpw --plaintext 123456 lang zh_CN.UTF-8 firewall --disabled auth --useshadow --passalgo=sha512 cdrom graphical firstboot --enable selinux --disabled network --bootproto=dhcp --device=etho reboot timezone Asia/Shanghai bootloader --location=mbr clearpart --all part swap --fstype=swap --size=2048 part /boot --fstype=ext4 --size=200 part / --fstype=ext4 --size=10240 %packages @print-client @multimedia @internet-browser @input-methods @hardware-monitoring @guest-desktop-agents @guest-agents @gnome-desktop @fonts @dial-up @desktop-debugging @core @base @^graphical-server-environment chrony %end
安裝完成後,我還想讓ks.cfg幫忙自動創建用戶怎麽辦?
把下面的腳本加到ks.cfg末尾
%post
id ddcw 2> /dev/null || useradd ddcw
echo 123456 | passwd --stdinddcw
%end
看不懂這些參數是什麽怎麽辦?
先安裝kickstart,再啟動kickstart,然後點鼠標配置,配置完了點擊文件->保存->保存到哪 就是生成一個ks.cfg的文件,裏面的配置就是你剛才點鼠標配置的。
yum -y install system-config-kickstart
system-config-kickstart
怎樣讓機器知道我的ks.cfg文件在哪呢?
把下圖紅色框框裏的改為 ks=cdrom:/isolinux/ks.cfg (你的ks.cfg的路徑,如果是ftp的話,則為ks=ftp://ip/path)
到這裏,基本上成功了,最後一步就是把它制作成.iso文件了(最後有一個點的)mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V RHEL7 -b isolinux/isolinux.bin -c isolinux/boot.cat -o /ddcw_rh7.iso .
完整思路:
建一個操作目錄iso_auto,獲取已安裝rpm包 rpm –qa
- 掛載鏡像 並把鏡像裏所有文件(除了Packages)拷過來
- 把本地的rpm包從鏡像裏考到/iso_auto/Packages/
- 配置/iso_auto/isolinux/isolinux.cfg
append initrd 這一行的inst.stage及後面的內容修改為:ks=cdrom:/isolinux/ks.cfg quiet (如果是ftp,則為ftp://ip/path quiet,總之指向你的ks.cfg文件) - 配置/iso_auto/isolinux/ks.cfg 可以參照/root/anaconda.cfg
安裝操作系統時,系統(image)會先來找ks.cfg中的配置,可以自己寫(如果會的話),也可以用kickstart來生成(命令是system-config-kickstart,然後點擊鼠標,點完 了,點保存就行),然後再手動修改需要的 - 生成iso文件(後面有個點的,表示當前目錄 –V參數可以不要)
mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V RHEL7 -b isolinux/isolinux.bin -c isolinux/boot.cat -o /ddcw_rh7.iso .
shell腳本:
cdrom=‘/mnt‘
umount /dev/sr0 2> /dev/null
mount /dev/sr0 /mnt 1> /dev/null && echo "waiting..."
pack=`rpm -qa`
no_pack=`ls ${cdrom} | grep -v Packages`
[ -d ./iso_auto ] || mkdir iso_auto
cd ./iso_auto
[ -d ./Packages ] || mkdir ./Packages
for i in ${pack}
do
cp -rf ${cdrom}/Packages/${i}.rpm ./Packages
done
for j in ${no_pack}
do
cp -rf ${cdrom}/${j} .
done
sed -i ‘/initrd/c\\tappend initrd=initrd.img ks=cdrom:/isolinux/ks.cfg quiet‘ ./isolinux/isolinux.cfg
sed -i ‘s/Red Hat Enterprise Linux 7.3/Auto Install Linux by DDCW/‘ ./isolinux/isolinux.cfg
sed -i ‘/timeout 600/ctimeout 50‘ ./isolinux/isolinux.cfg
sed -i ‘/menu default/d‘ isolinux/isolinux.cfg
sed -i ‘/label linux/amenu default‘ isolinux/isolinux.cfg
[ -d isolinux/ks.cfg ] || touch ./isolinux/ks.cfg
ks_value="install\nkeyboard ‘us‘\nrootpw --plaintext 123456\nlang zh_CN.UTF-8\nfirewall --disabled\nauth --useshadow --passalgo=sha512\ncdrom\ngraphical\nfirstboot --enable\nselinux --disabled\nnetwork --bootproto=dhcp --device=etho\nreboot\ntimezone Asia/Shanghai\nbootloader --location=mbr\nclearpart --all\npart swap --fstype="swap" --size=2048\npart /boot --fstype="ext4" --size=200\npart / --fstype="ext4" --size=10240\n%packages\nchrony\n%end\n%post\nid ygs 2> /dev/null || useradd ygs\necho 123456 | passwd --stdin ygs\ncat >> /etc/yum.repos.d/base.repo << eof\n[base]\nname=baseserver\nbaseurl=file:///mnt/\nenable=1\ngpgcheck=0\neof\n%end"
echo -e ${ks_value} > ./isolinux/ks.cfg
pack_group=`cat /root/anaconda-ks.cfg | grep @`
for k in ${pack_group}
do
sed -i "/%packages/a${k}" ./isolinux/ks.cfg
done
mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V RHEL7 -b isolinux/isolinux.bin -c isolinux/boot.cat -o /ddcw_rh7.iso .
紅帽7制作全自動安裝光盤