警告:转载请注明出处 http://www.javashuo.com/article/p-euuhxuzu-nc.html html
>> 基于CentOS-6.10-x86_64-minimal.iso进行定制,选它是由于包比较小
>> 以text方式安装,安装过程尽可能无需用户参与
>> 固定root密码,并建立好内置用户与权限
>> 隐藏与CentOS相关的信息,更换为本身的产品名称
>> 携带本身的软件,如jre环境等java
>> 下载CentOS6.10,地址:http://mirrors.aliyun.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-minimal.iso
>> 准备linux环境,建议直接使用要定制的基础iso安装
>> 以root登陆系统,配置好网络
>> 经过yum安装必备组件python
yum install anaconda createrepo mkisofs rpm-build
>> 上传iso到/root,并挂载到/mnt/src,以后拷贝全部文件到工做目录下,注意包含两个隐藏文件.diskinfo和.treeinfolinux
mkdir /mnt/src mount –o loop /root/CentOS-6.9-x86_64-minimal.iso /mnt/src mkdir /root/iso cp –r /mnt/src/. /root/iso
原始界面为:centos
替换界面须要修改/root/iso/isolinux/splash.jpg,替换为须要的图片,保持文件名不变,图片大小640x480。网络
修改/root/iso/isolinux/isolinux.cfg,原始内容为: oracle
default vesamenu.c32 #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.10! 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 menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img 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 -
修改成:app
default vesamenu.c32 #prompt 1 timeout 150 display boot.msg menu background splash.jpg menu title Welcome to RVS 3.0! 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 menu label ^Install RVS 3.0 menu default kernel vmlinuz append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img label local menu label ^Boot from local drive localboot 0xffff
作了如下几处调整:ssh
安装界面左上角会显示产品名称,原始界面以下:ide
想更换CentOS为自定义名称,须要调整/root/iso/isolinux/initrd.img:
>> 解开initrd.img到工做目录
mkdir /root/initrd cd /root/initrd xz -dc /root/iso/isolinux/initrd.img | cpio -id
>> 修改.buildstamp文件,原始内容为:
201806291108.x86_64 CentOS 6.10 FINAL=YES http://bugs.centos.org/
修改成:
201806291108.x86_64 RVS 3.0 FINAL=YES http://www.your-company.com.cn/
>> 从新压缩img文件,并覆盖工做目录下的原文件,而后清理
cd /root/initrd find . | cpio -c -o | xz -9 --format=lzma > /root/initrd.img cp /root/initrd.img /root/iso/isolinux/initrd.img cd /root rm –rf /root/initrd
rm -rf /root/initrd.img
定制自动安装参数须要依赖kickstart,生成/root/iso/isolinux/ks.cfg,填写内容为(#为注释行,不须要):
#全新安装,使用cdrom做为安装源 install cdrom #使用text模式而不要用图形模式安装 text #设置键盘与语言 keyboard us lang en_US.UTF-8 #设置root密码与认证加密方式,此处设置root密码为PASSWD1! rootpw --iscrypted $6$rUp4SXGKaN7Z.eix$/6tp2c9zsSwN8a2a.TmDcKHjhjAm.CFhlunvKZRqZAO.UQ8mrOT4Im/pCiL5d388VEEHMrhha0N3Q2BwqxHPV1 auth --useshadow --passalgo=sha512 #设置防火墙,放过ssh firewall --service=ssh #设置selinux selinux --enforcing #设置网络eth0,使用dhcp模式,设置hostname,不启用ipv6 network --onboot=yes --device=eth0 --bootproto=dhcp --hostname=rvs --noipv6 #不使用X Window skipx #安装完成后重启系统 reboot #设置时区 timezone Asia/Shanghai #设置启动引导参数 bootloader --location=mbr --driveorder=sda #清除mbr zerombr #清除分区 clearpart --all --initlabel
参数不少,能够参考如下文章:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-options。或者若是你有图形界面,安装一个system-config-kickstart,能够进行图形化的参数设置。
root密码是以加密方式设置的,能够经过如下方法获得密文: python -c 'import crypt; print(crypt.crypt("PASSWD1!"))'
以安装oracle server jre为例:
>> 在iso目录中建立软件存放目录,放入待安装的软件
mkdir /root/iso/soft cp /root/server-jre-8u172-linux-x64.tar.gz /root/iso/soft
>> 修改ks.cfg,以末尾添加内容
%post mkdir -p /media/cdrom ln -s /dev/scd0 /dev/cdrom mount -o loop /dev/cdrom /media/cdrom tar -zxvf /media/cdrom/soft/server-jre-8u172-linux-x64.tar.gz -C /usr/local echo "JAVA_HOME=/usr/local/jdk1.8.0_172" >> /etc/profile echo "PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile echo "export JAVA_HOME PATH" >> /etc/profile %end
%post表示安装完成后执行的脚本,这里首先挂载光驱,而后解压jre并设置环境变量。
产品名称出如今启动界面以及登陆前,想变动须要修改centos-release-6-10.el6.centos.12.3.x86_64.rpm,但此包没法直接修改,须要从源码包修改,步骤以下:
>> 下载源码包到/root,并解开
cd /root wget http://vault.centos.org/6.10/os/Source/SPackages/centos-release-6-10.el6.centos.12.3.src.rpm rpm2cpio /root/centos-release-6-10.el6.centos.12.3.src.rpm | cpio -id
>> 创建root用户的rpm环境,并将解压获得的文件放入
echo "%_topdir /root/rpmbuild" > /root/.rpmmacros mkdir -pv /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} cp centos-release-6-10.tar.gz /root/rpmbuild/SOURCES cp centos-release.spec /root/rpmbuild/SPECS
>> 修改centos-release.spec,分别找到%define product_family和%define full_release_version这两行,改成须要的值:
%define product_family RVS %define full_release_version 3.0
注意%define base_release_version这一行不要修改,不然会生成错误。
>> 从新生成rpm包,覆盖原始文件
cd /root/rpmbuild/SPECS rpmbuild -bp centos-release.spec rpmbuild -bc centos-release.spec rpmbuild -bi centos-release.spec rpmbuild -bb centos-release.spec cp /root/rpmbuild/RPMS/x86_64/centos-release-6-10.el6.12.3.x86_64.rpm /root/iso/Packages/centos-release-6-10.el6.centos.12.3.x86_64.rpm
执行每条命令时注意观察有无错误产生。
>> 更新repodata数据
cd /root/iso declare -x discinfo=`head -1 .discinfo` cp /root/iso/repodata/*-x86_64.xml /root/iso/comps.xml rm –rf /root/iso/repodata createrepo -u "media://$discinfo" -g comps.xml ./
cd /root mkisofs -o rvs-3.0.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/
成功后会在/root目录下生成rvs-3.0.iso。
使用VMware虚拟机安装,欢迎页面,已显示RVS 3.0,且菜单项只剩2项:
进入text模式,左上角显示产品名为RVS,安装过程当中只须要选择磁盘,其它参数都不须要设置:
安装完成后自动重启,GRUB里及启动过程右下角已显示RVS 3.0:
启动完成,显示RVS release 3.0 (Final),以root登陆,密码PASSWD1!,执行java命令可正常运行,查看IP已经过dhcp分配成功。
你们能够在此基础上添加更多个性化的内容,来生成本身专属的iso安装包。
若是对rpm包进行剪裁,须要从新生成repodata,但要注意的是rpm包之间有依赖,若是依赖关系出现问题,安装时会给出警告,能够继续,但完成后相应组件没法使用。
PS:感谢 https://www.cnblogs.com/appresearch/p/5484450.html 的做者。
警告:转载请注明出处 http://www.javashuo.com/article/p-euuhxuzu-nc.html