简介:
此自定义镜像针对centos7 系统版本,通过tar 打包原系统服务将其放入ISO镜像中在安装时执行解压导入新安装系统中实现系统服务的自定义安装。针对cnetos7 目前只测试出这一种方案,暂时没找到其他好的方案实现系统的模板ISO制作,目前版本存在缺陷镜像中的tar包非加密存在安全问题。如果有更好的方案还请大佬指导。
制作系统tar包
原系统将服务进行删减,删除没用的日志和缓存数据保证系统的最小可用。删减完成后运行以下命令将系统打包:
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/dev --exclude=/etc/fstab --exclude=/boot --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/etc/sysconfig/network-scripts/ /
使用原centos7 mini镜像进行挂载修改
#镜像名称:CentOS-7-x86_64-Minimal-2009.iso #将其挂载到系统中(随便一个操作系统用来制作系统镜像) #安装必要依赖 yum install -y genisoimage #挂载镜像 mount -o loop ./CentOS-7-x86_64-Minimal-2009.iso /mnt #复制镜像到/ISO目录 mkdir /ISO cp -a /mnt/* /ISO #修改镜像内容 #1、制作应答文件ks.cfg #2、修改/ISO/isolinux/isolinux.cfg #3、修改/ISO/isolinux/grub.conf #4、修改/ISO/EFI/BOOT/grub.cfg #5、修改镜像的LABEL为CentOS7 原系统为 CentOS\x207\x20x86_64 由于带空格所以有\x20 为了有些系统不识别这里给换成CentOS7 #6、放入tar包 cat>/ISO/isolinux/ks.cfg<<EOF #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media cdrom # Use graphical install graphical # Run the Setup Agent on first boot firstboot --enable #ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=ens33 --onboot=off --onboot=on --ipv6=auto --no-activate network --hostname=localhost.localdomain # Root password rootpw --iscrypted $6$rOMaGigzYAyI5Ata$3RzuCFJ2Oksrr6ZpLf0sJI2C8qa4dkP.k1RhCpf5hm5Si4lWvBE8YyOVmZ5uMyI6eIXhKfewTciTr7OKyO/bB0 # System services services --disabled="chronyd" # System timezone timezone Asia/Shanghai --isUtc --nontp # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Partition clearing information clearpart --none --initlabel # Disk partitioning information part pv.156 --fstype="lvmpv" --ondisk=sda --size=9215 part /boot --fstype="xfs" --ondisk=sda --size=1024 volgroup centos --pesize=4096 pv.156 logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos logvol swap --fstype="swap" --size=1023 --name=swap --vgname=centos %packages @^minimal @core kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end %post --nochroot cp /run/install/repo/Packages/backup.tar.gz /mnt/sysimage/ chmod +x /mnt/sysimage/etc/rc.d/rc.local echo "cd / && tar xpfz backup.tar.gz -C / && rm -f /backup.tar.gz && rm -f /etc/sysconfig/network-scripts/ifcfg-ens192 && reboot " >> /mnt/sysimage/etc/rc.d/rc.local %end EOF #其中倒数第二行有个: rm -f /etc/sysconfig/network-scripts/ifcfg-ens192 是删除原系统网卡配置文件,需要根据自己系统进行修改。 #isolinux.cfg quiet后增加inst.ks=cdrom:/isolinux/ks.cfg #debug --graphics default=1 splashimage=@SPLASHPATH@ timeout 60 hiddenmenu title Install CentOS 7 findiso kernel @KERNELPATH@ @ROOT@ quiet inst.ks=cdrom:/isolinux/ks.cfg initrd @INITRDPATH@ #/ISO/isolinux/grub.conf quiet后增加inst.ks=cdrom:/isolinux/ks.cfg #debug --graphics default=1 splashimage=@SPLASHPATH@ timeout 60 hiddenmenu title Install CentOS 7 findiso kernel @KERNELPATH@ @ROOT@ quiet inst.ks=cdrom:/isolinux/ks.cfg initrd @INITRDPATH@ #/ISO/EFI/BOOT/grub.cfg /images/pxeboot/vmlinuz之后增加 inst.ks=hd:LABEL=CentOS7:/isolinux/ks.cfg ### BEGIN /etc/grub.d/10_linux ### menuentry'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os { linuxefi /images/pxeboot/vmlinuz inst.ks=hd:LABEL=CentOS7:/isolinux/ks.cfg inst.stage2=hd:LABEL=CentOS7 quiet initrdefi /images/pxeboot/initrd.img } #修改 CentOS\x207\x20x86_64 为 CentOS7 sed -i 's/CentOS\\x207\\x20x86_64/CentOS7/g' /ISO/isolinux/isolinux.cfg sed -i 's/CentOS\\x207\\x20x86_64/CentOS7/g' /ISO/EFI/BOOT/grub.cfg sed -i 's/CentOS 7 x86_64/CentOS7/g' /ISO/EFI/BOOT/grub.cfg #放入tar包 cp backup.tar.gz /ISO/Packages #重新制作镜像 cd / genisoimage -joliet-long -V "CentOS7" -o CentOS7-test.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table -R -J -v -cache-inodes -T -eltorito-alt-boot -e images/efiboot.img -no-emul-boot /ISO #使服务器BOIS模式能够识别U盘系统 isohybrid CentOS7-test.iso
标签:CentOS7,自定义,isolinux,--,cfg,ks,ISO,cnetos7 From: https://www.cnblogs.com/chenjiye/p/18067802