设为首页 收藏本站
查看: 1402|回复: 0

[经验分享] 定制自己的CentOS安装光盘ISO

[复制链接]

尚未签到

发表于 2019-2-16 10:02:30 | 显示全部楼层 |阅读模式
  1.目标
  >> 基于CentOS-6.10-x86_64-minimal.iso进行定制,选它是因为包比较小,才400M
  >> 以text方式安装,安装过程尽量无需用户参与
  >> 固定root密码,并创建好内置用户与权限
  >> 隐藏与CentOS相关的信息,更换为自己的产品名称
  >> 携带自己的软件,如jre环境等
  

  2.环境准备

  >> 下载CentOS6.10,地址:http://mirrors.aliyun.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-minimal.iso
  >> 准备linux环境,建议直接使用要定制的基础iso安装
  >> 以root登录系统,配置好网络
  >> 通过yum安装必备组件
yum install anaconda createrepo mkisofs rpm-build  >> 上传iso到/root,并挂载到/mnt/src,之后拷贝所有文件到工作目录下,注意包含两个隐藏文件.diskinfo和.treeinfo

  
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  

  3.修改欢迎界面

  3.1.修改背景图
  原始界面为:

  替换界面需要修改/root/iso/isolinux/splash.jpg,替换为需要的图片,保持文件名不变,图片大小640x480。
  3.2.修改产品名与选项
  修改/root/iso/isolinux/isolinux.cfg,原始内容为:
  
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 -  

      修改为:

  
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  

  做了以下几处调整:

    修改timeout,默认超时是60秒,改为15秒,即15秒内不做选择默认执行菜单中的default项

    修改memu title行,可以定制欢迎标题
    去掉部分菜单项,只保留安装(label linux)和从硬盘启动(label local)这两项
    调整了label linux项的文字,同时调整了append项,增加了对kickstart的支持,指定ks.cfg位置,此配置用于自动安装,后面会涉及
  4.修改安装过程
  4.1.调整安装界面名称
  安装界面左上角会显示产品名称,原始界面如下:

  想更换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  4.2.定制自动安装参数

  定制自动安装参数需要依赖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!"))'  

  4.3.添加自定义软件与脚本

  以安装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并设置环境变量。
  5.修改产品名称

  产品名称出现在启动界面以及登录前,想变更需要修改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 ./  
  6.重新生成ISO
  
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。

  7.检验成果

  使用VMware虚拟机安装,欢迎页面,已显示RVS 3.0,且菜单项只剩2项:

  

  进入text模式,左上角显示产品名为RVS,安装过程中只需要选择磁盘,其它参数都不需要设置:




  安装完成后自动重启,GRUB里及启动过程右下角已显示RVS 3.0:



  启动完成,显示RVS release 3.0 (Final),以root登录,密码PASSWD1!,执行java命令可正常运行,查看IP已通过dhcp分配成功。


  大家可以在此基础上添加更多个性化的内容,来生成自己专属的iso安装包。

  没有涉及rpm包剪裁,曾经试着去掉了几个rpm再重新生成repodata,比如去掉了python相关组件,iso确实是小了,但由于yum对它有依赖,在安装时会给出警告,可以继续安装,但安装完成后yum无法使用。
  PS:感谢appresearch的文章。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673010-1-1.html 上篇帖子: centos建立回收站 下篇帖子: centos软件源码编译安装httpd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表