环境: VMware 12
操做系统: redhat enterprise 7.3linux
全自动安装光盘 也就是把光盘放进去,开机,等..................,而后就安装(操做系统)完毕了!shell
好,那么怎么作呢?
先来看下光盘的结构:
images 文件系统镜像,可用它来生成用来启动红帽7 Linux 安装的引导介质
Packages 一大堆RPM包
repodata 解决依赖的
LiveOS 里面是个很关键的img(images里面也是这种文件)
isolinux 这是核心,里面有initrd.img boot.msg boot.cat等
其他的就木有那么重要了app
而后把它所有考到你的目录(除了packages,由于太大了)下ide
所谓自动安装,就是提早写一个配置(ks.cfg)文件,告诉机器我要怎么安装这台操做系统,post
基本上每台linux操做系统安装好后都有这么一个配置文件在root家目录(/root/),名字可能不同,总之就叫什么.cfg配置以下 #%packages到第一个%end之间是须要安装的包,有@的是包组 #yum groups info core能够查看core包组的包,不包括依赖包
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文件在哪呢?
编辑 isolinux/linux.cfg 文件
把下图红色框框里的改成 ks=cdrom:/isolinux/ks.cfg (你的ks.cfg的路径,若是是ftp的话,则为ks=ftp://ip/path)ui
到这里,基本上成功了,最后一步就是把它制做成.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 .
url
建一个操做目录iso_auto,获取已安装rpm包 rpm –qa操作系统
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 .
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 .
这里就结束了debug