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.178linux.com/93168